Empat angka, semuanya diukur daripada sistem dagangan kertas kami sendiri, satu strategi, isyarat perpetual BTCUSDT 1-minute, 31 hari dan 1,418 pesanan. Masa median dari penutupan bar hingga pesanan diakui oleh bursa: 195 ms. Persentil ke-99: 2,970 ms. Median pada 1% minit dengan volatiliti terealisasi tertinggi: 840 ms. Dan pemalar latensi yang kekal dalam konfigurasi backtest sepanjang kebanyakan tahun sebelumnya: 0.
Tiga daripada angka itu membosankan. Semua orang tahu nilai sifar itu salah, semua orang akhirnya menggantikannya dengan sesuatu, dan sesuatu itu hampir selalu pemalar yang dipilih berdasarkan rasa hati. 100 ms, 250 ms, “biar konservatif, 500.” Angka yang benar-benar penting ialah 840, kerana ia menunjukkan latensi anda bergantung pada keadaan pasaran, dan keadaan pasaran ketika latensi melonjak ialah keadaan yang sama ketika isyarat anda menyangka ia telah menemui sesuatu.
Ke mana perginya 195 milisaat itu
Berikut belanjawan penuh, diukur peringkat demi peringkat dengan cap masa jam monotonik yang direkodkan pada setiap lompatan. Pelayan itu ialah instans AWS di ap-northeast-1, wilayah yang sama dengan titik akhir venue, iaitu antara persediaan seperti dagangan runcit tanpa kolokasi yang terbaik.
| Peringkat | p50 | p95 | p99 |
|---|---|---|---|
| Penutupan bar → peristiwa kline-closed WS diterima | 128 ms | 402 ms | 1,940 ms |
| Penghuraian + kemas kini keadaan ciri | 3 ms | 9 ms | 28 ms |
| Keputusan: penilaian model + semakan risiko | 11 ms | 22 ms | 60 ms |
| Hantar pesanan → pengakuan bursa | 47 ms | 180 ms | 1,100 ms |
| Hujung ke hujung (diukur, bukan dijumlahkan) | 195 ms | 690 ms | 2,970 ms |
Ada dua perkara yang perlu diperhatikan sebelum kita sampai kepada bahagian menarik. Pertama, nilai median tidak boleh dijumlahkan begitu sahaja: 128 + 3 + 11 + 47 = 189, sedangkan median hujung ke hujung yang diukur ialah 195. Persentil tidak boleh dijumlahkan, dan jika anda menganggarkan latensi dengan menjumlahkan p99 setiap peringkat, hasilnya 3,128 ms sedangkan p99 sebenar ialah 2,970. Di sini beza itu kecil; apabila peringkat berkorelasi dalam arah yang bertentangan, hasilnya boleh jauh tersasar. Ukur keseluruhan laluan.
Kedua, lihat baris teratas. Dua pertiga daripada belanjawan median dihabiskan untuk menunggu bursa memaklumkan bahawa bar telah ditutup. Bukan rangkaian, bukan kod anda, bukan penghalaan pesanan. Venue mengagregatkan dagangan menjadi kline, menentukan bahawa minit telah berakhir, kemudian menghantarnya. Penghantaran itu menunggu dalam barisan, yang dikongsi dengan setiap pelanggan lain pada strim itu.
Angka 840
Kelompokkan kesemua 1,418 pesanan mengikut volatiliti terealisasi minit yang menghasilkan isyarat, dan taburannya berubah ketara.
| Kelompok volatiliti bar isyarat | Pesanan | p50 hujung ke hujung | p99 hujung ke hujung |
|---|---|---|---|
| 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% teratas daripada semua minit | 14 | 840 ms | 4,100 ms |
Prestasi setiap peringkat merosot serentak, sebab itu kesannya berganda. Barisan pengagregatan dan siaran venue dipengaruhi beban enjin pemadanan, jadi minit dengan 11,000 dagangan dihantar lebih lewat berbanding minit dengan 600 dagangan. Proses anda sendiri mengendalikan lebih banyak kemas kini kedalaman dan cetakan dagangan dalam tempoh yang sama, jadi kemas kini ciri yang biasanya mengambil masa 3 ms mengambil masa 28. Laluan pesanan REST bersaing dengan kepanikan semua orang, dan kadangkala anda mula melihat respons 503 yang diikuti percubaan semula, lalu menelan satu saat penuh dengan sendirinya. Pekali korelasi antara bilangan dagangan pada bar isyarat dengan latensi hujung ke hujung dalam sampel kami ialah 0.41. Tidak terlalu besar. Cukup untuk menjadikan pemalar itu merosakkan.
Strategi yang melepasi saringan awal pula kebanyakannya ialah strategi yang berdagang berdasarkan penembusan, pembalikan, ketidakselarasan dan rangkaian pembubaran. Ia tercetus tepat dalam kelompok yang latensinya paling teruk. Isyarat momentum yang hanya tercetus apabila pergerakan minit mencapai 40 bps ialah isyarat yang secara struktur telah memastikan ia sentiasa dilayan oleh versi sistem anda yang paling perlahan.
Pernah sekali kami menghabiskan sehari menjejaki anomali 3.6 saat yang muncul pada waktu yang hampir sama setiap malam. Puncanya logrotate, yang menyalin lalu mengosongkan fail 2 GB pada volum EBS yang sama tempat proses menulis, sekali gus menyekat gelung peristiwa. Pasaran tidak bersalah. Ukur dahulu, kemudian salahkan struktur mikro pasaran.
Kesannya terhadap isian
Harga bergerak sementara anda menunggu. Pada minit rawak, purata pergerakan songsang sepanjang median 195 ms kami ialah kira-kira 1.1 bps berbanding arah isyarat. Pada minit kuartil teratas dengan latensi 312 ms, 5.8 bps. Pada minit 1% teratas dengan latensi 840 ms, kira-kira 14 bps pergerakan songsang berlaku sebelum pesanan sampai ke buku pesanan.
Pada perpetual BTC, spread hampir tidak menyumbang kepada hal ini: satu tick pada sebut harga 84,000 ialah 0.012 bps, jadi kerugiannya datang daripada pergerakan songsang dan bukannya kos melintasi spread. Pindahkan strategi yang sama ke perpetual bermodal pasaran sederhana, dan kesan kedua mula ketara — spread terbaik dalam buku pesanan sampel kami meningkat daripada 1.4 bps pada minit tenang kepada 6.2 bps dalam kuartil teratas, sementara kedalaman pada harga terbaik itu menyusut lebih separuh. Anda menanggung pergerakan songsang, spread yang lebih lebar dan kedalaman yang lebih rendah serentak, semuanya kerana puncanya sama.
Apabila kami memainkan semula 31 hari yang sama dengan latensi bersyarat bagi setiap bar, menggantikan nilai rata 200 ms, purata harga kemasukan backtest menjadi 3.1 bps lebih buruk, hampir semuanya tertumpu pada 9% dagangan. Perbezaan harga kemasukan antara backtest dengan dagangan kertas turun daripada 4.2 bps kepada 0.9 bps. Sharpe dalam sampel bagi strategi itu turun daripada 1.7 kepada 1.1, angka yang jujur dan memang sepatutnya begitu sejak awal.
Jadi, apa yang patut anda masukkan dalam konfigurasi
Bukan satu nilai skalar. Inilah yang kami gunakan sekarang:
- Ambil sampel, jangan tetapkan nilai. Ambil latensi bagi setiap pesanan simulasi daripada taburan empirikal yang disyaratkan pada aktiviti bar itu sendiri — bilangan dagangan dan pulangan mutlak sudah memadai, dan kedua-duanya sudah tersedia dalam kline standard. Padankan sekali bagi setiap venue dan jenis pesanan, kemudian padankan semula setiap bulan.
- Kekalkan ekornya. Jangan padankan taburan lognormal lalu menganggap kerja selesai; nilai p99 datang daripada lonjakan percubaan semula dan jeda GC yang tidak dapat ditiru oleh taburan licin. Kami menggunakan kuantil empirikal dengan pensampelan semula ekor di atas p95.
- Latensi turut terpakai pada pembatalan. Penggantian stop atau pembatalan lindung nilai tertakluk pada kelewatan yang sama, dan dalam pasaran pantas, pembatalan anda berlumba dengan isian. Jika simulator anda membatalkan serta-merta, model risiko anda hanyalah fiksyen.
- Tambah pengawal kesegaran dan simulasikannya. Sistem kami menggugurkan apa-apa isyarat yang bar-nya berusia lebih daripada 1.5 saat ketika tiba. Itu tingkah laku sebenar dengan kos sebenar — dagangan digugurkan secara senyap, dan dagangan yang sama mesti digugurkan dalam backtest.
- Kalibrasi semula berdasarkan dagangan kertas. Dagangan kertas ialah tempat anda memperoleh nilai rujukan sebenar. Rekodkan cap masa bagi empat lompatan pada setiap pesanan dan bandingkan taburan itu dengan andaian simulator, setiap minggu.
Kelas aset lain, masalah yang sama. Ekuiti AS: pita gabungan menambah kelewatan pengagregatannya sendiri selain kelewatan broker anda, dan kelewatan itu meningkat apabila kadar mesej melonjak atas sebab struktur yang sama. Pasaran ramalan: kebanyakan venue hanya menerima kemasukan pesanan REST, dan kami mengukur median bawah 100 ms yang meningkat kepada beberapa saat apabila peristiwa penyelesaian berlaku dan semua orang tiba serentak. Opsyen kripto: sebut harga yang anda gunakan mungkin sudah lapuk selama dua saat tepat pada minit aset asas bergerak.
Bentuk umum kesilapan ini ialah menganggap parameter pelaksanaan sebagai pemalar bebas, sedangkan ia bergantung pada pemboleh ubah keadaan yang sama yang memacu isyarat anda. Yuran berkelakuan baik; funding berkelakuan baik; latensi tidak. Jika anda mahu mengingati satu angka daripada semua ini, ingat nisbahnya: p99 kami lima belas kali ganda median, dan isyarat kami tiba secara tidak seimbang hampir dengan hujung p99.
Pasang instrumentasi pada empat lompatan itu. Kerja ini mengambil masa satu petang dan akan memberitahu anda lebih banyak tentang strategi anda berbanding seminggu lagi mencari parameter.
← Semua catatan


