Bir Trading Stratejisinin Backtest’i Nasıl Yapılır — Adım Adım
Bir trading stratejisinin backtest’ini yapmak için giriş, çıkış ve pozisyon büyüklüğü kurallarını kesin olarak tanımlayın, temiz geçmiş veri temin edin, işlemleri her mumda yalnızca o ana kadar mevcut bilgiyle simüle edin, komisyon ve kaymayı dahil edin ve örneklem dışında doğrulayın. Verinin son %20–30’unu ayrılmış test kümesi olarak saklayın ve sonuçları al-ve-tut ile karşılaştırın.
Bir stratejinin backtest’ini doğru yapmak göründüğünden zordur. Bu, birkaç geçmiş veriyi bir betikten geçirmekten ibaret değildir — veri kalitesine, gerçekçi emir gerçekleşmesine ve istatistiksel doğrulamaya dikkat etmeyi gerektirir. Bu rehber, kuralları tanımlamaktan sonuçları yorumlamaya kadar tüm süreci adım adım anlatır.
Adım 1: Strateji Kurallarını Kesin Olarak Tanımlayın
Herhangi bir veriye dokunmadan önce strateji kurallarını yoruma yer bırakmayan ifadelerle yazın. “Hisse aşırı satılmış göründüğünde al” gibi belirsiz kuralların backtest’i yapılamaz. İhtiyacınız olanlar:
- Giriş koşulu: Tam olarak hangi gösterge değerlerinin, fiyat ilişkilerinin veya olayların alış ya da açığa satış sinyalini tetiklediği
- Çıkış koşulu: Pozisyonu neyin kapattığı — ters bir sinyal, sabit bir kâr hedefi, bir zarar durdur (stop-loss) veya bir süre sınırı
- Pozisyon büyüklüğü: İşlem başına ne kadar sermaye ayrılacağı (özsermayenin yüzdesi, sabit dolar tutarı, Kelly kriteri)
- Evren: Stratejinin hangi varlık(lar)a uygulandığı
- Gerçekleşme zamanlaması: Piyasa açılışı, kapanışı veya belirli bir fiyattan limit emir
Kuralları ne kadar kesin tanımlarsanız, uygulama sırasında yanlılığa yol açabilecek belirsizliğe o kadar az yer kalır.
Adım 2: Veriyi Temin Edin ve Temizleyin
Geçmiş veri kalitesi, güvenilir bir backtest’in temelidir. Yaygın sorunlar:
- Şirket işlemleri (corporate actions): Hisse bölünmeleri ve temettü ödemeleri ham fiyat serilerini bozar. Getirileri hesaplarken her zaman düzeltilmiş kapanış fiyatlarını kullanın. Ancak dikkatli olun — düzeltilmiş fiyatlar geriye dönük olarak yeniden hesaplanır ve doğru ele alınmazsa ince bir ileriye bakma yanlılığına (look-ahead bias) yol açabilir.
- Hayatta kalma yanlılığı (survivorship bias): Ücretsiz veri kaynakları genellikle yalnızca şu anda işlem gören hisseleri içerir. Borsadan çıkarılan, birleşen veya iflas eden şirketler dışarıda kalır ve bu da geçmişi yapay olarak iyi gösterir. Borsadan çıkarılma verisiyle birlikte geçmiş endeks bileşenlerini içeren veri kümeleri kullanarak bundan kaçının.
- Veri boşlukları ve aykırı değerler: Eksik mumları, sıfır hacimli günleri ve büyük olasılıkla veri hatası olan aşırı fiyat sıçramalarını kontrol edin. Tek bir bozuk veri noktası, sonuçlara hâkim olan sahte bir işlem üretebilir.
Adım 3: Stratejiyi İleriye Bakma Yanlılığı Olmadan Uygulayın
İleriye bakma yanlılığı — geçmişteki kararları vermek için gelecekteki bilgiyi kullanmak — backtest’teki en yaygın ve en zararlı hatadır. Altın kural: t mumunda stratejiniz yalnızca t mumunda veya öncesinde mevcut olan bilgiyi kullanabilir.
Pratik kontrol: t mumunda 20 günlük bir SMA hesaplıyorsanız, bu t-19 ile t arasındaki mumları kullanmalıdır — t’den sonraki hiçbir mumu değil. Bir sinyalden sonra t mumunun kapanışında giriyorsanız, t mumunun kapanış fiyatını kullanabilirsiniz, ancak yalnızca gerçekçi olarak tam o fiyattan işlem yapabiliyorsanız. Pratikte, t+1 mumunun açılışında girmek daha güvenlidir.
Adım 4: İşlem Maliyetlerini Gerçekçi Şekilde Modelleyin
Maliyetler öncesinde kârlı görünen stratejiler, maliyetlerden sonra çoğu zaman kârsız hâle gelir. Şunları dahil edin:
- Komisyon: “Komisyonsuz” platformların bile maliyetleri vardır — likit ABD hisseleri için başlangıç değeri olarak taraf başına %0,01–0,05 kullanın
- Alış-satış farkı (bid-ask spread): Satış fiyatından (ask) alır, alış fiyatından (bid) satarsınız; spread her gidiş-dönüşte kesin bir maliyettir
- Kayma (slippage): Sinyalin üretilmesi ile gerçekleşme arasında piyasa aleyhinize hareket eder; bunu varlığın likiditesine bağlı olarak işlem başına %0,05–0,20 olarak modelleyin
- Açığa satış pozisyonları için ödünç alma maliyetleri: Açığa satış, hisse ödünç almayı gerektirir ve bunun yıllıklandırılmış bir maliyeti vardır (ödünç alınması zor hisseler yıllık %10–50’ye mal olabilir)
Adım 5: Örneklem Dışında Doğrulayın
Parametreleri asla aynı veri üzerinde hem optimize edip hem de performansı değerlendirmeyin. Standart yaklaşım: geçmiş veriyi iki döneme ayırın. İlk %70–80’i geliştirme ve parametre optimizasyonu için kullanın. Son %20–30’u katı bir ayrılmış test kümesi (hold-out) olarak saklayın — stratejiyi kesinleştirene kadar ona dokunmayın. Örneklem dışı performans, gerçek dünya sonuçlarına ilişkin dürüst tahmininizdir.
Daha sağlam bir doğrulama için ileriye doğru analiz (walk-forward analysis) kullanın: optimizasyon penceresini zaman içinde ileri kaydırarak her dönem için örneklem dışı sonuçlar üretin. Bu, yalnızca şanslı bir parametre setinin bir kez işe yarayıp yaramadığını değil, optimizasyon sürecinin kendisinin tutarlı olup olmadığını test eder.
Adım 6: Sonuçları Doğru Yorumlayın
Backtest sonuçlarınızı elde ettikten sonra onları eleştirel bir gözle değerlendirin:
- Al-ve-tut ile karşılaştırın: Dayanak varlık %15 getiri sağladıysa, yıllık %10 getiri sağlayan bir strateji zayıftır
- Yıl yıl performansı kontrol edin: Güçlü bir genel Sharpe, yalnızca belirli bir dönemde işe yaramış bir stratejiyi gizleyebilir
- En kötü düşüş dönemini inceleyin: Psikolojik olarak o dönem boyunca pozisyonu tutabilir miydiniz?
- Parametre sağlamlığını test edin: Strateji benzer parametrelerle (±%10) çalışıyor mu, yoksa performans tam değerlere aşırı mı duyarlı?
Backtest Araçları
Backtest araç zinciri önemlidir. pandas, backtrader veya vectorbt ile Python en esnek seçenektir ve size tam kontrol sağlar — ancak programlama becerisi gerektirir. TradingView’in Pine Script’i, yerleşik bir strateji test aracıyla görsel bir arayüz sunar. QuantConnect, kapsamlı verilerle kurumsal düzeyde bir altyapı sağlar.
Kod yazmadan hızlı prototipleme için QuantPrompt, bir stratejiyi doğal dilde anlatmanıza ve anında eksiksiz bir backtest raporu almanıza olanak tanır. Bu, özellikle strateji geliştirmenin ilk aşamalarında, tam bir uygulamaya zaman ayırmadan önce birçok fikri hızla test etmek istediğinizde kullanışlıdır.
Sık sorulan sorular
Kaynaklar
- Harvey, C. R. & Liu, Y. (2015). Backtesting. The Journal of Portfolio Management.
- Bailey, D. H., Borwein, J. M., López de Prado, M. & Zhu, Q. J. (2017). The Probability of Backtest Overfitting. The Journal of Computational Finance.
- TradingView. Pine Script v6 User Manual: Strategies.
- Backtrader. Broker - Slippage.