Geriye dönük testteki en tehlikeli zamanlama hatası, kusursuz bir zaman damgası denetiminden sağ çıkabilir. İki olayın da zaman damgası 10:00:00.000 olabilir; yine de gerçekleşme sıralarını simülatörünüz yanlış tahmin etmiş olabilir.
Bu, strateji tamamlanmış mumların ötesindeki olaylara tepki verdiğinde önem kazanır: kotasyon güncellemesi, işlem, fonlama bildirimi, borsa durum değişikliği ya da kendi emir onayı. Zaman damgası, bir olaya hangi zamanın atandığını söyler. Stratejinizin o olaya ne zaman tepki verebildiğini göstermeyebilir.
Olay sıralaması neyi değiştirir?
En iyi satış fiyatı $100.00'ın altına düştüğünde alım yapan bir strateji düşünün. Aynı milisaniyede veri akışı, satış fiyatının $99.99'a güncellendiğini ve $99.99'dan bir işlem gerçekleştiğini kaydediyor. Geriye dönük testiniz önce işlemi, sonra kotasyonu işlerse strateji yeni satış fiyatını görür ve emir gönderir. Önce kotasyonu işlemesi de, olay gerçekten erişilebilir durumdaysa sorun olmayabilir. Ancak emir ulaşmadan önce işlem görüntülenen likiditeyi tükettiyse, $99.99'dan gerçekleşen emir hayal ürünüdür.
Satırları yalnızca zaman damgasına göre sıralamak, aynı zamanlı olaylar için bir sıra seçme işini simülatöre bırakır. Dosya sırası, sembol sırası ya da veritabanı sorgu planı kazara bir yürütme kuralına dönüşebilir. Temel veriler değişmediği hâlde özsermaye eğrisi değişebilir.
Bunun ne kadar keyfî olabileceğini görmenin iyi bir yolu var: aynı zamanlı olayları geliş sırası yerine sembol adına göre sıralayın. Böylece çok varlıklı bir stratejinin davranışı, sırf bir sembol diğerinden önce sıralandığı için değişebilir.
Geriye dönük test hangi saatleri tutmalı?
Piyasa verileri ve emir işleme çoğu zaman birbirinden farklı birkaç zaman içerir. Kaynağınızın sağladığı alanları koruyun ve anlamlarını kesin biçimde adlandırın. Birçok veri akışında borsa zaman damgası ile yerel alım zaman damgası da işe yarar; ancak hiçbiri, tüm katılımcıların ne gördüğünü tek başına kesin olarak göstermez.
| Saat | Kaydettiği bilgi | Tek başına kanıtlayamayacağı şey |
|---|---|---|
| Borsa olay zamanı | Platformun olayın ne zaman gerçekleştiğini söylediği | Başka bir veri akışının ya da sürecinizin olayı hangi sırada gördüğü |
| Alım zamanı | Veri toplayıcınızın mesajı ne zaman aldığı | Stratejinizin mesajı işlemeyi ne zaman bitirdiği |
| Karar zamanı | Kodunuzun sinyali ne zaman değerlendirdiği | Kotasyondaki fiyatın hâlâ kullanılabilir olduğunu |
| Emrin ulaşma zamanı | Platformun emri ne zaman işleme alabileceği | Eşleşme kuralları ve likidite desteklemediği sürece bir gerçekleşmeyi |
Alım zamanlarını içermeyen geçmiş veriler için hangi varsayımları yaptığınızı belirtin. Geriye dönük test, borsa olaylarını sırasıyla işleyip karar ile emrin ulaşması arasına sabit 5 ms gecikme koyabilir. Bu, geçmişten elde edilmiş bilgi değil, bir modeldir. Aynı zaman damgasını taşıyan borsa olayları için sıra numaranız yoksa eşitlikleri bozmak için kullandığınız kural da bir varsayımdır.
Aynı zamanlı olayları nasıl modellerim?
Önce, varsa kaynak sıra numaralarını koruyun. Sıra numarası, kendi veri akışı içinde zaman damgasından daha güçlü bir sıralama sağlar; ancak kanalların veya ürünlerin sıra numarası alanları birbirinden ayrı olabilir.
Ardından simülatörün işleme kuralını açıkça belirleyin. Her olay için stratejinin bilgisini güncelleyip güncelleyemeyeceğine, kullanılabilir likiditeyi değiştirip değiştiremeyeceğine, emir tetikleyip tetikleyemeyeceğine veya bir emri onaylayıp onaylayamayacağına karar verin. Bunlar farklı işlemlerdir; hepsini “satırı işle” adımında birleştirmek, imkânsız gerçekleşmelerin araya sızmasına yol açar.
- Yalnızca stratejinin karar zamanına kadar ulaşmış piyasa bilgilerini uygulayın.
- Emri oluşturun, ardından modellenen borsa ulaşma zamanına ilerletin.
- Yürütmeye yalnızca ulaşma sonrasında uygun likiditeye karşı, emir türünün gerçekleşme varsayımları kapsamında izin verin.
- Her simüle edilmiş gerçekleşmede kullanılan girdileri, olay sıralamasını ve gecikmeyi kaydedin.
Mum temelli bir strateji için bu, sorunun gerektirdiğinden fazla ayrıntı olabilir. Sinyal tamamlanmış 1-minute mumları kullanıyor ve emirler ihtiyatlı bir maliyet modeliyle sonraki mumun açılışında gerçekleşiyorsa, milisaniyenin altındaki sıralamanın araştırma sonucunu değiştirme olasılığı düşüktür. Önemli olan, zamanlama ayrıntısını geriye dönük testin ortaya koyduğu iddiayla eşleştirmektir.
Ulaşma zamanı verisi olmadan geriye dönük teste güvenebilir miyim?
Yine de kullanabilirsiniz; yeter ki sınırlarını açıkça belirtin. Strateji yavaş işlem yapıyor ve geniş risk limitleri kullanıyorsa birkaç milisaniye önemsiz kalabilir. Geçici kotasyonlara tepki veriyor, kuyrukta sıra kapmaya çalışıyor ya da borsalar arası öncül-gecikme sinyaline dayanıyorsa eksik ulaşma zamanları sonucun merkezinde yer alabilir.
Eleştirenler, hassas olay zamanlamasının sahte bir kesinlik yaratabileceğini söylerken haklı. Geçmiş veri akışları eksiktir, saatler sapar ve borsa zaman damgaları ağ üzerindeki her adımı göstermez. Simülatör nanosanıye alanları kullansa bile kaba bir gerçekleşme varsayımına dayanabilir.
Bu nedenle kesinlik iddiasında bulunmak yerine duyarlılığı sınayın: makul olay sıralamaları ve emir gecikmeleriyle veriyi yeniden oynatın, ardından işlem sayısını, gerçekleşme fiyatını ve hangi sinyallerin geçerliliğini koruduğunu karşılaştırın. Sonuç, verilerin ortaya koyamayacağı bir sıralamaya bağlıysa bu bağımlılık araştırma raporunda yer almalıdır. Kusurlu saatlerle de geriye dönük test yararlı olabilir. Yalnızca gerçekten hangi zamanı bildiğini kabul etmesi gerekir.
← Tüm yazılar


