BacktestingWaktu baca 8 menit

Cara Backtest Strategi Polymarket di Order Book

DepthFeed Research

Tim data pasar prediksi

Panduan

Last price yang diambil sekali sejam tidak bisa memberi tahu apakah order Anda akan terisi. Berikut cara backtest Polymarket terhadap book yang benar-benar akan menjadi lawan transaksi Anda.

Untuk backtest strategi Polymarket, putar ulang buku pesanan beli/jual kedalaman penuh yang terekam dan ukur pengisian hipotetis terhadap likuiditas yang diamati. Periksa stempel waktu, kadensa tersimpan, dan celah; arsip tidak dapat menetapkan buku pesanan yang tepat di antara observasi. Harga terakhir atau tengah tunggal juga menghilangkan spread dan kedalaman yang akan dihadapi pesanan nyata.

Mengapa backtest berbasis last price menipu

Sebagian besar data Polymarket yang tersedia gratis adalah harga transaksi terakhir (last traded price), sering kali diambil sekali setiap jam. Itu cukup untuk menggambar chart dan tidak lebih dari itu. Sebuah backtest perlu menjawab pertanyaan yang lebih sulit: jika order saya sedang menunggu di book (atau melintasi spread) pada saat itu, apakah ia akan terisi, dalam ukuran berapa, dan pada harga berapa?

Menjawab pertanyaan itu membutuhkan order book — setiap bid dan ask yang menunggu beserta ukurannya — bukan satu angka tunggal. Strategi yang di-backtest terhadap mid mengasumsikan ia selalu terisi pada harga mid dengan slippage nol, yang tidak pernah benar. Pada pasar kripto berjangka pendek, di mana spread melebar menjelang settlement, asumsi tersebut bisa membalik strategi yang merugi menjadi tampak menguntungkan.

Langkah 1 — Ambil data order book full-depth

Mulai dari buku pesanan kedalaman penuh yang terekam di kedua sisi. DepthFeed meng-ingest pembaruan Polymarket CLOB, tetapi observasi yang tersimpan mengikuti kadensa penangkapan yang terdokumentasi dan mungkin memiliki celah. Periksa stempel waktu yang tersedia untuk pasar Anda daripada berasumsi bahwa setiap peristiwa hulu dipertahankan.

Tarik pasar yang Anda inginkan melalui REST API: temukan pasarnya dengan GET /v3/{coin}/markets, lalu ambil depth dari /v3/{coin}/markets/{id}/snapshots. Setiap snapshot membawa array harga dan ukuran bid/ask serta timestamp exchange dan receive dalam epoch-millis.

Langkah 2 — Rekonstruksi book pada tiap momen

Putar ulang observasi yang terekam dalam urutan stempel waktu. Masing-masing menjelaskan buku pesanan tersimpan pada observasi tersebut, termasuk tawaran terbaik, permintaan terbaik, kedalaman, dan spread. Jangan menyimpulkan keadaan buku pesanan yang tepat atau pengisian yang dijamin di antara observasi; buat asumsi interpolasi atau persistensi apa pun eksplisit dalam backtest.

Langkah 3 — Modelkan fill terhadap depth nyata

Sekarang simulasikan eksekusi secara jujur. Sebuah order marketable menyusuri book: ia terisi di level terbaik lebih dulu, lalu level berikutnya, sampai ukurannya habis — sehingga harga rata-ratanya lebih buruk dari touch setiap kali ia menyerap lebih dari level teratas. Sebuah resting order ikut antrean dan baru terisi jika pasar bertransaksi menembus harganya dengan ukuran yang cukup di belakangnya.

Menentukan ukuran fill terhadap tangga yang terekam adalah inti dari semuanya: ia memberi Anda slippage dan probabilitas fill yang realistis, bukan fiksi bahwa Anda selalu bertransaksi pada harga mid.

Langkah 4 — Gabungkan harga underlying

Pasar crypto up/down Polymarket digerakkan oleh pergerakan spot aset yang menjadi dasarnya. Setiap snapshot DepthFeed digabungkan ke harga referensi Binance berfrekuensi tinggi berdasarkan timestamp epoch-millis, sehingga Anda dapat menyelaraskan keadaan book dengan pergerakan spot yang me-reprice kontrak — hal yang esensial untuk strategi apa pun yang memperdagangkan hubungan antara harga kripto dan probabilitas implisit pasar.

Langkah 5 — Validasi adaptor data langsung

Respons REST historis dan bingkai WebSocket langsung menggunakan kontrak terdokumentasi yang berbeda. Validasi adaptor untuk pengenal, stempel waktu, dan bidangnya sebelum memasukkan keduanya ke dalam logika strategi bersama. Backtest pada observasi tersimpan, lalu uji coba adaptor langsung dengan perdagangan kertas.

Kesalahan umum

  • Menggunakan data last price: menyembunyikan spread dan slippage; menggelembungkan return hasil backtest.
  • Snapshot interval tetap: sampel per jam atau per menit melewatkan sebagian besar masa hidup pasar berdurasi 5 menit.
  • Mengabaikan posisi antrean: mengasumsikan resting order selalu terisi melebih-lebihkan strategi pasif.
  • Look-ahead bias: hanya bereaksi pada data yang memiliki receive timestamp pada atau sebelum waktu keputusan Anda.
  • Melewatkan underlying: edge crypto up/down biasanya terletak pada hubungan spot-ke-probabilitas.

Poin utama

  • 01Backtest terhadap order book, bukan last price — depth-lah yang menentukan fill.
  • 02Gunakan data event-driven: sampel interval tetap melewatkan masa hidup pasar berjangka pendek.
  • 03Modelkan order marketable yang menyusuri book dan resting order yang menunggu di antrean.
  • 04Gabungkan harga kripto underlying untuk menangkap hubungan spot-ke-probabilitas.
  • 05Pilih data yang riwayat dan feed live-nya berbagi satu format, sehingga Anda menjalankan kode yang Anda backtest.

Last price yang diambil sekali sejam tidak bisa memberi tahu apakah order Anda akan terisi. Berikut cara backtest Polymarket terhadap book yang benar-benar akan menjadi lawan transaksi Anda.

Mulai gratis

Pertanyaan, terjawab.

Hanya sebagian. API publik Polymarket menyediakan pasar yang sedang berjalan, transaksi, dan endpoint prices-history, tetapi ia tidak menyajikan snapshot order book historis — sehingga Anda tidak bisa memutar ulang resting book yang akan menjadi lawan transaksi strategi. Depth historis itulah celah spesifik yang diisi oleh data order book pihak ketiga.

Mulai backtest Polymarket pada kedalaman buku yang nyata.

Gratis untuk memulai, tanpa kartu. Tingkatkan saat strategi Anda siap untuk order book penuh.

Mulai gratis