Bir backtest, işlem yapmaya elverişli bir fırsat hiç oluşmamış olsa bile limit emrinizi gerçekleştirilmiş sayabilir. Bir barın en düşük fiyatı alış limitinizi geçtiyse birçok motor gerçekleşme varsayar. Oysa en düşük fiyat yalnızca bildirilen işlemlerden en az birinin o fiyattan veya daha düşükten gerçekleştiğini söyler. Ne kadar işlem yapıldığını, önünüzde kuyrukta ne kadar emir bulunduğunu ya da emrinizin zamanında aktif olup olmadığını göstermez.
Bu ayrım, özellikle stratejinin getirisi sık sık pasif emirlerin gerçekleşmesine bağlıysa önem kazanır. Her fiyat temasını tam gerçekleşme sayan bir model, sabırlı bir giriş stratejisini hayalî bir alfa kaynağına dönüştürebilir.
Bir barın limit fiyatıma dokunması emrimin gerçekleştiği anlamına mı gelir?
Hayır. Bu, barın kaydedilen fiyat aralığına limitinizin de girdiği anlamına gelir. Emrinizin gerçekleşip gerçekleşemeyeceği piyasanın emir defterine, işlem akışına, kuyruktaki sıranıza ve emrin ne zaman ulaştığına bağlıdır.
100,00 $ seviyesinde bir alış limiti düşünün. Bar 100,20 $'dan açılıyor, 99,98 $'a kadar geriliyor ve 100,10 $'dan kapanıyor. Bir işlem fiyatı sizin seviyenizin 2 sent altına inmiş olabilir; ancak 100,00 $ seviyesinde önünüzde büyük bir kuyruk varsa ve orada yalnızca az miktarda işlem yapıldıysa emriniz hiç karşılanmamış olabilir. Yalnızca OHLCV verisiyle bu kuyruğu göremezsiniz.
Bir de şu var: Bar, zaman içindeki olayları bir araya getirir. Sinyaliniz barın kapanışından hesaplanıyorsa, en düşük fiyatın görüldüğü sırada emrinizin barın başından beri beklediğini varsayamazsınız. Bu sorunun yanıtını verecek olay sırasını bar sıkıştırıp ortadan kaldırır.
OHLCV verisi limit emrinin gerçekleşmesi hakkında gerçekte ne söyler?
OHLCV bazı gerçekleşme senaryolarını eleyebilir, bazılarını ise olası kılabilir. Kuyruk önceliğini kanıtlayamaz veya emriniz için yeterli miktarın bulunacağını garanti edemez.
| Gözlem | Ne gösterir | Neyi kanıtlayamaz |
|---|---|---|
| Barın en düşük fiyatı alış limitinin üzerinde kaldı | O bar boyunca bildirilen hiçbir işlem fiyata ulaşmadı | Emrin gerçekleşeceğini |
| Barın en düşük fiyatı alış limitine dokundu | Fiyat limit seviyesinde bildirildi | Emriniz ulaştıktan sonra herhangi bir miktarda işlem yapıldığını |
| Barın en düşük fiyatı alış limitinin altına indi | Limit fiyatında veya altında işlemler gerçekleşti | Kuyruktaki sıranıza yetecek miktarda işlem yapıldığını |
| Barın toplam hacmi emir büyüklüğünüzü aştı | Barın bir yerinde en az bu miktarda işlem yapıldı | Emriniz ulaştıktan sonra, sizin fiyatınızda bu miktarda işlem yapıldığını |
Bu nedenle bar tabanlı bir motorun gerçekleşme varsayımına ihtiyacı vardır. Bu varsayımı mumdan çıkarılmış bir gerçek olarak değil, bilinen bir kör noktası olan model olarak ele alın.
Backtest’te limit emri gerçekleşmelerini nasıl modellemeliyim?
Önce emir zamanlamasını belirleyin. Sinyalin ne zaman kullanılabilir olduğunu, emrin platforma ne zaman ulaştığını ve sonraki hangi piyasa olaylarının emirle eşleşebileceğini kararlaştırın. Bar kapanışında bilinen bir sinyal için temkinli bir bar tabanlı kural, emri sonraki bardan itibaren işleme uygun hâle getirmektir.
Ardından fiyat uygunluğunu gerçekleşen miktardan ayırın. Limit emrinin işlem görmeye uygun hâle gelmesi, emrin tamamının gerçekleşeceği anlamına gelmez. İşlem kayıtlarınız var ama emir defteri geçmişiniz yoksa, limit fiyatında veya daha iyi bir fiyatta işlem gören hacmin emir büyüklüğünüzün belirli bir katını aşmasını şart koşabilirsiniz. Bu katsayı evrensel bir sabit değil, kuyruk için kabaca bir paydır. Birkaç farklı değer deneyin ve sonucun nasıl değiştiğini raporlayın.
Örneğin stratejinin 2 BTC alış limiti verdiğini ve emir işlem görmeye uygun olduktan sonra seçilen fiyatta 3 BTC işlem yapıldığını varsayalım. 5 BTC uygun hacim gerektiren bir model emri gerçekleşmemiş sayarken, 1,0 hacim katsayısı kullanan bir model emri gerçekleştirir. Bu sonuçların hiçbiri kuyruğu yeniden oluşturmaz. Karşılaştırma, stratejinin gözlemleyemediğiniz bir varsayıma ne kadar bağlı olduğunu gösterir.
Gerçekleşmeyen emirleri simülasyonda tutun. Stratejinin iptal edeceği zamanda iptal edin ve kaçırılan işlemin kaçırılmış olarak kalmasına izin verin. Limitine dokunulduğunda stratejiye gerçekleşme verip süresi dolana kadar hiç karşılanmayan emirleri yok saymak, hem emir gerçekleştirme sonuçlarını hem de fırsat sayısını çarpıtır.
Emir defteri verisine ne zaman ihtiyacım olur?
Kuyruktaki sıranın veya kısmi gerçekleşmelerin stratejinin merkezinde olduğu durumlarda emir defteri güncellemeleri ve işlem kayıtları kullanın: piyasa yapıcılık, kısa ömürlü pasif kotasyonlar veya kalabalık bir fiyat seviyesinde kuyruğun ön tarafına yakın olmayı gerektiren girişler gibi. Buna rağmen geçmişe dönük herkese açık veriler kuyruktaki tam konumunuzu göstermeyebilir. Emrin varışını, önünüzdeki iptalleri, eşleştirme kurallarını ve kendi piyasa etkinizi modellemeniz gerekir.
Daha yavaş stratejilerde ayrıntılı emir defterleri, temel belirsizliği gidermeden karmaşıklığı artırabilir. Yine de bar tabanlı yararlı bir çalışma, fiyata dokununca gerçekleşme varsayan üst sınırı, hacim koşulu daha sıkı senaryolarla karşılaştırabilir. Makul gerçekleşmeler talep ettiğiniz anda görünürdeki avantaj ortadan kalkıyorsa bu da değerli bir araştırma bulgusudur.
Sonucumun iyimser gerçekleşmelere bağlı olup olmadığını nasıl anlarım?
Aynı stratejiyi açıkça belirlenmiş birkaç gerçekleşme kuralıyla çalıştırın ve yalnızca toplam getiriyi değil, başka ölçümleri de karşılaştırın. Gerçekleşen emir sayısını, kısmi gerçekleşme oranını, emirlerin bekleme süresini, iptal edilen miktarı, gerçekleşmeme sonrası kaçırılan hareketleri ve işlem hacmi devir hızını izleyin. Bir strateji, çok daha az sayıda ve daha elverişli işleme dayanmasına rağmen ana getiri rakamını koruyabilir.
Sıradaki yararlı kontrol kâğıt üzerinde alım satımdır: gerçek emir mantığını uygulayın ve alındı onaylarını, gerçekleşmeleri ve iptalleri kaydedin. Kâğıt üzerindeki gerçekleşmeler de platformun veya simülatörün kendi kurallarına bağlıdır; ancak mumların gösteremediği zamanlamayı ve emir işleme biçimini sınar.
Limit fiyatına dokunulması, fiyat hakkında kanıttır. Gerçekleşme ise emrin nasıl işlendiğine dair bir iddiadır. Backtest’iniz bu iki iddia arasındaki farkı görünür kılmalı.
← Tüm yazılar


