Backtest boleh mengisi pesanan had anda walaupun tiada peluang dagangan yang boleh dilaksanakan. Jika paras rendah sesuatu bar menembusi had beli anda, banyak enjin akan mengira pesanan itu terisi. Namun, paras rendah hanya memberitahu bahawa sekurang-kurangnya satu dagangan yang dilaporkan berlaku pada harga itu atau lebih rendah. Ia tidak memberitahu jumlah yang didagangkan, jumlah pesanan yang berada dalam barisan sebelum pesanan anda, atau sama ada pesanan anda sudah aktif pada waktunya.
Perbezaan ini paling penting apabila kelebihan strategi bergantung pada pengisian pasif yang kerap. Model yang menganggap setiap sentuhan harga sebagai pengisian penuh boleh menjadikan kemasukan yang sabar sebagai sumber alpha yang cuma wujud dalam simulasi.
Adakah sentuhan bar pada harga had saya bermaksud pesanan saya terisi?
Tidak. Ini bermaksud julat harga yang direkodkan bagi bar itu merangkumi harga had anda. Sama ada pesanan anda boleh terisi bergantung pada buku pesanan pasaran, aliran dagangan, kedudukan anda dalam barisan, dan masa pesanan tiba.
Bayangkan had beli pada $100.00. Bar dibuka pada $100.20, mencecah paras rendah $99.98, lalu ditutup pada $100.10. Dagangan mungkin direkodkan pada harga dua sen lebih rendah daripada harga anda, tetapi jika barisan pada $100.00 panjang dan hanya sedikit jumlah didagangkan pada harga itu, pesanan anda mungkin tidak disentuh. Dengan OHLCV sahaja, anda tidak dapat melihat barisan tersebut.
Ada satu lagi perkara: bar menggabungkan peristiwa sepanjang suatu tempoh. Jika isyarat anda dikira daripada harga penutupan bar itu, anda tidak boleh menganggap pesanan anda sudah berada dalam buku lebih awal dalam bar, ketika paras rendahnya berlaku. Bar itu memampatkan urutan peristiwa yang diperlukan untuk menjawab soalan tersebut.
Apakah yang sebenarnya boleh diberitahu oleh data OHLCV tentang pengisian pesanan had?
OHLCV boleh menolak kemungkinan sesetengah pengisian dan menjadikan yang lain munasabah. Namun, ia tidak dapat memastikan keutamaan dalam barisan atau menjamin jumlah yang tersedia untuk pesanan anda.
| Pemerhatian | Perkara yang disokong | Perkara yang tidak dapat dibuktikan |
|---|---|---|
| Paras rendah bar kekal di atas had beli | Tiada dagangan yang dilaporkan mencapai harga itu dalam bar tersebut | Pesanan itu akan terisi |
| Paras rendah bar menyentuh had beli | Harga itu dilaporkan pada paras had | Sebarang jumlah didagangkan selepas pesanan anda tiba |
| Paras rendah bar bergerak di bawah had beli | Dagangan berlaku pada harga itu atau lebih rendah | Jumlah yang mencukupi sampai ke kedudukan anda dalam barisan |
| Jumlah dagangan bar melebihi saiz pesanan anda | Sekurang-kurangnya jumlah itu didagangkan di suatu tempat dalam bar tersebut | Jumlah itu didagangkan pada harga anda, selepas pesanan tiba |
Jadi, enjin berasaskan bar memerlukan andaian pengisian. Anggap andaian itu sebagai model yang mempunyai titik buta yang diketahui, bukannya fakta yang diperoleh daripada lilin carta.
Bagaimanakah saya patut memodelkan pengisian pesanan had dalam backtest?
Mulakan dengan masa pesanan. Tentukan bila isyarat tersedia, bila pesanan sampai ke venue, dan peristiwa pasaran seterusnya yang boleh berinteraksi dengannya. Bagi isyarat yang diketahui pada penutupan bar, peraturan berasaskan bar yang konservatif ialah menjadikan pesanan layak bermula dari bar seterusnya.
Kemudian, bezakan kelayakan harga daripada kuantiti pengisian. Pesanan yang layak untuk didagangkan tidak bermakna keseluruhan pesanan akan terisi. Jika anda mempunyai rekod dagangan tetapi tiada sejarah buku pesanan, anda boleh mensyaratkan jumlah dagangan pada harga had atau harga yang lebih baik melebihi gandaan tertentu daripada saiz pesanan anda. Gandaan itu ialah penampan kasar untuk barisan, bukannya nilai tetap yang sesuai untuk semua keadaan. Uji beberapa nilai dan laporkan perubahan hasilnya.
Contohnya, katakan strategi meletakkan had beli 2 BTC dan harga yang dipilih didagangkan sebanyak 3 BTC selepas pesanan layak. Model yang mensyaratkan 5 BTC jumlah dagangan yang memenuhi syarat itu akan membiarkan pesanan tidak terisi; model yang menggunakan gandaan jumlah 1.0 akan mengisinya. Kedua-dua hasil itu tidak membina semula barisan sebenar. Perbandingan ini menunjukkan sejauh mana strategi bergantung pada andaian yang tidak dapat anda perhatikan.
Kekalkan pesanan yang tidak terisi dalam simulasi. Batalkannya apabila strategi akan membatalkannya, dan biarkan dagangan yang terlepas kekal terlepas. Mengisi pesanan strategi setiap kali hadnya disentuh, sambil mengabaikan pesanan yang luput tanpa disentuh, memesongkan kedua-dua pelaksanaan dan bilangan peluang.
Bilakah saya memerlukan data buku pesanan?
Gunakan kemas kini buku pesanan dan data dagangan apabila kedudukan dalam barisan atau pengisian separa menjadi teras strategi: pembentukan pasaran, sebut harga pasif jangka pendek, atau kemasukan yang bergantung pada kedudukan berhampiran bahagian hadapan aras harga yang sesak. Walaupun begitu, data awam sejarah mungkin tidak menunjukkan kedudukan tepat anda dalam barisan. Anda perlu memodelkan ketibaan pesanan, pembatalan di hadapan anda, peraturan padanan, dan kesan pasaran daripada pesanan anda sendiri.
Bagi strategi yang lebih perlahan, buku terperinci mungkin menambah kerumitan tanpa menyelesaikan ketidakpastian utama. Kajian berasaskan bar masih boleh membandingkan anggaran atas pengisian apabila harga disentuh dengan senario lebih ketat yang mensyaratkan jumlah dagangan. Jika kelebihan yang kelihatan itu hilang sebaik sahaja anda mensyaratkan pengisian yang munasabah, itu maklumat penyelidikan yang berguna.
Bagaimanakah saya boleh tahu sama ada hasil saya bergantung pada pengisian yang terlalu optimistik?
Jalankan strategi yang sama dengan beberapa peraturan pengisian yang dinyatakan dengan jelas, kemudian bandingkan lebih daripada pulangan akhir. Jejaki bilangan pesanan yang terisi, kadar pengisian separa, tempoh pesanan berada dalam buku, kuantiti yang dibatalkan, pergerakan yang terlepas selepas pesanan tidak terisi, dan pusing ganti. Strategi mungkin mengekalkan pulangan utama yang dipaparkan sambil bergantung pada dagangan yang jauh lebih sedikit dan lebih mudah diperoleh.
Dagangan kertas ialah semakan berguna yang seterusnya: hantar logik pesanan sebenar dan rekodkan pengakuan penerimaan, pengisian, serta pembatalan. Pengisian dagangan kertas masih bergantung pada peraturan venue atau simulator itu sendiri, tetapi ia menguji masa dan pengendalian pesanan yang tidak dapat ditunjukkan oleh lilin carta.
Had yang disentuh ialah bukti tentang harga. Pengisian ialah dakwaan tentang pelaksanaan. Backtest anda patut menjadikan jurang antara kedua-dua dakwaan ini jelas.
← Semua catatan


