Dasar
Spot
Perdagangkan kripto dengan bebas
Perdagangan Margin
Perbesar keuntungan Anda dengan leverage
Konversi & Investasi Otomatis
0 Fees
Perdagangkan dalam ukuran berapa pun tanpa biaya dan tanpa slippage
ETF
Dapatkan eksposur ke posisi leverage dengan mudah
Perdagangan Pre-Market
Perdagangkan token baru sebelum listing
Futures
Akses ribuan kontrak perpetual
TradFi
Emas
Satu platform aset tradisional global
Opsi
Hot
Perdagangkan Opsi Vanilla ala Eropa
Akun Terpadu
Memaksimalkan efisiensi modal Anda
Perdagangan Demo
Pengantar tentang Perdagangan Futures
Bersiap untuk perdagangan futures Anda
Acara Futures
Gabung acara & dapatkan hadiah
Perdagangan Demo
Gunakan dana virtual untuk merasakan perdagangan bebas risiko
Peluncuran
CandyDrop
Koleksi permen untuk mendapatkan airdrop
Launchpool
Staking cepat, dapatkan token baru yang potensial
HODLer Airdrop
Pegang GT dan dapatkan airdrop besar secara gratis
Pre-IPOs
Buka akses penuh ke IPO saham global
Poin Alpha
Perdagangkan aset on-chain, raih airdrop
Poin Futures
Dapatkan poin futures dan klaim hadiah airdrop
Investasi
Simple Earn
Dapatkan bunga dengan token yang menganggur
Investasi Otomatis
Investasi otomatis secara teratur
Investasi Ganda
Keuntungan dari volatilitas pasar
Soft Staking
Dapatkan hadiah dengan staking fleksibel
Pinjaman Kripto
0 Fees
Menjaminkan satu kripto untuk meminjam kripto lainnya
Pusat Peminjaman
Hub Peminjaman Terpadu
Promosi
AI
Gate AI
Partner AI serbaguna untuk Anda
Gate AI Bot
Gunakan Gate AI langsung di aplikasi sosial Anda
GateClaw
Gate Blue Lobster, langsung pakai
Gate for AI Agent
Infrastruktur AI, Gate MCP, Skills, dan CLI
Gate Skills Hub
10RB+ Skills
Dari kantor hingga trading, satu platform keterampilan membuat AI jadi lebih mudah digunakan
GateRouter
Pilih secara cerdas dari 40+ model AI, dengan 0% biaya tambahan
Perhitungan PnL Polymarket yang Akurat: Mengapa Perkiraan Keuntungan dan Kerugian Anda Bisa Salah?
Saya telah melakukan otomatisasi perdagangan mandiri di Polymarket selama setengah tahun, dan lubang terbesar yang pernah saya pijak bukanlah strategi yang gagal, melainkan bahkan perhitungan berapa banyak uang yang saya hasilkan pun salah.
Bukan saya yang tidak kompeten. Masalahnya adalah perhitungan PnL di PM sendiri adalah area berbahaya. API resmi yang diberikan angka-angkanya salah, peringkat yang ditampilkan oleh situs analisis pihak ketiga juga salah. Kamu menulis skrip sendiri untuk menghitung? Kemungkinan besar tetap salah.
Seberapa jauh deviasinya?
Peringkat ketiga, kch123, dihitung dengan metode yang salah dan kehilangan $3,5 juta, padahal keuntungan sebenarnya adalah $11,4 juta.
Bukan selisih beberapa poin persentase—tanda keuntungan dan kerugian bahkan terbalik.
Artikel ini akan membongkar setiap lubang yang pernah saya pijak. Baik yang melakukan trading, menulis alat, maupun yang melihat peringkat, pasti akan menemui.
Lubang 1: cashPnl Tidak Termasuk Keuntungan yang Sudah Diselesaikan
Pendekatan paling intuitif: tarik API /positions, lalu jumlahkan bidang cashPnl (keuntungan/kerugian tunai).
Menggunakan tiga alamat teratas dari peringkat untuk pengujian nyata:
swisstony: jumlah cashPnl +$35.000, peringkat sebenarnya +$5,6 juta, selisih 158 kali
kch123: jumlah cashPnl -$3,52 juta, peringkat sebenarnya +$11,4 juta, tanda terbalik
gmanas: jumlah cashPnl -$2,64 juta, peringkat sebenarnya +$5,02 juta, tanda terbalik
Tiga alamat ini, dua di antaranya tanda keuntungan dan kerugian langsung terbalik.
Alasannya: API /positions mengembalikan cashPnl yang tidak termasuk realized PnL yang sudah ditutup/ditebus. Posisi yang menang otomatis ditebus menjadi USDC, sehingga posisi itu hilang dari respons API. Yang tersisa adalah posisi yang belum diselesaikan—biasanya dengan kerugian floating.
Kamu kira sedang menghitung seluruh keuntungan dan kerugian, padahal yang didapat hanyalah bagian yang belum diselesaikan.
Lubang 2: Field makerPnl Tidak Konsisten dengan Arus Kas di Blockchain
Data perdagangan dalam format JSONL memiliki field makerPnl (keuntungan/kerugian maker), yang namanya menunjukkan untuk menghitung PnL. Tapi jangan percaya.
Saya mengamati data market-making, jumlah dari makerPnl yang dihitung dengan SUM(makerPnl) berbeda satu tingkat dari hasil perhitungan arus kas di blockchain.
Jumlah pasti bisa berbeda tergantung skenario, tapi arah perbedaannya konsisten: logika internal makerPnl tidak cocok dengan aliran USDC yang sebenarnya.
Tidak peduli seberapa besar deviasinya, kesimpulannya sama: Jangan gunakan field ini untuk menghitung PnL.
Lubang 3: Tidak Bisa Menggunakan txHash Sendiri untuk Menghapus Duplikasi
Ini yang paling kontra intuitif.
Jika satu txHash (hash transaksi) muncul beberapa kali, reaksi pertama orang normal: data duplikat, hapus duplikasi.
Tapi jangan lakukan itu. CLOB (order book on-chain) di Polymarket bisa mencocokkan beberapa order maker dalam satu transaksi blockchain, dan beberapa record di bawah satu txHash adalah fill yang benar-benar terpisah.
Saya sebelumnya menghapus duplikasi berdasarkan txHash + asset, dan mengurangi $133 dari sisi BUY. Setelah diverifikasi di Polygon, memang ada beberapa event transfer USDC yang terpisah dalam satu transaksi, masing-masing mewakili transaksi nyata.
Kesimpulan: Jangan hapus duplikasi hanya berdasarkan txHash. Untuk menghitung PnL, jumlahkan langsung data mentah /activity.
Lubang 4: Batasan Pagination Offset
Pagination API /activity pakai offset? Kalau lebih dari 3000 langsung error 400. Tidak tertulis di dokumentasi.
Ketiga alamat di atas sudah diverifikasi: GET /activity?offset=3100 mengembalikan HTTP 400, pesan error: max historical activity offset of 3000 exceeded.
Pengguna utama sering memiliki puluhan ribu transaksi, 3000 saja tidak cukup.
Menggunakan parameter end (timestamp dari transaksi terakhir di halaman sebelumnya - 1) sebagai cursor pagination tidak memiliki batasan.
Lubang 5: Perbedaan Kriteria PnL di Peringkat
Setelah menghitung PnL satu alamat, lalu dibandingkan dengan peringkat, ada sedikit perbedaan.
Sebagian besar perbedaan di bawah $10 (berasal dari fluktuasi nilai pasar posisi secara real-time).
Tapi jika perbedaannya jauh lebih besar, kemungkinan penyebabnya termasuk: jendela agregasi peringkat, delay refresh cache, atau pengguna mengikat beberapa proxy wallet.
Dalam pengujian, PnL satu alamat yang dihitung dengan metode arus kas sangat cocok dengan nilai yang dikembalikan oleh API lb-api.
Jika hasilmu berbeda jauh, periksa dulu apakah proses pagination lengkap (lubang 4), dan apakah menggunakan field yang salah (lubang 1-2).
Cara yang benar
Setelah mencoba berbagai metode, saya verifikasi bahwa cara paling andal adalah menggunakan Data API untuk merangkum arus kas.
Tanpa field pre-calculated apapun, langsung hitung dari catatan transaksi asli untuk masuk dan keluarnya dana.
Rumus:
PnL = SUM(TRADE dimana side=SELL) + SUM(REDEEM) + SUM(MERGE) + SUM(MAKER_REBATE) + SUM(REWARD) - SUM(TRADE dimana side=BUY) - SUM(SPLIT) + Nilai pasar posisi
· TRADE BUY: Membeli token dengan USDC (pengeluaran)
· TRADE SELL: Menjual token dan mendapatkan USDC (pendapatan)
· REDEEM: Menebus posisi yang menang dan mendapatkan USDC (pendapatan)
· SPLIT: USDC diubah menjadi token (pengeluaran)
· MERGE: token digabung kembali menjadi USDC (pendapatan)
· MAKER_REBATE: Rebate dari Maker (pendapatan)
· REWARD: Hadiah/airdrop (pendapatan)
· Sumber data:
GET /activity?user=
&limit=500, gunakan parameter end untuk pagination, lalu jumlahkan berdasarkan tipe.· Nilai pasar posisi:
GET /positions?user=
, hitung size × harga saat ini.· Validasi silang:
Bandingkan hasil perhitungan dengan API peringkat Polymarket (lb-api.polymarket.com/profit?window=all&address=X), jika selisih < $10 dianggap valid.
Perbedaan biasanya disebabkan oleh fluktuasi nilai pasar posisi secara real-time.
Verifikasi: Pengujian 15 teratas
Setelah menghitung dengan metode arus kas, lakukan cross-check dengan API peringkat:
swisstony: metode arus kas +$5,601,000, peringkat +$5,601,000, selisih < $10
kch123: metode arus kas +$11,396,000, peringkat +$11,396,000, selisih < $10
gmanas: metode arus kas +$5,024,000, peringkat +$5,024,000, selisih < $10
Ketiga alamat ini memiliki deviasi di bawah $10, dan perbedaan berasal dari fluktuasi nilai pasar posisi secara real-time.
Setelah metode ini terbukti, saya gunakan untuk menganalisis ratusan alamat top dalam hal keuntungan dan kerugian nyata. Itu cerita yang berbeda.
Ringkasan
SUM(cashPnl) dari /positions → Tidak bisa, tidak termasuk keuntungan yang sudah diselesaikan, tanda bisa terbalik
Jumlahkan field makerPnl → Tidak bisa, tidak konsisten dengan arus kas di blockchain
Menghapus duplikasi berdasarkan txHash → Tidak bisa, kehilangan fill yang sebenarnya, lebih dari $100
Pagination offset + jumlahkan → Tidak bisa, data terpotong, error > 3000
Metode Data API untuk arus kas → Saat ini paling andal, < $10
Langkah pertama dalam melakukan kuantitatif bukanlah mencari alpha.
Tapi memastikan bahwa perhitunganmu benar.
Semua di atas berasal dari pengalaman nyata, bukan teori. API PM bisa berubah kapan saja, disarankan rutin cross-check hasil perhitunganmu dengan API peringkat.
Klik untuk mengetahui lebih lanjut tentang posisi Low-Carbon di BlockBeats yang sedang membuka lowongan
Selamat bergabung dengan komunitas resmi BlockBeats:
Telegram langganan: https://t.me/theblockbeats
Telegram grup diskusi: https://t.me/BlockBeats_App
Akun resmi Twitter: https://twitter.com/BlockBeatsAsia