İlk stratejisini yeni tamamlamış kişilerden, farklı biçimlerde en sık duyduğum soru şu: sonucun gerçek sayılması için kaç işlem yapmam gerekiyor? Genellikle yanında bir sayı da oluyor. "1.200 işlemim var, bu yeter, değil mi?" Dürüst yanıt ise herkesi rahatsız ediyor, çünkü mesele işlem sayısı değil.
İşte her şeyin tek satırlık özeti; sonra bu satırın neden can sıktığını anlatacağım.
Sharpe oranının standart hatası nedir?
n dönemsel getiri üzerinden hesaplanan Sharpe için, getirilerin bağımsız ve yaklaşık normal dağıldığını varsayarsak örnekleme hatası şöyledir:
SE(s) ≈ √((1 + s²/2) / n)
burada s aynı frekansta ölçülen Sharpe oranıdır. Her iki tarafı da yıllıklandırınca sade bir sonuç elde ederiz. Yılda k gözlem ve T yıl için yıllıklandırılmış Sharpe S şöyle olur:
SE(S) ≈ √((1 + S²/(2k)) / T)
Paydadaki 2k ifadesine bakın. Günlük getirilerde k = 252 olduğundan, 2 Sharpe bile paya 4/504 ≈ 0.008 katkı yapar. Tüm terim 1'e yaklaşır. Yıllıklandırılmış Sharpe'ın standart hatası yaklaşık 1/√T'dir; T, verilerinizin takvim yılı cinsinden uzunluğudur. Bu değer Sharpe'ın kendisine pek bağlı değildir, örnekleme frekansınıza bağlı değildir ve yaptığınız işlem sayısına kesinlikle bağlı değildir.
Öyleyse:
| Veri yılı | SE(Sharpe) | 1.5 ölçtüyseniz %95 GA |
|---|---|---|
| 1 | 1.00 | −0.46 ile 3.46 |
| 2 | 0.71 | 0.11 ile 2.89 |
| 3 | 0.58 | 0.37 ile 2.63 |
| 5 | 0.45 | 0.62 ile 2.38 |
| 10 | 0.32 | 0.88 ile 2.12 |
İki yıllık geçmiş veride Sharpe 1.5 gösteren bir backtest, %95 güven düzeyinde kendisini yazı tura atışından istatistiksel olarak ayıramaz. Çoğu kripto araştırması için başlangıç noktası budur; çünkü çoğu kişinin temiz, hayatta kalma yanlılığı giderilmiş ve ücretleri doğru hesaba katan verisi 2022 civarında başlıyor ve ilgi çekici sembollerin yarısı 2023'ten önce mevcut değildi.
Ama 40.000 işlemim var. Bu sorunu çözmez mi?
Hayır; en çok düzeltmek istediğim yanlış anlama bu.
İşlem sayısı ile örneklem uzunluğu farklı büyüklüklerdir ve formülde yalnızca biri yer alır. Stratejiniz altı ayda 40.000 kez sinyal veriyorsa T = 0.5 ve SE ≈ 1.41 olur. Ölçülen Sharpe 2.0 ise %95 aralığınız −0.8 ile 4.8 arasındadır. 40.000 işlemden çıkarılabilecek dürüst sonuç şudur: "iyi de olabilir, negatif de."
Çünkü bu 40.000 işlem, 40.000 farklı piyasa durumunda yapılmış 40.000 bağımsız bahis değildir. Bunlar yaklaşık 180 günlük piyasa davranışından alınmış 40.000 örnektir; günler birbiriyle, rejimler de kendi içlerinde korelasyonludur. Dört ay boyunca her gün para kazanan yüksek frekanslı bir ortalamaya dönüş stratejisi aslında tek bir bahis yapmıştır: Bu likidite rejiminde kısa vadeli geri dönüş devam eder. Ve bu bahsin sonucunu belki yalnızca birkaç bağımsız kez gözlemlemiştir.
Aklımda kullandığım karşılık şu: işlemleri değil, rejimleri sayın. Bu strateji gerçekten kaç farklı piyasa koşulundan sağ çıktı? Uzun süre bazın pozitif seyrettiği bir dönemde çalışan funding carry stratejisi, saatlik kaç yeniden dengeleme kaydettiğinden bağımsız olarak n = 1 koşul görmüştür.
Hızlı kontrol: Günlük K&Z'nizi 20 günlük blok uzunluğuyla block bootstrap yöntemiyle yeniden örnekleyin ve yeniden örneklenen Sharpe oranlarının dağılımına bakın. 5. yüzdelik dilim sıfırın altındaysa işlem sayınızın önemi yoktur. Bu işlem yaklaşık dokuz satır numpy kodu gerektiriyor ve beni diğer tüm kontrollerden daha fazla stratejiden vazgeçirdi.
Formül gerçek stratejiler için geçerli mi?
Tam olarak değil; üstelik hoşunuza gitmeyecek yönde yanılıyor. 1/√T sonucu, IID normal getiriler varsayar. Gerçek strateji getirileri otokorelasyonlu ve çarpıktır; carry, short vol veya ortalamaya dönüş gibi stratejilerde çarpıklık genellikle negatiftir. Mertens'in düzeltmesi bu momentleri yeniden hesaba katar:
SE(s) ≈ √((1 + s²/2 − γ₃·s + (γ₄−3)·s²/4) / n)
burada γ₃ çarpıklık, γ₄ ise basıklıktır. Negatif çarpıklık −γ₃·s terimini pozitif yaparak aralığı genişletir. Fazla basıklık da aralığı daha da genişletir. Çarpıklığı yaklaşık −1.2 ve basıklığı yaklaşık 9 olan tipik bir kripto carry K&Z'sinde, düzeltilmiş standart hatanın basit hesaplamadan %30–40 daha büyük çıktığını gördüm. Lo'nun 2002 tarihli makalesi otokorelasyon kısmını ele alır ve etki yine aynı yöndedir: Getirilerdeki pozitif seri korelasyon basit Sharpe'ı şişirip görünen hatayı küçültür; bu da kötü bir ikilidir.
Bu yüzden belirsizliğinizin alt sınırı olarak 1/√T'yi alın. Bu en iyi senaryodur.
500 varyantı test ettiysem Sharpe ne kadar yüksek olmalı?
Şimdi otomatik araştırma hattı işleten herkes için önemli olan kısma geliyoruz. Stratmill'de her gün karşılaştığımız durum şu: Üretim ajanı tek bir aday değil, yüzlerce aday üretiyor.
Standart normal dağılımdan alınan M örneğin beklenen maksimumu kabaca √(2 ln M)'dir. Bunu standart hatanızla çarptığınızda, gerçekten değersiz M stratejiden en şanslı olanının göstereceği Sharpe'ı bulursunuz.
| Test edilen strateji sayısı | √(2 ln M) | Gürültüden çıkan en iyi Sharpe, 5 yıl (SE 0.45) | Gürültüden çıkan en iyi Sharpe, 2 yıl (SE 0.71) |
|---|---|---|---|
| 10 | 2.15 | 0.96 | 1.52 |
| 100 | 3.03 | 1.36 | 2.16 |
| 500 | 3.53 | 1.58 | 2.50 |
| 5,000 | 4.13 | 1.85 | 2.93 |
Sondan ikinci satıra bakın. İki yıllık veriyle 500 aday üretip kazananın Sharpe'ı 2.4 çıkıyorsa, tam olarak hiçbir şey bulmamışsınız demektir. Bu, gürültü tabanının altındadır. Bailey ve López de Prado'nun deflate edilmiş Sharpe yöntemi, basit √(2 ln M) yaklaşımının yerine deneme Sharpe'larının varyansını koyarak bunu formüle eder; yöntemi gerektiği gibi uygulamakta fayda var, ama basit yaklaşım bile bugünden itibaren davranışınızı değiştirmeye yeter.
Bu durumu tablonun gösterdiğinden daha da kötüleştiren iki şey var. Birincisi, M kaydettiğiniz stratejilerin sayısı değil, değerlendirdiğiniz stratejilerin sayısıdır; her parametre ayarı, "şu 30 dönemlik geriye bakış süresini de deneyeyim" dediğiniz her sefer ve hata düzeltmesinden sonraki her yeniden çalıştırma buna dahildir. Kimse bunu dürüstçe saymıyor. İkincisi, adaylarınız bağımsız örnekler değildir; dolayısıyla √(2 ln M) etkin kapsamı olduğundan büyük gösterir. Öte yandan, korelasyonlu denemelerde tek bir şanslı rejim de koca bir aday kümesini birlikte yukarı taşır.
Kantitatif araştırmadaki en tehlikeli sayı, kimsenin kaydetmediği sayıdır: kaç kez baktığınız.
Peki ben ne yapıyorum?
Ben olsam şu 5 şeyi bu sırayla yapardım.
- Her değerlendirmeyi kaydedin. Her backtest çalıştırmasında artan, kalıcı olarak saklanan ve asla sıfırlanmayan bir sayaç kullanın. M'nin ne olduğunu söyleyemiyorsanız eşiğinizin ne olduğunu da söyleyemezsiniz. Bu listedeki en değerli tek saatlik mühendislik işi budur.
- Sharpe'ı her zaman güven aralığıyla raporlayın. Tek başına bir sayı yazdırmayın. Backtest raporlarımız
1.72 ± 0.51 (2.9y, skew-adjusted)çıktısını verir; ± işareti isteğe bağlı değildir. Bu, tüm ekibin sonuçlar hakkında konuşma biçimini değiştiriyor. - Eşiği sonuçlara bakmadan önce M ve T'ye göre belirleyin. Yukarıdaki tablodan sayıyı alın ve not edin. Sonradan belirlenen eşikler, herkesin kendini eğri uydurduğuna ikna etmesinin yoludur.
- Örnekleminiz azsa frekans yerine çeşitliliği tercih edin. Takvim süresini artıramazsınız ama aynı sinyali korelasyonsuz 40 sembolde çalıştırabilirsiniz. Bu, işlem sıklığını artırmanın sağlayamayacağı biçimde etkin n'yi gerçekten yükseltir. Yine de korelasyonlara dikkat edin — riskten kaçışın yaşandığı bir saatte 40 kripto sürekli vadeli işlem sözleşmesi tek bir enstrümandır.
- Ardından paper trade yapın. Örneklem dışı süre günde bir gün birikir ve kestirme yolu yoktur; zaten kimsenin aşırı uyum sağlayamayacağı tek örneklem olmasının nedeni de budur.
Bunların hiçbiri kısa örneklemleri kullanışlı hâle getirmez. Kısa bir örneklemin neyi destekleyebileceği konusunda dürüst olmanızı sağlar; bu, çoğu backtest raporunun ima ettiğinden çok daha zayıf bir iddiadır. İki yıllık 1.5 Sharpe, paper trade yapmaya değer bir hipotezdir. Bir bulgu değildir.
← Tüm yazılar
