Kısa cevap: Aşırı uyum (overfitting), bir stratejinin kurallarının ve parametrelerinin piyasanın genel davranışına değil, test edilen dönemin rastlantısal hareketlerine uydurulmasıdır; sonuç, geçmişte parlak görünen ama yeni veride zayıf kalan bir backtesttir. Riski büyüten başlıca etkenler çok sayıda parametre, çok sayıda deneme ve veri sızıntısıdır. Örneklem dışı test, walk-forward analizi, deneme sayısını hesaba katan ölçütler (deflated Sharpe gibi) ve paper trading bu riski ölçmeye yardım eder.
Geçmiş veriye yeterince uzun bakıldığında her zaman bir desen bulunur. Asıl soru, desenin tekrarlanacak bir piyasa davranışından mı yoksa yalnızca o veri setine özgü gürültüden mi kaynaklandığıdır. Bailey ve López de Prado'ya göre yeterince deneme yapıldığında yanıltıcı biçimde kârlı bir strateji bulmak kaçınılmazdır.
Backtestin kurulumu ve sık yapılan yedi hata backtest nedir yazısında anlatılıyor. Bu yazı aşırı uyumu derinleştirir: serbestlik derecesi, örneklem dışı verinin tüketilmesi, walk-forward tasarımı, çoklu test matematiği, deflated Sharpe ve PBO, veri sızıntısı, parametre kararlılığı ve kısa bir Python deneyi.
Aşırı uyum nasıl oluşur? Parametreler ve serbestlik
Bir stratejide geçmiş veriye bakılarak verilen her karar bir serbestlik derecesidir. Yalnızca sayısal parametreler değil; gösterge seçimi, zaman dilimi, varlık listesi, test dönemi, zarar durdur türü ve "şu dönemi hariç tut" gibi istisnalar da bu sayıya girer. Serbestlik arttıkça kural, sinyal yerine gürültüyü açıklamaya başlar.
Varsayımsal örnek: İki hareketli ortalamanın uzunlukları 5'ten 200'e kadar 5'er adımla deneniyor (40 değer); kısa ortalamanın uzundan küçük olduğu 780 çift vardır. Buna 5 farklı zarar durdur mesafesi ve açık/kapalı bir trend filtresi eklenince 780 × 5 × 2 = 7.800 varyant oluşur. Bu varyantların en iyisi, hiçbirinin gerçek bir avantajı olmasa bile etkileyici bir geçmiş sonuç gösterebilir.
Bailey ve López de Prado bir yazı-tura örneği verir: 10 atışta önce beş tura, sonra beş yazı gelirse "ilk beş atışta tura, son beşte yazı" kuralı geçmişe kusursuz uyar ama sonraki atışlar hakkında hiçbir şey söylemez. Yazarlara göre finansal serilerde hafıza etkileri bulunduğunda aşırı uyumlu bir kural yeni veride yalnızca başarısız olmakla kalmayıp sistematik olarak zarar ettirebilir.
Örneklem içi ve örneklem dışı veri nasıl ayrılır?
Örneklem içi (in-sample) veri kuralların geliştirildiği, örneklem dışı (out-of-sample) veri sonucun sınandığı bölümdür. Sık atlanan nokta, örneklem dışı verinin tükenebilir olmasıdır: sonucuna bakılıp kural yeniden düzenlenen her test, o bölümü de geliştirme verisine çevirir. Bailey, Borwein, López de Prado ve Zhu'ya göre ayırma yöntemi yapılan deneme sayısını hesaba katmaz; %5 yanlış pozitif oranıyla çalışan bir ölçütte yalnızca 20 deneme sonunda bir yanlış pozitif beklenir.
Bu yüzden veri üçe bölünebilir: kuralların geliştirildiği bölüm, ayar seçiminin doğrulandığı bölüm ve strateji tamamlanana kadar hiç açılmayan son bölüm. Denenen her varyant sonucuyla birlikte bir deneme günlüğüne yazılır; aşağıdaki düzeltilmiş ölçütler bu sayı olmadan hesaplanamaz.
Zaman serilerinde rastgele karıştırmalı çapraz doğrulama geleceği öğrenip geçmişi test etmek anlamına gelir. Ekim 2026 itibarıyla scikit-learn belgelerine göre TimeSeriesSplit sınıfı her bölmede eğitim setini öncekileri kapsayacak şekilde büyütür ve test setini hep sonraya koyar; gap parametresi eğitim setinin sonundan belirli sayıda gözlemi dışarıda bırakır. Etiketin gelecekteki birkaç günü kapsadığı durumlarda, örneğin 5 günlük ileri getiri tahmininde, bu boşluk iki set arasındaki örtüşmeyi önler.
Walk-forward analizi nasıl yapılır?
Walk-forward analizinde parametreler bir eğitim penceresinde seçilir, hemen sonraki dönemde değiştirilmeden uygulanır ve pencere ileri kaydırılır. Pencere sabit uzunlukta kayabilir ya da başlangıcı sabit kalıp genişleyebilir. Raporlanan sonuç yalnızca test dönemlerinin birleşimidir.
| Pencere | Eğitim dönemi | Test dönemi |
|---|---|---|
| 1 | Ocak 2018 – Aralık 2019 | Ocak – Haziran 2020 |
| 2 | Temmuz 2018 – Haziran 2020 | Temmuz – Aralık 2020 |
| … | … | … |
| 12 | Temmuz 2023 – Haziran 2025 | Temmuz – Aralık 2025 |
96 aylık veride 24 aylık eğitim ve 6 aylık adımla (96 − 24) ÷ 6 = 12 test dönemi elde edilir. İki gösterge özellikle anlamlıdır: test dönemlerinin ortalama performansının eğitim dönemlerine oranı ve seçilen parametrenin pencereden pencereye ne kadar değiştiği. Varsayımsal olarak eğitimde ortalama Sharpe 1,4, testte 0,5 ise oran yaklaşık 0,36'dır; optimum parametrenin her pencerede başka bir değere sıçraması da kararsızlığa işaret eder. Pencere uzunluklarını en iyi sonucu verene göre seçmek ise walk-forward analizinin kendisini aşırı uyuma açar.
Çoklu test problemi ve deflated Sharpe oranı
Tek bir test %5 anlamlılık düzeyinde %5 yanlış pozitif riski taşır. Gerçek avantajı olmayan N bağımsız varyant denendiğinde en az birinin "anlamlı" çıkma olasılığı 1 − 0,95N olur:
| Deneme sayısı | 1 | 10 | 20 | 50 | 100 |
|---|---|---|---|---|---|
| Olasılık | %5,0 | %40,1 | %64,2 | %92,3 | %99,4 |
En basit düzeltme Bonferroni yöntemidir: eşik deneme sayısına bölünür (20 denemede 0,05 ÷ 20 = 0,0025). Harvey, Liu ve Zhu, getirileri açıklamak için denenmiş 316 faktörü inceledikleri 2016 tarihli çalışmada yeni bir faktör için t istatistiğinin 2 yerine 3'ü aşması gerektiğini savunur. Sharpe oranının t istatistiğine nasıl bağlandığı Sharpe oranı yazısında anlatılıyor; yaklaşık olarak t ≈ yıllık Sharpe × √yıl sayısı olduğundan 5 yıllık bir testte t = 3 eşiği yıllık 1,34 Sharpe'a karşılık gelir.
Bailey ve López de Prado'nun deflated Sharpe oranı (DSR), gerçek Sharpe oranının bir eşikten büyük olma olasılığını hesaplar; eşiği deneme sayısı ve denenen varyantların Sharpe oranlarının varyansıyla yükseltir, getirilerin uzunluğunu, çarpıklığını ve basıklığını da hesaba katar.
Makaledeki örnek: 5 yıllık günlük veride yıllık Sharpe oranı 2,5 olan bir varyant, 100 bağımsız deneme sonunda seçilmiştir; denenen Sharpe oranlarının varyansı 0,5, getirilerin çarpıklığı −3, basıklığı 10'dur. Deneme sayısına göre ret eşiği yıllık yaklaşık 1,79'a yükselir ve DSR yaklaşık 0,90 çıkar; %95 güven düzeyi aşılmaz. Aynı sonuç 46 denemeyle bulunsaydı DSR 0,9505 olurdu. Getiriler normal dağılsaydı DSR ancak 88 denemede 0,95'e inerdi.
Aynı yazarların Borwein ve Zhu ile geliştirdiği backtest aşırı uyum olasılığı (PBO), performans matrisini S eşit parçaya böler ve parçaların yarısının eğitim, yarısının test olduğu bütün kombinasyonları dener (S = 4 ise 6, S = 10 ise 252 kombinasyon). PBO, eğitimde en iyi olan varyantın testte varyantların medyanının altında kalma sıklığıdır. Makaledeki bir örnekte eğitimde seçilen varyantların Sharpe oranlarının tamamı pozitifken testte yaklaşık %78'i negatif çıkmış, PBO %74 hesaplanmıştır.
Veri sızıntısı ve gizli yanlılıklar
Veri sızıntısı, karar anında bilinmeyen bir bilginin modele girmesidir. İleriye bakma hatası ve hayatta kalma yanılgısının temel biçimleri backtest yazısında anlatılıyor; daha az fark edilen biçimler şunlardır:
- Tüm veriyle ölçekleme: Z-skoru, normalizasyon veya hedge oranı test dönemini de içeren veriden hesaplanırsa her güne geleceğin ortalaması sızar. Örneği ortalamaya dönüş stratejileri yazısında yer alıyor.
- Örtüşen etiketler: 5 günlük ileri getiri etiketi kullanan bir modelde eğitim setinin son gözlemleri test döneminin fiyatlarını içerir.
- Açıklama tarihi: Bilanço verisi dönem sonu tarihine değil KAP'ta açıklandığı güne yerleştirilmelidir.
- Bugünkü evren: Varlık listesi bugünkü endeks bileşenlerinden seçilirse geçmişte listeden çıkanlar testte yer almaz.
- Tekrarlanan düzeltme: Örneklem dışı sonuç görüldükten sonra yapılan her küçük düzeltme, o veriyi örneklem içine taşır.
Düzenleyiciler de varsayımsal sonuçların bu zaafını tanır. Ekim 2026 itibarıyla ABD'de emtia havuzu işletmecileri ve emtia alım satım danışmanlarının tanıtımlarını düzenleyen 17 CFR 4.41'e göre simüle edilmiş veya varsayımsal bir emtia işlem hesabının performansı ancak sınırlamalarını anlatan zorunlu bir uyarıyla sunulabilir; zorunlu metne göre bu tür programlar geçmişin bilgisi kullanılarak tasarlanır ve gerçek işlemi temsil etmez.
Parametre kararlılığı ve ısı haritası nasıl okunur?
Sağlam bir stratejide sonuç, en iyi parametrenin komşularında da benzer kalır; ısı haritasında tek bir parlak hücre yerine geniş bir plato görülür.
| Kısa / uzun | 50 | 100 | 150 |
|---|---|---|---|
| 10 | 0,21 | 0,35 | 0,18 |
| 20 | 0,30 | 1,45 | 0,27 |
| 30 | 0,15 | 0,33 | 0,22 |
Tablodaki 20/100 hücresi, komşuları 0,15–0,35 aralığındayken tek başına 1,45 gösterir; bu, kalıcı bir etkiden çok rastlantıya işaret eder. Kararlılık başka eksenlerde de sınanır: alt dönemler, maliyetin iki katına çıkarılması, benzer varlıklar ve farklı zaman dilimleri. Bailey ve López de Prado'ya göre hangi deneylerin yapılacağını hesaplama gücü değil yatırım teorisi belirlemelidir; ekonomik bir gerekçesi olan az parametreli kural, gerekçesiz çok parametreli kurala göre daha az aşırı uyum riski taşır.
Python ile aşırı uyum deneyi
Aşağıdaki kod, hiçbirinin gerçek avantajı olmayan 200 varyantın 3 yıllık örneklem içi ve 1 yıllık örneklem dışı getirilerini rastgele üretir, örneklem içinde en iyi görüneni seçer ve deneyi 500 kez tekrarlar. Yalnızca numpy gerekir; veri setinin hazırlanması Python ile borsa verisi çekme rehberinde anlatılıyor.
import numpy as np
from statistics import NormalDist
rng = np.random.default_rng(42)
ic_gun, dis_gun, n = 756, 252, 200 # 3 yıl örneklem içi, 1 yıl örneklem dışı, 200 varyant
def sharpe(r):
return r.mean(axis=0) / r.std(axis=0) * np.sqrt(252) # yıllık Sharpe
ic_en_iyi, dis_secilen = [], []
for _ in range(500): # deney 500 kez tekrarlanır
r = rng.normal(0, 0.01, (ic_gun + dis_gun, n)) # hiçbir varyantın gerçek avantajı yok
ic, dis = sharpe(r[:ic_gun]), sharpe(r[ic_gun:])
k = ic.argmax() # örneklem içinde en iyi görünen seçilir
ic_en_iyi.append(ic[k])
dis_secilen.append(dis[k])
print(f"Seçilen varyantın ortalama örneklem içi Sharpe'ı: {np.mean(ic_en_iyi):.2f}")
print(f"Aynı varyantların ortalama örneklem dışı Sharpe'ı: {np.mean(dis_secilen):.2f}")
# Bailey ve López de Prado'nun beklenen en yüksek Sharpe yaklaşımı (gerçek Sharpe = 0)
g, Z = 0.5772156649, NormalDist().inv_cdf
s = np.sqrt(252 / ic_gun) # tek bir Sharpe tahmininin yaklaşık standart sapması
print(f"Formülle beklenen en yüksek Sharpe: {s * ((1 - g) * Z(1 - 1/n) + g * Z(1 - 1/(n * np.e))):.2f}")Kod, seçilen varyantların ortalama örneklem içi Sharpe oranını 1,60, aynı varyantların örneklem dışı ortalamasını −0,01 ve formülle beklenen en yüksek değeri 1,60 olarak yazdırır. Yalnızca seçim yapılarak, ortada hiçbir gerçek etki yokken yıllık 1,6 Sharpe oranı "bulunmuştur".
Paper trading ile son doğrulama
Zamanda ileri yürüyen sanal işlem, geleceğin verisi henüz oluşmadığı için ileriye bakma hatasından korunur; bu yönüyle gerçek anlamda örneklem dışı bir testtir. Bedeli zamandır: kısa sürede az işlem biriktiği için tek başına güçlü bir istatistiksel kanıt sunmaz. Karşılaştırmada işlem sayısı, işlem başına getiri ve en büyük düşüş backtest ile yan yana konur; belirgin farkların nedeni açıklanmadan canlıya geçilmez. Kurulumu paper trading yazısında anlatılıyor. Bu yazıdaki tüm sayısal örnekler varsayımsaldır veya belirtilen akademik çalışmalardan alınmıştır; bir strateji önerisi değildir.
Sık sorulan sorular
Aşırı uyum nasıl anlaşılır?
Örneklem içi sonuç ile örneklem dışı veya walk-forward sonucu arasında büyük fark, en iyi parametrenin komşularında sonucun çökmesi ve çok sayıda deneme sonunda seçilmiş olmak başlıca işaretlerdir.
Kaç parametre fazladır?
Kesin bir sayı yoktur. Belirleyici olan parametre ve deneme sayısının veri uzunluğuna ve işlem sayısına oranıdır; her ek parametre aynı güven için daha uzun veri gerektirir.
Deflated Sharpe oranı nedir?
Bailey ve López de Prado'nun geliştirdiği, Sharpe oranını deneme sayısı, denenen varyantların dağılımı, veri uzunluğu ve getirilerin normal dağılmaması için düzelten ölçüttür. Sonuç, gerçek Sharpe oranının sıfırdan büyük olma olasılığı olarak okunur.
Walk-forward analizi aşırı uyumu tamamen önler mi?
Önlemez. Parametre seçimini geleceği görmeden yapmayı sağlar, ancak pencere uzunlukları veya kural ailesi birçok deneme sonunda seçildiyse walk-forward sonucu da şişebilir.
Örneklem dışı test tek başına yeterli mi?
Değildir. Test sonucu görüldükten sonra strateji düzenlenirse o veri de geliştirme verisine dönüşür ve deneme sayısı arttıkça tesadüfen geçen bir varyant bulma ihtimali yükselir.
Kaynaklar
- Bailey, López de Prado: The Deflated Sharpe Ratio (Journal of Portfolio Management, 2014) (yeni sekmede açılır)
- Bailey, Borwein, López de Prado, Zhu: The Probability of Backtest Overfitting (revize çalışma metni, Şubat 2015) (yeni sekmede açılır)
- Harvey, Liu, Zhu: ... and the Cross-Section of Expected Returns (Review of Financial Studies 29(1), 2016) (yeni sekmede açılır)
- scikit-learn: TimeSeriesSplit (yeni sekmede açılır)
- 17 CFR 4.41: Advertising by commodity pool operators and commodity trading advisors (Cornell LII) (yeni sekmede açılır)
- Bailey, Borwein, López de Prado, Zhu: Pseudo-Mathematics and Financial Charlatanism (Notices of the AMS, 2014) (yeni sekmede açılır)
Burada yer alan yatırım bilgi, yorum ve tavsiyeleri yatırım danışmanlığı kapsamında değildir. Yatırım danışmanlığı hizmeti, yetkili kuruluşlar tarafından kişilerin risk ve getiri tercihleri dikkate alınarak kişiye özel sunulmaktadır. Burada yer alan yorum ve tavsiyeler ise genel niteliktedir. Bu tavsiyeler mali durumunuz ile risk ve getiri tercihlerinize uygun olmayabilir. Bu nedenle, sadece burada yer alan bilgilere dayanılarak yatırım kararı verilmesi beklentilerinize uygun sonuçlar doğurmayabilir.