Strateji geriye dönük testi (backtest) — nasıl doğru yapılır?
Biri bana geriye dönük testinin yüzde doksan beş başarı oranı verdiğini söylediğinde, bu hikâyenin iyi bitmeyeceğini anlarım. Geriye dönük test (backtesting), bir kehanet ya da ileride para kazanılacağının kanıtı değildir. Kendi fikrinizi yanlışlamak — yani kurallarınızın farklı piyasa koşullarında gerçekten işe yarayıp yaramadığını görmek — için bir araçtır. Testi dürüstçe nasıl yapacağınızı, en büyük tuzakların nerede gizlendiğini ve doğru yapılmış bir geriye dönük testin bile canlı hesapta kâr garantisi vermediğini ele alacağız.
Stratejiyi neden tarihsel veriler üzerinde test ederiz?
Gerçek parayla risk almadan önce, kurallarınızın geçmiş yıllarda para kazandırıp kazandırmadığını kontrol edersiniz. Beş yıllık karma koşullarda pozitif beklenti üretildiyse, stratejinin belirli bir kalıcı avantajı olduğu söylenebilir. Bu çıkarım kırılgandır — piyasalar değişir, merkez bankaları politikalarını günceller, likidite yer değiştirir — ama elimizdeki en iyi araç budur. Geriye dönük test, açıkça işlevsiz fikirleri elemeye ve demo hesaba, ardından küçük bir canlı pozisyona geçmeye değer olanları belirlemeye yarar. Bundan fazlası değil.
Kurallar belirsizse, kurguyu test ediyorsunuz demektir
İlk adım basit görünür ama çoğu yeni başlayanı tökezletir. Strateji, kuralları okuyan başka biri de tamamen aynı işlemleri girecek şekilde yazılmış olmalıdır. "Trend gördüğümde alıyorum" bir strateji değil, bir his aktarımıdır. Test edilebilir bir versiyon şöyle görünür: "Günlük kapanışta, 50 periyotluk EMA 200 periyotluğun üzerindeyken, 14 periyotluk RSI 70'in altındayken ve fiyat 20 periyotluk ortalamasına yukarıdan değdiğinde EUR/USD alış / uzun pozisyon gir; zarar durdur (stop loss) girişin 1,5 ATR(14) altında; hedef 2,5 ATR yukarıda; işlem başına özkaynak riski yüzde bir." Yalnızca böyle bir kural dürüstçe test edilebilir.
İlgili bir konu olan ticari avantaj keşfi, avantajınızın ne olduğunu bilmiyorsanız geriye dönük testin bunu acımasız biçimde hızlıca ortaya koyacağını hatırlatır. Test metodolojisi ve çalışan bir traderın rutini hakkında daha kapsamlı bir değerlendirme için ForexMechanics.com'daki trader atölyesine bakabilirsiniz.
Tarihsel veriler nereden bulunur ve kaç örnek yeterlidir?
Veriler, belirsiz kuralların ardından ikinci büyük hata kaynağıdır. Bir aracı kurumdan alınan tik geçmişi hiçbir zaman diğeriyle birebir örtüşmez — farklı işlem modelleri ve likidite kaynakları söz konusudur. Sıkı stop kullanan bir strateji için bu fark sonucu doğrudan belirleyebilir. Gün içi işlemler için CME vadeli işlem verilerini tercih edin — merkezi ve denetlenebilir. Günlük mumlar üzerinde swing için aracı kurum geçmişi genellikle yeterlidir. Araç seçimi de belirleyicidir: Forex Tester ile MT Strategy Tester karşılaştırması ve platform simülatörünün ne zaman yetersiz kaldığı konusu ayrıca incelenmeye değerdir.
İkinci mesele örneklem büyüklüğüdür. Literatürde onlarca yıldır geçerli olan kural şudur: en az yüz işlem — aksi hâlde sonuç kolaylıkla şansın eseri olabilir. Altı aylık pencerede otuz mükemmel işlem hiçbir şey ifade etmez. Yüz, istatistiksel anlamlılığın alt eşiğidir; profesyoneller üç yüz ve üzerini hedefler. Swing D1 stratejisi için beş yıl, gün içi işlem için iki yıl, scalping için ise bir yıllık gerçek tik verisi yeterlidir.
Beş yılın ayrı bir değeri vardır: birden fazla piyasa rejimini kapsar. Son on yılda uzun vadeli trendler (DXY 2014–2017), volatilite şoku (Mart 2020), parasal sıkılaştırma döngüsü (2022–2023) ve 2024'e uzanan konsolidasyon bir arada yaşandı. Yalnızca tek bir rejimde çalışan bir strateji aslında strateji değil, bir döneme uydurulmuş yanılsamadır.
Makas, komisyon ve kayma olmadan geriye dönük test yalan söyler
En yaygın "mucize" geriye dönük test, işlem maliyetlerini çıkartmayı unutandır. 200 pip hedefi olan H4 swing stratejisi için 0,8 piplik makas/spread neredeyse fark edilmez. Beş piplik hedefle günde 30 işlem yapan bir scalper için aynı makas avantajın büyük bölümünü yer. Gerçekçi bir test, aracı kurumun cari makasını, lot başına komisyonu ve emir yürütmeye duyarlı stratejiler için kaymayı (slippage) — tıkladığınız fiyat ile gerçekte gerçekleştirilen fiyat arasındaki farkı — mutlaka içermelidir.
Benim kullandığım eşik: işlem başına ortalama kâr, ortalama maliyetin (makas, komisyon ve varsayılan kayma toplamı) iki katından azsa, stratejinin güvenlik marjı yoktur. Sert bir filtre, ama aylarca süren öz-aldatmadan kurtarır. Ayrı bir yanılsama kaynağı ise tarihsel değerlerini yeniden çizen (repaint) göstergelerdir — geriye dönük testte mükemmel görünürler, teknik analizde canlı piyasada ise tamamen farklı davranırlar.
Tarihe uydurulmuş eğri strateji değil, müzedir
Kendi kendini yetiştirmiş traderların düştüğü tuzak aşırı uydurmadır (curve-fitting). Şöyle görünür: otuz parametre değerini test eder, en iyi sonucu verenini seçer ve sistemin yıllık yüzde kırk kazandırdığını açıklarsınız. Oysa yaptığınız şey, sinyali değil gürültüyü optimize etmektir. Optimizasyona dahil edilen parametre sayısı arttıkça, sonucun şansa bağlı olma ihtimali de artar. Sistem değerlendirmesi üzerine yazılmış klasik kitabın yazarı Robert Pardo bunu açıkça ifade eder:
"Örnek dışı test, strateji kalitesinin tek dürüst ölçütüdür. Bir sistem, optimizasyon sırasında görmediği verilerde avantajını koruyamazsa, o sistem piyasaya değil tarihe uydurulmuş demektir." — Robert Pardo, The Evaluation and Optimization of Trading Strategies, Wiley, 2008.
Buradan in-sample (eğitim verisi) ve out-of-sample (doğrulama verisi) ayrımı doğar. Yaygın bölünme yüzde yetmiş eğitim, yüzde otuz doğrulamadır. Doğrulama penceresi sonucu belirgin biçimde daha kötüyse, aşırı uydurma vardır ve strateji canlı hesap için hazır değildir. Daha titiz bir yaklaşım olan walk-forward analizi, bir optimizasyon penceresini bir doğrulama penceresiyle dönüşümlü olarak uygular ve tüm geçmiş üzerinde ilerler. Geriye dönük teste duyulan yanlış güvene karşı elimizdeki en iyi koruma budur. Bu konuyu uygulama bölümünde ayrıntılı olarak ele alıyoruz.
Varsayımsal bir örnek — sayıları dürüstçe okumak
EUR/USD D1 üzerinde 2019–2024 yılları arasında test edilmiş bir swing stratejisi düşünün. Varsayımsal sonuç: 147 işlem, yüzde 54 başarı oranı, ortalama 2,3'e 1 risk/getiri oranı, profit factor 1,78, maksimum sermaye düşüşü (drawdown) yüzde 14,5, beş yılda net getiri artı yüzde 87 (bileşik yaklaşık yüzde 13,3). Gösterişsiz ama gerçekçi — bu rakamlar şablon niteliğindedir, gerçek bir hesap dökümü değildir. Yararlı bir sonraki adım, aynı stratejiye Monte Carlo simülasyonu uygulamak ve işlem sırasının rastgele değiştirilmesi durumunda portföy eğrisinin nasıl gelişebileceğini görmektir.
Sonraki adım: nasıl başlanır?
Geriye dönük test hakkındaki bilgi, ancak kendiniz bir test yapıp sonuçları işlem günlüğünüzle karşılaştırdığınızda işe yaramaya başlar. Aşağıdaki beş adım birkaç öğleden sonra alır ve gelişmekte olan bir traderın en yaygın hatalarından korur.
- Stratejiyi tek bir metin dosyasına mekanik biçimde yazın. Her giriş, her çıkış, her zarar durdur (stop loss) ve her filtre, aynı kuralları okuyan başka birinin de özdeş işlemler açacağı şekilde belgelenmelidir. "Duruma göre değişir" yazmak zorunda kaldığınız her noktada geri dönüp kuralı netleştirin — geriye dönük test satır aralarını okumaz.
- Swing için beş yıl, gün içi işlem için iki yıl veri toplayın ve baştan bölün. İlk yüzde yetmişi kural ayarlaması için ayırın; son yüzde otuzunu strateji kesinleşene kadar kilitleyin. Ancak o zaman saklanan bölüm üzerinde testi çalıştırın — bu sizin gerçek sınavınızdır.
- Her simülasyona gerçekçi işlem maliyetlerini ekleyin. Aracı kurumun cari makasını, lot başına komisyonu ve varsayılan kaymayı ekleyin; sessiz pencereler ile büyük makroekonomik veriler etrafındaki pencereler için ayrı değerler kullanın. Maliyetler dahil edildiğinde strateji kârının yüzde yirmisinden fazlasını yitiriyorsa güvenlik marjı yoktur.
- Testte yüz işlem alt sınırını kesin olarak belirleyin. Pencere daha az işlem veriyorsa, geçmişi uzatın, aynı aileden enstrümanlar ekleyin ya da sonucun kanıt değil hipotez olduğunu kabul edin. İşlem sayısını, ortalama sermaye düşüşünü ve başarı oranını günlüğe kaydedin — bu üç rakam tek başına yüzde getirisinden daha fazla şey anlatır.
- Başarılı bir geriye dönük testin ardından canlıya geçmeden önce en az üç ay demo çalıştırın. Demo istatistiklerini geriye dönük testle karşılaştırın — demo belirgin biçimde kötüyse, aşırı uydurma, eksik maliyetler veya kodlama hatası şüphesi uyanmalıdır. Kurallara dönün, canlı hesapta işlerin düzeleceğine duyulan umuda değil. İyi bir geriye dönük test asla iyi bir canlı sonuç garantisi vermez — yalnızca denemeye hak kazandırır.
Kaynaklar ve bibliyografya
-
MetaQuotes Strategy Testing in MetaTrader 5 · oficjalna dokumentacja testera strategii (testowanie i optymalizacja na danych historycznych) www.metatrader5.com ↗
-
MQL5 Reference Testing Trading Strategies · dokumentacja deweloperska MQL5: tryby generowania tików, symulacja spreadu, testy wielowalutowe www.mql5.com ↗
-
Bank for International Settlements OTC foreign exchange turnover in April 2022 · Triennial Central Bank Survey — dane o strukturze rynku FX (kontekst dla backtestu instrumentów detalicznych) www.bis.org ↗
Sık sorulan sorular
Strateji aşırı uydurmasi (over-fitting) nedir?
Aşırı uydurma (curve-fitting olarak da bilinir), bir stratejinin parametrelerinin geçmiş fiyatlara o kadar sıkı ayarlanmasıdır ki yeni verilerle başa çıkamaz hale gelir. Klasik belirti: geriye dönük testte yüzde doksan beş başarı oranı, canlı hesapta ise yüzde otuz. Neden basit: Forex'te uzun vadede yüzde doksan beş başarı oranı sürdürülemez — gerçek stratejiler yüzde elli ile altmış arasında kalır. Geriye dönük testiniz yüzde yetmişin üzerinde kazançlı işlem gösteriyorsa, bunu uyarı işareti olarak değerlendirin ve aksi kanıtlanana dek aşırı uydurma şüphesiyle yaklaşın.
Geriye dönük test için hangi yazılım kullanılmalıdır?
Yeni başlayanlar için en güçlü seçenek MetaTrader 5'te yerleşik Strategy Tester'dır: ücretsizdir, çok para birimli testleri, gerçek tik verilerini ve genetik optimizasyonu destekler. MetaTrader 4 hâlâ kullanılmakla birlikte tek bir enstrüman ve tek bir zaman dilimiyle sınırlıdır. Forex Tester 5 yaklaşık üç yüz dolar tutarında olup mum mum elle test etme imkânı sunar — kuralları otomatize etmeden önce görsel sezgi geliştirmek isteyen traderlar için iyi bir araçtır. TradingView'daki Pine Script, tek enstrümanlı basit testler için yeterlidir. Uygulamada ciddi testlerin büyük çoğunluğunu MT5'te ya da özel backtesting kütüphaneleri içeren bir Python ortamında yapmak daha uygundur.
Dürüst bir test için ne kadar tarihsel veriye ihtiyaç vardır?
Swing ve pozisyon stratejileri için kabul gören kural en az beş yıl veridir; gün içi işlem için iki yıl, scalping için ise bir yıllık gerçek tik geçmişidir. Bu pencereler keyfi takvim seçimi değil — trendin, konsolidasyonun ve yüksek volatilitenin yaşandığı farklı piyasa rejimlerini kapsama zorunluluğundan kaynaklanır. Zaman diliminden bağımsız olarak bir de istatistiksel koşul vardır: testte en az yüz işlem — sonucun şansın eseri olmaması için. Profesyoneller üç yüz ve üzerini hedefler. Geçmişiniz daha az işlem üretiyorsa, pencereyi uzatın ya da aynı aileden enstrümanlar ekleyin — aksi takdirde bir strateji değil, bir hipotez test ediyorsunuzdur.
İyi bir geriye dönük testten gerçekçi sonuçlar nasıl görünür?
Gerçekçi rakamlar şunlardır: yüzde elli ile altmış arasında başarı oranı, en az 2:1 ortalama risk/getiri oranı, 1,5 ile 3,0 arasında profit factor ve yüzde yirminin altında maksimum sermaye düşüşü (drawdown) — en az yüz işlemle ve sonuç out-of-sample penceresiyle doğrulanmış olarak. 1'in üzerindeki Sharpe oranı, volatiliteye göre makul bir getiriyi gösterir. Uyarı işaretleri: yüzde seksenin üzerinde başarı oranı, beşin üzerinde profit factor ve yüzde beşin altında drawdown — bu kombinasyon neredeyse her zaman gerçek avantajı değil, aşırı uydurmayı işaret eder.