Sesuatu strategi menghantar pesanan had pada 10:00. Isyaratnya berubah pada 10:03. Backtest senyap-senyap menggantikan pesanan itu pada 10:04, kemudian mengira pengisian pada 10:05. Dalam dagangan kertas, pesanan asal mungkin masih menunggu di venue. Jika pesanan itu terisi ketika pesanan gantian juga masih aktif, strategi tersebut mempunyai 2 pesanan dan satu model posisi yang berpura-pura seolah-olah hanya ada satu.
Pesanan terbuka memerlukan keadaan dan jamnya sendiri. Backtest perlu mengetahui bila setiap pesanan dihantar, bila ia boleh dibatalkan, sama ada pembatalan itu sampai ke venue, dan apa yang berlaku jika pengisian berlumba dengan pembatalan tersebut. Tiga jalan pintas sering memadamkan fakta-fakta ini.
Kesilapan 1: Menganggap isyarat baharu membatalkan pesanan serta-merta
Banyak backtest mengira semula posisi sasaran pada setiap bar, kemudian menimpa pesanan yang sedang menunggu dengan kehendak isyarat terkini. Ini menyebabkan pesanan itu lenyap tepat ketika strategi berubah fikiran. Venue sebenar tidak beroperasi begitu. Permintaan pembatalan mengambil masa, dan pesanan mungkin terlaksana sebelum venue memprosesnya.
Bayangkan pesanan beli had sebanyak 100 saham pada $50.00. Pada 10:03, isyarat melemah, lalu strategi menghantar permintaan pembatalan. Pada 10:03:00.080, 60 saham daripada pesanan itu terisi; pembatalan disahkan pada 10:03:00.110. Baki 40 saham dibatalkan, tetapi posisi kini merangkumi 60 saham. Backtest berasaskan bar yang memadam pesanan pada 10:03 mungkin melaporkan 0. Backtest yang mengandaikan pembatalan serta-merta tetapi masih merekodkan pengisian kemudian pula mencipta pendedahan dalam arah yang bertentangan.
Jejaki kitar hayat pesanan secara jelas: dihantar, disahkan, terisi sebahagian, pembatalan menunggu, dibatalkan atau terisi sepenuhnya. Kekalkan pengisian yang berlaku sebelum pembatalan disahkan. Untuk simulasi bar kasar, pilih dan nyatakan peraturan turutan yang konservatif apabila kedua-dua peristiwa mungkin berlaku dalam bar yang sama.
Kesilapan 2: Membiarkan pesanan menunggu aktif selama-lamanya
Pesanan had yang harganya ditetapkan berdasarkan isyarat pada 10:00 boleh menjadi lapuk walaupun isyarat itu tiada peraturan keluar yang jelas. Buku pesanan berubah, turun naik bertukar, dan nilai pasaran instrumen boleh menyimpang. Namun, simulator yang membiarkan pesanan aktif sehingga terisi mungkin mendapat pengisian beberapa bulan kemudian dan mengaitkannya dengan tesis yang sudah tidak lagi wujud.
Tetapkan dasar tempoh sah pesanan yang sepadan dengan strategi. Isyarat 1 minit mungkin menggunakan tamat tempoh 30 saat; pengimbangan semula harian mungkin membiarkan pesanan aktif sehingga penutupan. Itu pilihan strategi, bukannya tetapan lalai sejagat. Jika strategi menetapkan semula harga setiap bar, modelkan urutan pembatalan dan penggantian, bukannya memindahkan pesanan secara ajaib ke harga baharu.
| Dasar pesanan | Kegunaan lazim | Soalan backtest |
|---|---|---|
| Segera atau batal | Ambil kecairan yang tersedia, kemudian hentikan | Berapa banyak yang boleh terisi ketika pesanan dihantar? |
| Tamat tempoh singkat | Isyarat pantas dengan jendela pelaksanaan yang singkat | Adakah pesanan masih sah apabila harga kembali? |
| Sehingga sesi berakhir | Pengimbangan semula perlahan atau niat untuk lelongan penutupan | Adakah venue benar-benar menyokong tempoh aktif itu? |
Kesilapan 3: Mengira setiap sentuhan harga sebagai pengisian
Jika paras terendah lilin menyentuh harga pesanan beli had, itu tidak semestinya bermakna pesanan tersebut terisi. Mungkin ada barisan pesanan di hadapannya, volum dagangan pada harga itu mungkin sedikit, atau urus niaga ringkas itu berlaku sebelum pesanan tiba. Model pesanan lapuk sering menggabungkan ketiga-tiga kesilapan ini: pesanan dibiarkan aktif terlalu lama, dianggap berada di barisan paling hadapan, kemudian diberikan pengisian penuh apabila harga menyentuh paras pesanan.
Sekurang-kurangnya, elakkan pengisian sebelum masa ketibaan pesanan dan hadkan kuantiti simulasi berdasarkan volum dagangan munasabah pada harga had. Bagi strategi yang bergantung pada kedudukan dalam barisan, gunakan data dagangan dan buku pesanan atau model barisan yang sengaja konservatif. Anda masih boleh menggunakan pengisian berasaskan sentuhan harga untuk saringan kasar, tetapi tandakannya sebagai anggaran optimistik dan bandingkan dengan andaian yang lebih ketat.
Audit praktikal: catat masa penciptaan setiap pesanan, jendela aktif, permintaan dan pengesahan pembatalan, masa pengisian, kuantiti terisi serta kuantiti yang berbaki. Kemudian mainkan semula beberapa dagangan di sekitar pembalikan isyarat. Jika anda tidak dapat menerangkan sebab setiap pesanan masih aktif ketika terisi, kiraan pengisian backtest itu perlu diperbaiki.
Modelkan pesanan yang ingin anda uji dalam dagangan kertas
Keadaan pesanan menghubungkan niat strategi dengan pendedahan sebenar. Posisi sepatutnya berubah apabila pesanan terisi, bukannya apabila sasaran isyarat berubah atau permintaan pembatalan dihantar. Penggantian perlu meninggalkan jejak yang boleh diaudit, dan pengisian separa perlu dibawa ke keputusan seterusnya. Ini menjadikan backtest lebih rumit, tetapi perbandingan dagangan kertas juga lebih bermakna: kedua-dua sistem boleh berbeza dari segi pelaksanaan atas sebab yang dapat dikenal pasti.
Apabila model pesanan tidak pasti, kekalkan ketidakpastian itu dalam hasil. Jalankan simulasi dengan pesanan berhayat singkat dan panjang, ubah kelewatan pembatalan, dan tunjukkan sejauh mana prestasi bergantung pada andaian barisan yang optimistik. Strategi itu mungkin baik. Namun, kelebihan yang kelihatan mungkin juga datang daripada keuntungan faedah pesanan yang sistem sebenar sudah batalkan beberapa jam sebelumnya.
← Semua catatan


