Risk okuryazarlığı · 12 dakika

Backtest nedir?
Sonuçtan önce sorulacak sorular.

Geçmiş veride güçlü görünen bir eğri, gelecekte güçlü bir sonuç anlamına gelmez. İyi bir backtest; getiriyi parlatmaktan önce veriyi, maliyeti, düşüşü ve yanlılığı görünür kılar.

Backtest neyi ölçer?

Backtest, önceden tanımlanmış bir kural veya pozisyon dizisinin geçmiş fiyat verisi üzerinde nasıl davranmış olacağını matematiksel olarak hesaplar. Doğru kullanıldığında maliyetlerin, düşüşlerin ve farklı dönemlerin sonucu nasıl etkilediğini gösterir. Yanlış kullanıldığında ise geçmişe aşırı uyarlanmış bir fikri “kanıt” gibi gösterebilir.

En önemli ayrım şudur: backtest bir tarihsel ölçümdür; gelecek tahmini, uygunluk değerlendirmesi veya yatırım kararı değildir.

1. Komisyon, spread ve slippage neden ayrı yazılır?

Komisyon işlem hizmeti için alınan bedeldir. Spread, alış ve satış fiyatı arasındaki farkı temsil eder. Slippage ise varsayılan işlem fiyatı ile gerçekte oluşabilecek fiyat arasındaki kaymadır. Sıfır maliyetli bir test, özellikle sık pozisyon değiştiren serilerde sonucu belirgin biçimde abartabilir.

Bu yüzden maliyet yalnız tek bir sayı olarak saklanmamalı; bileşenleri görünür olmalı ve maliyet %25, %50 veya %100 arttığında sonuç yeniden hesaplanmalıdır.

2. Maksimum drawdown neden toplam getiriden önce okunmalı?

Maksimum düşüş, tarihsel değer eğrisinin bir zirveden sonraki en düşük noktaya kadar ne kadar gerilediğini gösterir. Toplam değişim pozitif olsa bile aradaki büyük bir düşüş, gerçek kullanımda stratejinin sürdürülmesini zorlaştırabilir.

Düşüşün büyüklüğü kadar süresi ve toparlanıp toparlanmadığı da önemlidir. İncelenen dönemde toparlanmayan bir düşüş, yalnız yüzdeyle anlatıldığında eksik kalır.

3. Look-ahead bias nedir?

Look-ahead bias, o anda henüz bilinmeyen bir bilginin geçmiş hesapta kullanılmasıdır. Örneğin aynı günün kapanış fiyatını gördükten sonra yine aynı kapanıştan pozisyon alınmış gibi hesaplamak, uygulanamaz bir avantaj yaratabilir.

Basit bir önlem, `position[t−1]` değerini bir sonraki dönemin fiyat değişimine uygulamaktır. Bu tek başına tüm yanlılıkları çözmez; fakat aynı satıra bakarak geriye dönük karar verme hatasını azaltır.

4. Survivorship bias nedir?

Bugün hâlâ işlem gören veya başarılı kalan varlıklara bakıp geçmişte elenenleri veri setinden çıkarmak sonucu olduğundan iyi gösterebilir. Kullanılan fiyat serisinin hangi evreni temsil ettiği, delist olmuş araçları veya kurumsal olayları nasıl ele aldığı bilinmelidir.

Tek bir CSV bu soruyu otomatik cevaplayamaz. Veri kaynağı ve evren seçimi rapor varsayımlarında ayrıca yazılmalıdır.

5. Örnek içi ve örnek dışı dönem neden ayrılır?

Bir kuralın geliştirildiği dönem “örnek içi”, daha sonra dokunulmadan kontrol edildiği dönem “örnek dışı” olarak ele alınabilir. Örnek dışı sonuç da gelecek garantisi değildir; yalnız kuralın tek döneme ne kadar bağımlı olabileceğine dair ek bir görünüm sağlar.

Sürekli parametre deneyip en iyi örnek dışı sonucu seçmek, bu bölümü de fiilen örnek içine dönüştürür. Bu nedenle EKBE laboratuvarı parametre optimizasyonu yapmaz.

6. Yıllıklandırılmış sonuç neyi gizleyebilir?

Kısa bir dönemin yıllıklandırılması büyük ve yanıltıcı sayılar üretebilir. Veri frekansı yanlış seçilirse oynaklık ve yıllık değişim de yanlış ölçeklenir. Sonucun yanında başlangıç-bitiş tarihi, satır sayısı ve yıllık dönem varsayımı birlikte gösterilmelidir.

7. Veri kalitesi nasıl kontrol edilir?

Tarihler benzersiz ve artan olmalı; gelecek tarih bulunmamalı; fiyatlar sıfırdan büyük olmalı; pozisyon alanı tanımlı sınırın dışına çıkmamalıdır. Büyük tarih boşlukları, farklı frekansların karışması veya düzeltilmemiş kurumsal olaylar ayrıca incelenmelidir.

Bir dosyanın biçimsel doğrulamadan geçmesi, fiyat verisinin güvenilir olduğunu kanıtlamaz. Kaynağın adı, düzeltme yöntemi ve zaman dilimi kullanıcı tarafından doğrulanmalıdır.

8. Tek bir “strateji skoru” neden sorunludur?

Tek puan; yüksek getiri ile yüksek düşüşü, seyrek veri ile yoğun veriyi veya örnek içi başarı ile örnek dışı zayıflığı aynı etikette birleştirebilir. Tarafsız bir araç metrikleri ayrı gösterir ve “kullan” ya da “bırak” sonucu vermez.

9. Geçmiş sonuç neyi kapsamaz?

Gerçek piyasadaki likidite, emir sırası, piyasa etkisi, vergi, bağlantı kesintisi, kurum riski ve davranışsal kararlar tam olarak modellenmeyebilir. Maliyetleri eklemek gerekli olsa da gerçek işlemi eksiksiz taklit etmez.

10. Bir trading bot almadan önce sorulacak tarafsız sorular

  1. Canlı emir veya hesap bağlantısı var mı; hangi yetkiyle?
  2. Getiri veya başarı garantisi veriliyor mu?
  3. Komisyon, spread ve slippage hesaba katılmış mı?
  4. Aynı satır bilgisinin geriye dönük kullanımı engellenmiş mi?
  5. Veri evreni ve survivorship bias açıklanmış mı?
  6. Örnek içi ve dışı dönem açık mı?
  7. Maksimum düşüş ve toparlanma gösteriliyor mu?
  8. Parametreler kaç kez denenmiş?
  9. API anahtarında para çekme yetkisi isteniyor mu? İstenmemelidir.
  10. Hizmetin gerçek işlevi sinyal, tavsiye veya portföy yönetimine dönüşüyor mu?

Yöntemi deneyin

Sentetik veriyle başlayın.

Dosya veya hesap bağlantısı vermeden, maliyet ve düşüş hesabının nasıl çalıştığını görün.

Ücretsiz laboratuvarı aç