Salı günü saat 08:00 UTC'de bir kripto borsası, orta fiyatlı bir sürekli vadeli işlem sözleşmesinin tick boyutunu değiştirdi. Baz stratejimiz bunu fark etmedi. Sinyal hâlâ spot ve vadeli işlemler arasındaki aynı farkı görüyordu, risk limitleri değişmemişti ve geriye dönük test aynı sonuçları vermeyi sürdürüyordu.
Kâğıt üzerinde alım satım bunu fark etti. Emir adaptörü, alış limitini izin verilen en yakın fiyata aşağı yuvarladı. Böylece emir, geriye dönük testte modellenen seviyenin bir tick altına indi. Piyasa eski fiyata dokundu; simüle edilen emir gerçekleşti, kâğıt üzerindeki emir ise beklemede kaldı. Öğleye gelindiğinde stratejinin envanter dengesi bozulmuştu.
Olay, küçük bir yuvarlama hatası gibi görünüyordu. Aslında model sınırlarıyla ilgili bir sorundu: strateji fiyatları biliyordu, ancak geriye dönük test borsanın fiyat ızgarasını bilmiyordu.
Basit bir baz sinyaliyle işlem yapıyorduk: vadeli işlem primi belirli bir eşiği aştığında spot alıp sürekli vadeli işlem satıyorduk. Beklenen baz getirisi düşük olduğu için emirler pasifti. Girişin ücretleri ve nihai çıkışı karşılayacak kadar kazandırıp kazandırmayacağını birkaç tick belirleyebilirdi.
Tick boyutu değişince ne oldu?
Güncellemeden önce sürekli vadeli işlem, 0.01'lik artışlarla fiyat kabul ediyordu. Sonrasında ilgili fiyat aralığında 0.05'lik artışlar kabul etmeye başladı. Sinyal, 42,318.03'te bir satış hedefi hesapladı; bu fiyat eski kurala göre geçerliydi. Yeni kurala göre ise geçersizdi.
Borsa geçersiz fiyatları reddediyordu, ancak adaptörümüzde bir yedek davranış vardı: satış fiyatını aşağı yuvarlayarak 42,318.00 yaptı. Bu da hâlâ geçersizdi. İkinci bir yedek davranış fiyatı bir kez daha, bu kez 42,318.05'e yuvarladı. Bu fiyat geçerliydi, ancak satıcı açısından daha az agresifti. Emir artık modellenen fiyattan satamıyordu. Kod yolu başka bir piyasa için yazılmıştı ve reddi sessizce yeniden fiyatlandırılmış bir emre dönüştürüyordu.
Bu tek emir, birbirinden ayrı iki soruyu gündeme getirdi. İlk olarak, borsa hangi fiyatı kabul edebilir? İkinci olarak, istenen fiyat ızgarada yoksa strateji nasıl yanıt vermeli? İlk soruyu borsa yanıtlar. İkinci soruyu strateji veya yürütme politikası yanıtlamalıdır.
| Emir amacı | Izgara kuralı | Tipik yuvarlama yönü | Neyi değiştirebilir |
|---|---|---|---|
| Alış limiti | Fiyat tick katı olmalıdır | Limitte veya altında kalmak için aşağı | Daha düşük gerçekleşme olasılığı |
| Satış limiti | Fiyat tick katı olmalıdır | Limitte veya üstünde kalmak için yukarı | Daha düşük gerçekleşme olasılığı |
| Piyasaya dönük limit emir | Fiyat sınırlarına da uymalıdır | Kabul edilebilir azami fiyata bağlıdır | Makasın aşılıp aşılmayacağı |
Her durumda doğru olan tek bir yuvarlama kuralı yoktur. Alış fiyatını aşağı yuvarlamak alıcının fiyat kısıtını korur, ancak gerçekleşme olasılığını düşürebilir. Yukarı yuvarlamak emri piyasaya dönük hâle getirebilir; bu da ücretleri ve piyasa etkisini değiştirir. Pasif baz girişimiz için emri sessizce değiştirmek yanlış davranıştı. Strateji bir hedef belirlemişti; adaptör ise işlemin ekonomisini değiştirmişti.
Geriye dönük test neden hâlâ sağlıklı görünüyordu?
Geçmiş emir simülatörümüz limit fiyatlarını kesintisiz sayılar olarak ele alıyordu. Mumun en düşük fiyatı alış fiyatına ya da en yüksek fiyatı satış fiyatına ulaştığında gerçekleşme sayıyordu. Bu, pasif emirler için zaten iyimser bir yaklaşımdır; çünkü limit fiyattan işlem geçmiş olması, emir kuyruğundaki sıranız hakkında hiçbir şey söylemez. Ancak tick güncellemesi daha temel bir sorunu ortaya çıkardı: emir o fiyattan var olamazdı.
Aynı kararları, yeni ızgarayı yürürlük zamanından itibaren uygulayarak yeniden oynattık. Birkaç gerçekleşme ortadan kalktı. Bazı emirler, makası aşan fiyatlara yuvarlandı ve maker ücretleri yerine taker ücretlerine tabi oldu. Bunun sonucunda pozisyonun seyri farklılaştı; sonraki hedge ve çıkışlar da değişti. Üst veri gibi görünen bir kural, tüm işlem dizisini değiştirmişti.
Üstelik güncelleme, grafikte gizli kalmış bir sürpriz değildi. Borsa, yürürlük zamanını belirterek bir enstrüman kuralı değişikliği yayımlamıştı. Piyasa verilerini dikkatle saklıyorduk, ancak enstrüman üst verileri başlangıçta yenilenen bir önbellekte tutuluyordu. Geriye dönük test, tüm geçmiş tarihler için bugünün kurallarını okuyordu; kâğıt üzerinde alım satım ise süreç yeniden başlatılana kadar eski kuralları kullanıyordu. İki ortam da borsanın her an neye izin verdiğini temsil etmiyordu.
Geriye dönük test tick boyutu değişikliklerini nasıl modellemeli?
Enstrüman kurallarını, diğer zaman noktasına bağlı girdiler gibi geçerlilik aralıklarıyla sürümleyin. En azından yürürlük zamanını ve bir emri doğrulamak için gereken kural değerlerini saklayın: tick boyutu, miktar adımı, asgari miktar ve varsa fiyat aralıkları. Simülatör, simüle edilen karar anında geçerli olan kural kümesini yüklemelidir.
Ardından emir işleme davranışını açık hâle getirin. Hedef fiyat geçersizse emri reddedin, belgelenmiş bir politikaya göre yuvarlayın veya hedefi ızgaraya göre yeniden hesaplayın. Hangi işlemin yapıldığını kaydedin. Her emri otomatik olarak düzelten bir geriye dönük test, belirli bir yürütme politikasını tahmin etmekte yararlı olabilir; ancak bu politikayı borsada gerçekleşmiş bir emir gibi göstermemelidir.
Pasif emirlerde tick'e uygun fiyat, gerçekleşme için yalnızca ilk koşuldur. Piyasanın fiyatınızdan işlem geçip geçmediğini, önünüzdeki kuyrukta kaç emir olduğunu, iptalleri ve kazanacağınız ücret seviyesini de modellemeniz gerekir.
İki kontrol ekledik. İlki, oluşturulan her emri zaman noktasında geçerli enstrüman kurallarına göre doğruluyor ve geçersiz fiyat ya da miktarlarda açıkça hata veriyor. Diğeri, geriye dönük test ve kâğıt üzerinde alım satım adaptörlerinin son normalize edilmiş emirlerini karşılaştırıyor: yön, fiyat, miktar, time-in-force ve ücret amacı. Aralarında uyuşmazlık varsa çalışma karşılaştırılabilir sayılmıyor.
Ardından salı günkü değişikliği yeniden oynattık. Geriye dönük test, ızgara güncellemesinden sonra 42,318.03 fiyatında gerçekleşme olduğunu artık iddia etmiyordu. Geçersiz hedeflerde, karar emirden vazgeçmek olsa bile, kâğıt üzerinde alım satım ve simülasyon aynı kararı veriyordu.
Sinyal bozulmamıştı. İşlem yapabileceği varlığa ilişkin varsayımları güncelliğini yitirmişti. Bir strateji yeni bir tick boyutuna uyum sağlayabilir; ancak bunun için araştırma sisteminin borsa kurallarını simüle ettiği piyasanın bir parçası olarak ele alması gerekir.
← Tüm yazılar


