13 September 2026 · eksekusi

Berapa latensi yang perlu Anda tambahkan ke backtest? Kami mengukur setiap milidetiknya

Berapa latensi yang perlu Anda tambahkan ke backtest? Kami mengukur setiap milidetiknya

Empat angka, semuanya diukur dari tumpukan paper trading kami sendiri, satu strategi, sinyal perpetual BTCUSDT 1 menit, 31 hari, dan 1,418 order. Median waktu dari penutupan bar hingga order diakui oleh bursa: 195 ms. Persentil ke-99: 2,970 ms. Median pada 1% menit dengan volatilitas terealisasi tertinggi: 840 ms. Dan konstanta latensi yang tercantum dalam konfigurasi backtest selama sebagian besar tahun sebelumnya: 0.

195 msmedian dari penutupan bar → pengakuan order
2,970 msp99, jalur yang sama
840 msmedian pada menit dengan volatilitas 1% teratas

Tiga dari angka itu tidak mengejutkan. Semua orang tahu angka nol itu keliru, pada akhirnya semua orang menggantinya dengan angka tertentu, dan angka itu hampir selalu konstanta yang dipilih berdasarkan firasat. 100 ms, 250 ms, "ambil aman saja, 500." Angka yang benar-benar penting adalah 840, karena itu menunjukkan bahwa latensi Anda bergantung pada kondisi pasar, dan kondisi pasar saat latensi membengkak adalah kondisi pasar yang sama ketika sinyal Anda merasa telah menemukan peluang.

Ke mana perginya 195 milidetik

Berikut anggaran lengkapnya, diukur tahap demi tahap dengan cap waktu jam monoton yang dicatat pada setiap lompatan. Mesin kami adalah instans AWS di ap-northeast-1, satu region dengan endpoint bursa, yang kurang lebih merupakan konfigurasi ritel non-kolokasi sebaik mungkin.

Tahap p50 p95 p99
Penutupan bar → event kline-closed WS diterima 128 ms 402 ms 1,940 ms
Parsing + pembaruan status fitur 3 ms 9 ms 28 ms
Keputusan: evaluasi model + pemeriksaan risiko 11 ms 22 ms 60 ms
Pengiriman order → pengakuan bursa 47 ms 180 ms 1,100 ms
Ujung ke ujung (diukur, bukan dijumlahkan) 195 ms 690 ms 2,970 ms

Ada 2 hal yang perlu dicatat sebelum masuk ke bagian menarik. Pertama, nilai median tidak bisa dijumlahkan begitu saja: 128 + 3 + 11 + 47 = 189, sedangkan median ujung ke ujung yang terukur adalah 195. Persentil tidak bersifat aditif, dan jika Anda membuat estimasi latensi dengan menjumlahkan p99 setiap tahap, hasilnya 3,128 ms, padahal p99 sebenarnya 2,970. Di sini cukup dekat; ketika tahap-tahap berkorelasi ke arah sebaliknya, hasilnya bisa jauh meleset. Ukur seluruh jalurnya.

Kedua, perhatikan baris teratas. Dua pertiga anggaran median habis untuk menunggu bursa memberi tahu bahwa bar telah ditutup. Bukan jaringan, bukan kode Anda, bukan perutean order. Bursa mengagregasi transaksi menjadi kline, memutuskan bahwa menit telah berakhir, lalu mengirimkannya. Pengiriman itu mengantre, dan antreannya dipakai bersama semua pelanggan lain pada stream tersebut.

Angka 840

Kelompokkan setiap 1,418 order berdasarkan volatilitas terealisasi pada menit yang menghasilkan sinyal, dan distribusinya langsung terlihat berbeda.

Kelompok volatilitas bar sinyal Order p50 ujung ke ujung p99 ujung ke ujung
Kuartil terbawah 201 141 ms 488 ms
Dua kuartil tengah 796 183 ms 1,210 ms
Kuartil teratas 407 312 ms 2,880 ms
1% menit teratas 14 840 ms 4,100 ms

Semua tahap melambat bersamaan, sehingga efeknya menumpuk. Beban matching engine turut membebani antrean agregasi dan siaran bursa, jadi menit dengan 11,000 transaksi dikirim lebih lambat daripada menit dengan 600 transaksi. Proses Anda sendiri juga menangani lebih banyak pembaruan depth dan cetakan transaksi dalam jendela waktu yang sama, sehingga pembaruan fitur yang biasanya memakan 3 ms menjadi 28. Jalur order REST bersaing dengan kepanikan semua orang, dan Anda mulai sesekali melihat 503 lalu percobaan ulang yang sendirian saja menghabiskan 1 detik penuh. Koefisien korelasi antara jumlah transaksi pada bar sinyal dan latensi ujung ke ujung dalam sampel kami adalah 0.41. Tidak terlalu besar. Cukup untuk merusak asumsi konstanta.

Strategi yang lolos penyaringan tahap pertama sebagian besar adalah strategi yang memperdagangkan breakout, pembalikan, dislokasi, dan rangkaian likuidasi. Strategi-strategi itu terpicu tepat pada kelompok dengan latensi terburuk. Sinyal momentum yang hanya terpicu ketika pergerakan menit mencapai 40 bps secara struktural memastikan bahwa sinyal itu selalu dilayani oleh tumpukan Anda yang paling lambat.

Pernah suatu kali kami menghabiskan sehari menelusuri pencilan 3.6 detik yang muncul kira-kira pada waktu yang sama setiap malam. Penyebabnya logrotate, yang menyalin lalu mengosongkan file 2 GB pada volume EBS yang sama dengan tempat proses menulis, sehingga event loop macet. Pasar tidak bersalah. Ukur dulu, baru salahkan mikrostruktur.

Dampaknya pada eksekusi order

Harga bergerak selama Anda menunggu. Pada menit acak, rata-rata pergerakan merugikan selama median 195 ms kami sekitar 1.1 bps berlawanan dengan arah sinyal. Pada menit kuartil teratas dengan latensi 312 ms, 5.8 bps. Pada menit 1% teratas dengan latensi 840 ms, pergerakan merugikan sekitar 14 bps terjadi sebelum order bahkan mencapai order book.

Pada perpetual BTC, spread nyaris tidak berpengaruh dalam hal ini: satu tick pada kuotasi 84,000 setara dengan 0.012 bps, jadi kerugiannya berasal dari pergerakan merugikan, bukan biaya melintasi spread. Pindahkan strategi yang sama ke perpetual mid-cap dan komponen kedua mulai terasa — spread top-of-book dalam sampel kami naik dari 1.4 bps pada menit tenang menjadi 6.2 bps pada kuartil teratas, sementara depth pada harga tersebut menipis lebih dari separuh. Anda menanggung pergerakan harga, spread yang lebih lebar, dan depth yang lebih tipis sekaligus, semuanya karena penyebab yang sama.

Saat kami memutar ulang 31 hari yang sama dengan latensi bersyarat per bar alih-alih 200 ms tetap, harga masuk rata-rata pada backtest memburuk 3.1 bps, hampir seluruhnya terkonsentrasi pada 9% transaksi. Selisih harga masuk antara backtest dan paper turun dari 4.2 bps menjadi 0.9 bps. Sharpe in-sample strategi itu turun dari 1.7 menjadi 1.1, angka yang jujur dan memang seharusnya demikian sejak awal.

Jadi, apa yang sebaiknya Anda masukkan ke konfigurasi

Bukan satu angka. Inilah yang kami gunakan sekarang:

  1. Ambil dari sampel, jangan tetapkan. Ambil latensi untuk setiap order simulasi dari distribusi empiris yang disesuaikan dengan aktivitas bar tersebut — jumlah transaksi dan imbal hasil absolut sudah cukup, dan keduanya tersedia di kline standar. Lakukan pencocokan sekali per bursa untuk setiap jenis order, lalu sesuaikan ulang setiap bulan.
  2. Pertahankan ekornya. Jangan mencocokkan distribusi lognormal lalu menganggap selesai; p99 berasal dari lonjakan percobaan ulang dan jeda GC yang tak dapat direproduksi oleh distribusi mulus. Kami menggunakan kuantil empiris dengan ekor yang diambil ulang dari sampel di atas p95.
  3. Latensi juga berlaku untuk pembatalan. Penggantian stop atau pembatalan hedge tunduk pada penundaan yang sama, dan di pasar cepat pembatalan Anda berlomba dengan eksekusi fill. Jika simulator Anda membatalkan order seketika, model risiko Anda hanyalah fiksi.
  4. Tambahkan batas kesegaran data dan simulasikan. Sistem kami membuang sinyal apa pun yang bar-nya sudah berumur lebih dari 1.5 detik saat tiba. Ini perilaku nyata dengan biaya nyata — transaksi terhapus diam-diam, dan transaksi yang sama harus dihapus dalam backtest.
  5. Kalibrasi ulang berdasarkan paper trading. Paper trading memberi Anda nilai acuan sebenarnya. Catat cap waktu keempat lompatan untuk setiap order dan bandingkan distribusinya dengan asumsi simulator setiap minggu.

Kelas aset lain, masalah yang sama. Saham AS: consolidated tape menambahkan jeda agregasinya sendiri di atas jeda broker Anda, dan jeda itu melebar saat laju pesan meningkat karena alasan struktural yang sama. Pasar prediksi: sebagian besar bursa hanya menerima order melalui REST, dan kami mengukur median di bawah 100 ms yang meningkat menjadi beberapa detik saat peristiwa resolusi terjadi dan semua orang datang bersamaan. Opsi kripto: kuotasi yang Anda gunakan untuk menentukan harga bisa saja sudah kedaluwarsa 2 detik tepat pada menit saat aset dasarnya bergerak.

Bentuk umum kesalahan ini adalah memperlakukan parameter eksekusi sebagai konstanta mandiri, padahal parameter itu bergantung pada variabel kondisi yang sama dengan pendorong sinyal Anda. Fee berperilaku konsisten; funding berperilaku konsisten; latensi tidak. Jika Anda hanya akan mengingat satu angka dari semua ini, ingat rasionya: p99 kami lima belas kali median, dan sinyal kami tiba secara tidak proporsional mendekati ujung p99.

Pasang instrumentasi pada keempat lompatan itu. Pekerjaannya hanya satu sore dan hasilnya akan memberi tahu lebih banyak tentang strategi Anda daripada satu minggu lagi mencari parameter.

latensibacktestingpaper tradingeksekusifutures kripto
← Semua artikel