← Makalelere geri dön
July 2, 2026
5 dakikalık okuma

Deflate Edilmiş Sharpe Oranı: Backtest 'Kazananlarınızın' Kaçı Çoklu Teste Dayanıyor?

Deflate Edilmiş Sharpe Oranı: Backtest 'Kazananlarınızın' Kaçı Çoklu Teste Dayanıyor?
#algotrading
#backtest
#aşırı uyum
#istatistik
#sharpe
#çoklu-test
#doğrulama
🎯
Part 6 of 7 · Collection
Backtesting Without Fooling Yourself

"Yanılsamasız Backtestler" serisinin bir parçası.

📄 Bu makale bir araştırma makalesine dönüştü. Aşağıdaki her sayı, kontrollü bir referans gerçeklik kuran — saf-gürültü aramaları, yerleştirilmiş-avantaj aramaları ve gerçek bir korelasyonlu parametre ızgarası — ve ardından bunlara karşı Deflate Edilmiş Sharpe Oranı'nı, Harvey-Liu çoklu-test kesintisini ve White'ın Reality Check'ini / Hansen'ın SPA'sını çalıştırarak her yöntemin yanlış-keşif oranını ve tespit gücünü doğrudan ölçen tek bir deterministik betikten geliyor. Makaleyi çevrimiçi olarak (interaktif sürüm + PDF) deflated-sharpe.marketmaker.cc adresinde, kod ve veriyi ise github.com/suenot/deflated-sharpe-search adresinde okuyabilirsiniz.

Bir parametre taraması çalıştırıyorsunuz. On altı hızlı uzunluk, kırk yavaş uzunluk, bir hareketli-ortalama kesişiminin 640 kombinasyonu. Izgara bitiyor ve bir hücre parlıyor: yıllıklandırılmış 3.9 Sharpe, 6×10126\times10^{-12}'lik tek-test p-değeri. On iki sıfırlık anlamlılık. Bir şey buldunuz.

Ya da hiçbir şey bulmadınız ve arama onu sizin için buldu.

Bir parametre araması bir test değildir. N denemenin en şanslısını bulan bir makinedir ve ona ne kadar çok deneme verirseniz, kazananı — altında gerçek bir avantaj olsun ya da olmasın — o kadar şanslı görünür. En-iyi-N-arasından Sharpe, tıpkı bin rastgele insanın en uzununun uzun olması gibi seçilim tarafından şişirilir: uzun boyluluk gerçek olduğu için değil, aradığınız için. Kazananın yanına basılan tek-test istatistikleri — p-değeri, t-istatistiği, "anlamlı mı?" — tek bir önceden-kaydedilmiş hipotez için tasarlanmıştı. Onlara bir aramanın hayatta kalanını besleyin, her seferinde güvenle yalan söylerler.

Bu makale, ne kadar kötü yalan söylediklerini tam olarak ölçüyor ve ardından bunu düzelten üç aracı ölçüyor. Bütün mesele kontrollü referans gerçeklik: cevabı bildiğimiz getiriler üretiyoruz — bazen sıfır avantajlı saf gürültü, bazen bilinen güçte yerleştirilmiş bir avantaj — böylece "yöntem doğru mu bildi?" bir yargı çağrısı değil, bir gerçek olur. İşte önce manşet. Dürüst cevabın her zaman "hayır, keşif yok" olduğu bilinen-null aramalarda, her testin ne sıklıkla yalan söylediği:

Test Bilinen-null aramalarda yanlış keşif oranı Yargı
Naif "en iyi Sharpe anlamlı mı?" testi 1.000 her seferinde bir keşif işaretliyor
Deflate Edilmiş Sharpe Oranı (DSR ≥ 0.95) 0.001 kontrollü
Harvey-Liu kesintisi — Bonferroni 0.057 ~kontrollü
Harvey-Liu kesintisi — Holm 0.057 ~kontrollü
Harvey-Liu kesintisi — BHY 0.007 kontrollü
White'ın Reality Check'i (bootstrap) 0.022 kontrollü

Arama başına 1,000 strateji, her biri 1,000 gözlem, 2,000 bağımsız null arama, her yerde gerçek Sharpe = 0. Sentetik iid Normal getiriler, seed 0, α = 0.05, yılda 252 periyot. Naif testin yanlış keşif oranı yüksek değil — tam olarak bir.

İlk satırı acıtana kadar okuyun. Saf gürültüde zamanın %5'inde ateşlemesi gereken bir test, zamanın %100'ünde ateşliyor — çünkü ona saf gürültü göstermiyorsunuz, ona bin saf-gürültü çekilişinin maksimumunu gösteriyorsunuz ve bin yazı-tura atıcısının maksimumu her zaman bir dahi gibi görünür. Diğer her satır, bunu bilen ve buna göre düzelten bir yöntemdir. Makalenin tamamı bu: ilk satırın neden 1.000 olduğu, diğerlerinin neden olmadığı ve iyi yöntemlerin bile dürüst kalmak için ikinci bir düzeltmeye ihtiyaç duyduğu tek yer (son bölüm).

Perde 1 — Tuzak: bir arama hiçlikten Sharpe üretir

Bin rastgele strateji eğrisini bir huniden geçiren bir slot makinesi olarak tasvir edilmiş bir parametre araması; ayartıcı bir Sharpe oranıyla etiketlenmiş tek bir en şanslı eğri ortaya çıkarken, elenen eğriler arka planda gürültüye karışıyor

Mümkün olan en temiz tuzakla başlayın. Getirileri bağımsız standart-Normal gürültü olan N=1000N = 1000 strateji üretin — sürüklenme yok, beceri yok, hepsi için gerçek Sharpe tam olarak sıfır. Her birinin T=1000T = 1000 gözlemi var. Şimdi her parametre aramasının yaptığını yapın: en iyisini tutun.

1000'in en iyisinin gözlem başına Sharpe'ı ortalama 0.1027 çıkar, bu da yıllıklandırıldığında 1.63 olur (türetilmiş: 0.1027×2521.630.1027 \times \sqrt{252} \approx 1.63). Bu mütevazı bir sayı değil. Yıllıklandırılmış 1.63 Sharpe, bir stratejiye fon sağlanmasına, yazılıp yayınlanmasına, tahsis yapılmasına neden olacak türden bir sonuçtur. Bu sayı, sürüklenmesi sıfıra ayarlanmış bir rastgele sayı üretecinden geldi.

Şimdi kazananı naif anlamlılık testine teslim edin — her backtest kütüphanesinin bedavaya bastığı test. Sharpe'ını bir t-istatistiğine dönüştürün (t=SR^Tt = \hat{SR}\sqrt{T}), tek taraflı p-değerini alın, p<0.05p < 0.05 ise buna keşif deyin:

t=SR^T,p=1Z(t),"discovery" if p<αt = \hat{SR}\sqrt{T}, \qquad p = 1 - Z(t), \qquad \text{"discovery" if } p < \alpha

Bu gürültü kazananlarının medyan tek-test p-değeri 0.000686 — avantajı olmayan bir stratejiden gelen üç sıfırlık bir "anlamlılık". Ve 2,000 bağımsız null arama boyunca, naif test her birinde bir keşif ilan ediyor: 1.000'lik bir yanlış keşif oranı. "Şişirilmiş" değil. "Biraz yüksek" değil. Kurgusu gereği tek bir null hipotezde en fazla %5 oranında haklı olan bir test, bir aramanın kazananında %100 oranında yanılıyor.

Mekanizma, bir kez adlandırıldığında pek de ince değil. Naif test şunu sorar: "bu Sharpe, null altında şans eseri ortaya çıkabilir miydi?" — veriye bakmadan önce seçtiğiniz bir strateji için adil bir soru. Ama siz bu stratejiyi bin tanenin en yüksek Sharpe'ına sahip olduğu için seçtiniz. Maksimum üzerinde koşullandınız ve bir maksimumun örnekleme dağılımı, tek bir çekilişin örnekleme dağılımına hiç benzemez. Bu, look-ahead bias taksonomisi makalemizin diğer uçtan teşhis ettiği aynı hastalık — orada, tek barlık bir sızıntı gürültüden 15'lik bir Sharpe üretiyordu; burada, hiçbir sızıntı olmadan, tamamen seçilim yoluyla bir arama gürültüden 1.63'lük bir Sharpe üretiyor. Farklı mekanizma, aynı belirti: hiçbir anlama gelmeyen, harika görünen bir Sharpe.

Önemli olan sayı 1.63, onu aklınızda tutun. Bu arama için gürültü tavanı: 1,000 sıfır-avantajlı stratejinin en şanslısının kaydetmesini beklemeniz gereken Sharpe. Bir arama kazananının dürüst herhangi bir testi, onu sıfıra karşı değil, buna karşı — bin kez baktığınızda yalnızca şansın verdiğine karşı — karşılaştırmalıdır.

Perde 2 — Araç seti: aramayı fiyatlandırmanın üç yolu

Bir tezgahın üzerine dizilmiş, her biri aynı şişirilmiş Sharpe sayısını hedef alan üç ölçüm aleti: bir kıstas çubuğunu alçaltan bir deflasyon göstergesi, bir dizi kademeli kesinti makası ve bir getiri serisinin birçok gölge kopyasını döndüren bir bootstrap yeniden örnekleme çarkı

Birbirinden bağımsız olarak ortaya çıkan üç araştırma programı, hepsi aynı çözüme varıyor: kazananı sıfırla karşılaştırmayı bırakın, bu boyuttaki bir aramanın şans eseri ürettiğiyle karşılaştırmaya başlayın. Aralarındaki fark, bu karşılaştırmayı nasıl kurduklarında.

PSR ve Deflate Edilmiş Sharpe Oranı (Bailey & López de Prado, 2012 / 2014)

Olasılıksal Sharpe Oranı (PSR), "Sharpe pozitif mi?" sorusundan daha keskin bir soru sorar. Şunu sorar: örneklem uzunluğu ve getirilerin şekli (çarpıklık, kalın kuyruklar) göz önüne alındığında, gerçek Sharpe'ın bir SRSR^* kıstasını aşma olasılığı nedir?

PSR(SR)=Z ⁣((SR^SR)n11γ^3SR^+γ^414SR^2)\text{PSR}(SR^*) = Z\!\left( \frac{(\hat{SR} - SR^*)\sqrt{n-1}}{\sqrt{\,1 - \hat\gamma_3\,\hat{SR} + \frac{\hat\gamma_4 - 1}{4}\,\hat{SR}^2\,}} \right)

Burada ZZ standart-Normal CDF'dir, γ^3\hat\gamma_3 çarpıklık, ve γ^4\hat\gamma_4 fazla-olmayan (non-excess) kural içindeki basıklıktır (Normal ⇒ γ^4=3\hat\gamma_4 = 3; buraya 3 eklemeden fazla basıklığı koyarsanız deflasyon yanlış çıkar). SR=0SR^* = 0 ayarlarsanız, PSR sadece sonlu-örneklem bir anlamlılık testi olur. Sihir, SRSR^*'ı iyi seçmekte yatıyor.

Deflate Edilmiş Sharpe Oranı (DSR), sıfır değil de tüm aramanın beklenen maksimum Sharpe'ı olan bir kıstasta değerlendirilen PSR'dir:

SR0=Var[{SRn}]  ((1γ)Z1 ⁣(11N)  +  γZ1 ⁣(11Ne))SR_0 = \sqrt{\operatorname{Var}[\{SR_n\}]}\;\Big(\,(1-\gamma)\,Z^{-1}\!\big(1 - \tfrac{1}{N}\big) \;+\; \gamma\,Z^{-1}\!\big(1 - \tfrac{1}{N e}\big)\Big)

burada Var[{SRn}]\operatorname{Var}[\{SR_n\}], N deneme Sharpe'ının tamamı arasındaki varyanstır (aramanın kendisinin ürettiği dağılım), γ0.5772\gamma \approx 0.5772 Euler-Mascheroni sabitidir ve iki ters-Normal terim, NN standart-Normal çekilişin beklenen maksimumuna Uç Değer Teorisi (Extreme-Value Theory) yaklaşımıdır. Kodda etkileyici sayılamayacak kadar kısa:

def expected_max_sharpe(sr_variance, N, mean_sr=0.0):
    """E[max of N independent SR estimates ~ N(mean_sr, sr_variance)]
    (Bailey & LdP 2014)."""
    g = EULER_MASCHERONI                       # 0.5772156649
    a = norm.ppf(1.0 - 1.0 / N)                # Z^{-1}(1 - 1/N)
    b = norm.ppf(1.0 - 1.0 / (N * E))          # Z^{-1}(1 - 1/(N e))
    return float(mean_sr + np.sqrt(sr_variance) * ((1.0 - g) * a + g * b))

O halde DSR, basitçe bu deflate edilmiş kıstasla PSR'dir:

def deflated_sharpe(sr_max, sr_estimates, T, skew=0.0, kurt=3.0, N=None):
    """DSR = PSR(sr_max, SR0). Returns (dsr, sr0)."""
    v = float(np.asarray(sr_estimates).var(ddof=1))   # dispersion of the search
    m = float(np.asarray(sr_estimates).mean())
    if N is None:
        N = len(sr_estimates)
    sr0 = expected_max_sharpe(v, N, mean_sr=m)
    return psr(sr_max, sr0, T, skew, kurt), sr0

DSR bir olasılıktır. DSR1α=0.95\text{DSR} \geq 1 - \alpha = 0.95 olduğunda bir keşif ilan ederiz: kazananın gerçek Sharpe'ı, %95 güvenle şansla-elde-edilebilecek-en-iyiyi geçiyor. SR0SR_0'ın içine gömülü, taşıyıcı varsayıma dikkat edin: NN deneme bağımsız olarak ele alınır. Perde 5, bunlar bağımsız olmadığında ne olduğuyla ilgili.

Harvey-Liu kesintisi (2015)

Harvey ve Liu aynı probleme çoklu-test p-değeri düzeltmeleri üzerinden saldırır — "M test çalıştırdım, kendimi kandırmama izin verme" için klasik makine. MM tek-test p-değerini p(1)p(M)p_{(1)} \le \dots \le p_{(M)} şeklinde sıralayın ve şişirin:

piBonf=min[Mp(i),1],piHolm=min ⁣[maxji{(Mj+1)p(j)},1]p_i^{\text{Bonf}} = \min[\,M\,p_{(i)},\,1\,], \qquad p_i^{\text{Holm}} = \min\!\Big[\max_{j\le i}\{(M-j+1)\,p_{(j)}\},\,1\Big]

Bonferroni kaba bir alettir (her p-değerini MM ile çarparak herhangi bir yanlış pozitif olasılığını kontrol eder); Holm ise onun tekdüze-daha-güçlü, kademeli-aşağı kuzenidir. Üçüncüsü, Benjamini-Yekutieli (BHY), yanlış keşif oranını — reddedişlerinizin yanlış olan beklenen kesrini — kontrol eder ve, en önemlisi, bunu testler arasında rastgele bağımlılık altında yapar, pay kısmında harmonik normalize edici kullanarak:

c(M)=j=1M1j,c(1000)7.49c(M) = \sum_{j=1}^{M} \frac{1}{j}, \qquad c(1000) \approx 7.49

Bu c(1000)=7.49c(1000) = 7.49, BHY'nin, 1,000 denemenizin bağımsız olduğunu varsaymamak için ödediği bedeldir — FDR eşiğini lnM\ln M gibi büyüyen bir faktörle şişirir. "Kesinti"nin kendisi vurucu metriktir: düzeltilmiş p-değerini tekrar bir Sharpe'a dönüştürün ve orijinal Sharpe'ın ne kadarını kırpmak zorunda kaldığınızı bildirin. %100'lük bir kesinti, kazananın tamamen çoklu test tarafından açıklandığı anlamına gelir; %15 ise çoğunlukla hayatta kaldığı anlamına gelir.

White'ın Reality Check'i ve Hansen'ın SPA'sı (2000 / 2005)

Üçüncü araç hiçbir dağılım varsayımı yapmaz. White'ın Reality Check'i her kuralın gerçek getirilerini alır, kurallar-üzerinden-maksimum istatistiğini oluşturur ve null dağılımını doğrudan bootstrap'lar:

RCT=maxk=1,,KTfˉkRC_T = \max_{k=1,\dots,K} \sqrt{T}\,\bar{f}_k

burada fˉk\bar{f}_k, kk kuralının kıstasa göre ortalama performansıdır. Getirileri durağan bootstrap ile (Politis-Romano — rastgele uzunlukta bloklar, böylece seri korelasyon yeniden örneklemeden sağ çıkar) yeniden örnekler, her çekilişi kurgusu gereği null'u sağlayacak şekilde yeniden merkezler, her çekilişte maksimumu yeniden hesaplar ve p-değerini gözlemlenen değeri geçen bootstrap maksimumlarının kesri olarak bildirir. Hansen'ın SPA'sı RC'yi iki şekilde keskinleştirir: stüdentizasyon (her kuralın ortalamasını kendi standart hatasına böl, böylece yüksek varyanslı vahşi bir kural maksimumu ele geçiremez) ve null'un tutarlı, örnekleme-bağımlı yeniden merkezlenmesi. Bizim uygulamamız stüdentizasyonu ekliyor ama tam tutarlı-yeniden-merkezleme adımını eklemiyor — bu yüzden bu makalenin SPA-tipi bir p-değeri bildirdiği her yerde, bunu tam Hansen SPA'sı değil, stüdentize edilmiş bir Reality Check olarak okuyun. DSR "kazanan bu arama içinde özel mi?" diye sorarken, Reality Check "en iyi kural, kaç kural denediğimi dürüstçe hesaba kattıktan sonra nakiti geçiyor mu?" diye sorar — ve denemeleri hiç saymadan, bootstrap aracılığıyla korelasyonlu kuralları doğal olarak ele alır. Bu ayrımı aklınızda tutun; son bölüm buna dayanıyor.

Perde 3 — Kalibrasyon kanıtın tamamıdır

Yanlış keşif oranı bire yükselmiş tek bir çubuğu, alfa seviyesi olan yüzde beşe yakın sabitlenmiş beş kısa çubukla karşılaştıran bir kalibrasyon grafiği; bir virgül altmış üç gürültü tavanı Sharpe'ını işaretleyen yatay bir referans çizgisiyle birlikte

Hiçbir şey işaretlemeyen bir yöntemin de yanlış keşif oranı sıfır olurdu — ve işe yaramaz olurdu. Yani bu araçların tek anlamlı testi iki taraflı bir testtir: bilinen-null veri üzerinde yanlış keşifleri α\alpha'da veya altında kontrol etmeliler, ve bilinen-avantaj veri üzerinde (sonraki bölüm) yine de ateşlemeliler. Bu bölüm ilk yarısı.

Her biri 1,000 sıfır-avantajlı strateji üzerinde 2,000 bağımsız arama çalıştırın ve her yöntemin ne sıklıkla bir keşif ilan ettiğini sayın. Bu sayı, 2,000'e bölündüğünde, yanlış keşif oranıdır — ve gerçek avantaj yok olduğundan, her keşif yanlıştır:

Test Yanlış keşif oranı (α = 0.05)
Naif anlamlılık 1.000
Deflate Edilmiş Sharpe Oranı 0.001
Harvey-Liu — Bonferroni 0.057
Harvey-Liu — Holm 0.057
Harvey-Liu — BHY 0.007
White'ın Reality Check'i 0.022

Her ilkeli yöntem %5 çizgisinde ya da yakınında iniyor — iki FWER kesintisi biraz üstünde, DSR/BHY/RC altında — naif test ise 100'de duruyor. (Bonferroni ve Holm burada aynı 0.057'yi basıyor, şans eseri değil: tek en iyi strateji için Holm'ün ilk adımı (M1+1)p(1)=Mp(1)(M-1+1)\,p_{(1)} = M\,p_{(1)}'dir, kurgusu gereği Bonferroni ile aynıdır, yani bu iki değil tek bir doğrulamadır.) Ama tüm çalışmadaki en derin sayı bu tabloda değil — DSR sütununu üreten deflate edilmiş kıstas. Null aramalar boyunca ortalandığında, SR0SR_0 gözlem başına 0.1030 çıkıyor, bu da yıllıklandırıldığında 1.63 oluyor (türetilmiş: 0.1030×2521.630.1030 \times \sqrt{252} \approx 1.63) — ortalama gürültü kazananının kaydettiği aynı 1.63 (1.63). Bu bir tesadüf değil; fikrin tamamının işleyişi bu:

Deflate edilmiş çubuk tam olarak gürültü tavanında oturuyor. DSR bir arama kazananından sıfırı geçmesini istemez. Kazanandan, yalnızca şansın bu boyuttaki bir aramadan ürettiği en iyi skoru geçmesini ister — burada yıllıklandırılmış 1.63. Yalnızca gürültü tavanını tutturan bir kazanan DSR ≈ 0.5 alır (yazı-tura), bu yüzden ortalama null DSR küçük bir şey değil, 0.495'tir. Bir keşif olmak için, kazanan 1.63'ü ve fazlasını geçmelidir — PSR'ı 0.95'in ötesine itmeye yetecek kadar.

Bu, tüm egzersizi yeniden çerçeveler. Naif test sıfırdan uzaklığı ölçer; her arama bu çubuğu önemsizce geçer, bu yüzden işe yaramazdır. DSR gürültü tavanından uzaklığı ölçer ve bu çubuğu geçmek gerçekten zordur — olması gerektiği gibi. Harvey-Liu kesintisi ve Reality Check, farklı yollardan aynı kontrole ulaşır (BHY için c(1000)=7.49c(1000)=7.49 şişirmesi, RC için bir bootstrap maksimum-dağılımı) ve aynı mahallede iniyorlar: 0.001'den 0.057'ye, α\alpha'da veya yakınında. Bonferroni/Holm'ün 0.057'si %5 çizgisinin biraz üzerinde, ama sadece biraz: 2,000 Monte-Carlo arama ile 0.05 yakınındaki bir FDR tahmininin standart hatası yaklaşık 0.005'tir, yani 0.057, α\alpha'nın yaklaşık 1.4 standart hata üzerinde duruyor — bozuk bir garanti değil, Monte-Carlo gürültüsü. "FWER'ı kontrol eder" zaten T=1000T = 1000'de bit-tam değil, asimptotik bir vaattir.

Perde 4 — Güç: gerçek avantajları hâlâ koruyor mu?

Yatay eksende yerleştirilmiş gerçek Sharpe arttıkça sıfıra yakından bire yükselen S şeklinde bir tespit-gücü eğrisi; bir virgül altmış üç gürültü-tavanı Sharpe'ında dikey kesikli bir çizgi ve eğrinin bunun hemen sağında yüzde elli güce ulaşması, ve tabana sabitlenmiş düz bir yanlış-pozitif çizgisiyle birlikte

Yanlış keşifleri kontrol etmek testin yalnızca yarısıdır — her şeyi reddeden paranoyak bir yöntem kusursuz bir 0.000 alır ve değersizdir. Diğer yarısı: gerçek bir avantaj varsa, DSR onu buluyor mu?

Bir tane yerleştirin. 1,000 stratejilik bir alanda, 25 tanesinin bilinen güçte gerçek bir avantaj taşımasını sağlayın ve geri kalanını gürültü olarak bırakın, ardından aramayı çalıştırın ve DSR'nin kazananı işaretleyip işaretlemediğini sorun. Yerleştirilen avantajı zayıftan güçlüye tarayın ve tespit gücü temiz bir S-eğrisi çizer (yanlış-pozitif oranı boyunca ~0'da tutulur):

Yerleştirilen gerçek Sharpe (yıllıklandırılmış) DSR tespit gücü DSR yanlış-pozitif oranı
0.79 0.005 0.000
1.27 0.090 0.000
1.90 0.651 0.000
2.54 0.998 0.000
3.17 1.000 0.000

Eğrinin nerede döndüğüne bakın. Gürültü tavanının altında — 1.63'ün çok altında, yıllıklandırılmış 0.79'luk gerçek bir Sharpe — DSR zamanın %0.5'inde ateşliyor, bunu doğru bir şekilde reddederek: bu kadar zayıf bir avantaj, 1,000 denemelik bir aramanın ürettiği şanstan gerçekten ayırt edilemez ve aksini iddia etmek güçlü değil, dürüst olmayan bir şey olurdu. Tavanın hemen etrafında eğri dik biçimde yükseliyor (1.27'de 0.09, 1.90'da 0.65). Yıllıklandırılmış 2.54 Sharpe'a gelindiğinde güç 0.998; 3.17'de ise kusursuz bir 1.000. Güçlü avantajlar hemen her seferinde korunuyor, yanlış pozitifler sıfıra sabitli kalıyor ve %50-güç geçiş noktası yaklaşık yıllıklandırılmış 1.73 Sharpe'ta oturuyor (1.27 ve 1.90 satırları arasında enterpolasyonla türetilmiş) — 1.63 gürültü tavanının hemen üzerinde, dürüst bir çubuğun tam olarak koyması gereken yerde: bir avantajın, 1,000 denemelik bir aramanın icat ettiğini geride bırakmaya başladığı nokta.

Aslında istediğiniz özellik bu, bir S-eğrisi olarak ifade edilirse: gürültü tavanının altındaki avantajlar doğru şekilde şans olarak elenir; rahatça üzerindeki avantajlar bire yaklaşan bir güçle korunur. Buna karşın naif test, 0.79'luk gerçek bir Sharpe'ta bile yerleştirilen avantajı zamanın %67'sinde "tespit ediyor" — ama bu sayı anlamsız, çünkü zaten var olmayan bir avantajı zamanın %100'ünde tespit ettiğini gördük. Her şeyde ateşleyen bir testin gücü yoktur; ayırt ediciliği yoktur. DSR, önemli olan şey için sınırdaki avantajlara (0.79 ve 1.27 satırları) karşı biraz duyarlılıktan vazgeçer: keşifleri gerçektir.

Perde 5 — Uygulayıcının tuzağı: korelasyonlu ızgaralar

Komşu hücreler arasında güçlü ikili korelasyonla parlayan bir hareketli-ortalama kesişim sonuçları parametre-ızgarası ısı haritası, yaklaşık ikiden neredeyse dört yüze uzanan beş farklı etkin-deneme tahmininin yatay ekseninin yanında; gerçek avantajın neredeyse tüm aralık boyunca deflate edilmiş çubuğu geçtiğini ve yalnızca en sağdaki fazla-sayan tahminin altına düştüğünü gösteren gölgeli bir sağlamlık bandıyla birlikte

Şimdiye kadar her şey bağımsız stratejiler kullandı — mümkün olan en temiz kurgu ve DSR'nin bağımsızlık varsayımının tam olarak geçerli olduğu kurgu. Gerçek parametre ızgaraları böyle değildir ve naif kullanılan bir aracın yeni bir yanılma yolu haline geldiği yer burasıdır.

Dürüst bir hareketli-ortalama kesişim araması alın: 16 hızlı uzunluk ×\times 40 yavaş uzunluk =640= 640 deneme, her biri 755 gözlem. Böyle bir ızgara korelasyona batmış durumdadır — fast=45/slow=120 ve fast=45/slow=125 neredeyse aynı stratejidir, bu yüzden getiri akışları birlikte hareket eder. 640 deneme boyunca ölçülen ortalama ikili korelasyon: yaklaşık 0.61. Bunlar 640 bağımsız bahis değil. Hiç değil.

Durum A — rastgele yürüyüş (avantaj yok): her yöntem onu doğru şekilde öldürür

Izgarayı saf bir rastgele yürüyüş üzerinde çalıştırın. Kazanan ayartıcı görünüyor: parametreler fast=45/slow=120, en iyi yıllıklandırılmış Sharpe 0.81, tek-test p-değeri 0.081. Her yöntem bunun içini görüyor:

Yöntem Sonuç Yargı
DSR (ham K = 640) 0.431 reddet (< 0.95)
Reality Check p 0.570 reddet
SPA-tipi p (stüdentize edilmiş RC) 0.569 reddet
Harvey-Liu kesintisi %100 reddet

Hiç deflasyon gerektirmeyen ipucuyla başlayın: bu kazananın düzeltilmemiş sonlu-örneklem anlamlılığı bile, PSR\text{PSR}-sıfıra-karşı, sadece 0.918 — 640 denemenin tek birini bile düzeltmeden önce zaten 0.95'in altında. Deflasyon ise bunu gömer: çubuk, gözlem başına SR0=0.057SR_0 = 0.057, yıllıklandırılmış ~0.91 (türetilmiş: 0.057×2520.057 \times \sqrt{252}) — kazananın 0.81'inin üzerinde. En iyi strateji gürültü tavanına bile ulaşmıyor, DSR ≈ 0.43 (yazı-turadan daha kötü), ve Reality Check, SPA-tipi test ve %100'lük bir kesinti hepsi aynı fikirde: burada hiçbir şey yok. Kusursuz. Bu kolay durum ve işe yarıyor — ve göreceğimiz gibi, denediğimiz her etkin-deneme sayısında reddedilmiş kalıyor.

Durum B — gerçek bir rejim avantajı: ham DSR bunu yanlış alır

Şimdi aynı ızgarayı gerçek, kullanılabilir bir avantaj taşıyan bir rejim-değişimi serisi üzerinde çalıştırın. Kazanan kesin: parametreler fast=3/slow=55, en iyi yıllıklandırılmış Sharpe 3.92 — bu örnek-içi, seçilmiş Sharpe'tır, aramanın kendisi tarafından seçilim-şişirilmiş (gerçek ya da örnek-dışı bir avantaj değil), ama altta yatan rejim etkisi gerçek — 6×10126\times10^{-12}'lik bir tek-test p-değeri ve esasen 1.000 olan deflate edilmemiş PSR\text{PSR}-sıfıra-karşı anlamlılığıyla. Burada gerçek bir avantaj var ve kazanan onu buldu. Ham DSR'nin yine de onu reddetmesini izleyin:

Yöntem Sonuç Yargı
DSR (ham K = 640) 0.748 reddet (< 0.95) ✗ aşırı-deflate edilmiş
Reality Check p 0.0024 doğrula ✓
SPA-tipi p (stüdentize edilmiş RC) 0.0038 doğrula ✓
Harvey-Liu kesintisi %15 doğrula ✓

0.748'lik ham DSR, gerçek bir avantajın yanlış reddidir. Sebep, şimdi ağır biçimde ihlal edilen bağımsızlık varsayımıdır: DSR, deflate edilmiş çubuğunu 640 korelasyonlu denemeyi 640 bağımsız çekiliş gibi ele alarak kurdu, bu da beklenen-maksimum SR0SR_0'ı gözlem başına 0.221'e — yıllıklandırılmış ~3.51'e (türetilmiş: 0.221×2520.221 \times \sqrt{252}) — şişiriyor. 3.51'lik bir çubuğa karşı, 3.92'lik bir kazanan onu ancak ölçülü biçimde geçiyor ve DSR 0.748'de kalıyor — 0.95'in altında. Bu çubuğu iki şey şişiriyor: ham sayım (bir avuç etkin olan yerine 640 bakış), ve denemeler arasındaki gerçek beceri dağılımı — bazı parametre çiftleri bir rejim serisinde gerçekten daha iyidir, bu da Var[{SRn}]\operatorname{Var}[\{SR_n\}]'i genişletir ve SR0SR_0'ı yalnızca saf şansın kaldıracağından daha da yükseltir. İkisi de aynı yönde itiyor ve çubuk sonunda çok yüksek çıkıyor çünkü arama hiçbir zaman gerçekten 640 bağımsız bakış değildi; birkaç bağımsız bahisin 640 kez örneklenmesiydi.

Bunun yerine DSR'ye etkin deneme sayısını verin. Yukarıda kullanılan tek satırlık formül, ortalama ikili korelasyondan yapılan kaba bir tahmindir:

def effective_n_trials(returns_matrix):
    """N_eff = N / (1 + (N-1) * rho_bar), clipped to [1, N].
    Correlated trials -> fewer independent bets."""
    C = np.corrcoef(returns_matrix, rowvar=False)
    rho_bar = max(np.nanmean(C[np.triu_indices(C.shape[0], k=1)]), 0.0)
    N = returns_matrix.shape[1]
    neff = N / (1.0 + (N - 1) * rho_bar)
    return float(min(max(neff, 1.0), N))

ρˉ0.62\bar\rho \approx 0.62 ve N=640N = 640 ile, bu ızgarayı etkin Neff1.6N_{\text{eff}} \approx 1.6 denemeye çöktürür (türetilmiş: 640/(1+639×0.62)640 / (1 + 639 \times 0.62)) ve DSR 1.000'e sıçrar. Ama bu sayıyı kutlamadan önce durun, çünkü bu tüm bölümdeki en zayıf kanıt. Neff1.6N_{\text{eff}} \approx 1.6'da deflate edilmiş çubuk, yıllıklandırılmış SR00.25SR_0 \approx 0.25'e çöker — esasen deneme ortalaması, esasen sıfır. Deflasyon orada kapatılmıştır: Neff1.6N_{\text{eff}} \approx 1.6'daki DSR, kazananın deflate edilmemiş sonlu-örneklem anlamlılığını (PSR\text{PSR}-sıfıra-karşı =1.000= 1.000) yeniden bildirmekten ibarettir. Yargı, çoklu-test düzeltmesi tarafından üretilmiyor, ham anlamlılıktan devralınıyor. Ve rastgele-yürüyüş tarafındaki ayna-görüntüsü uyarısı: onun Neff1.6N_{\text{eff}} \approx 1.6'daki reddi yalnızca o kazananın başından beri bağımsız olarak sınırda olması (PSR\text{PSR}-sıfıra-karşı =0.918<0.95= 0.918 < 0.95) sayesinde geçerlidir. Tüm argümanı 1.6'ya bağlayın ve bir şüpheci omuz silkmekte haklı olur: düzeltmeyi kapattınız ve altında ne varsa onu bildirdiniz.

Öyleyse tek bir tahminciye bağlanmayın. Dürüst hamle — ve daha güçlü olanı — NeffN_{\text{eff}}'i beş farklı standart yolla hesaplamak ve yargıyı tüm bant boyunca okumaktır. İşte aynı 640-denemelik sinyal ızgarasına uygulanan beş tahminci, her biri ima ettiği deflate edilmiş çubuk ve ürettiği DSR ile:

Etkin-deneme tahmincisi NeffN_{\text{eff}} Deflate edilmiş çubuk SR0SR_0 (yıllık) DSR Yargı
Ortalama korelasyon 1.6 0.25 1.000 koru
Katılım oranı 2.4 0.43 1.000 koru
PCA (varyansın %95'i) 16 1.85 1.000 koru
Kaiser (özdeğerler > 1) 21 2.00 0.999 koru
Cheverud-Nyholt 370 3.31 0.845 reddet
ham ızgara sayımı (düzeltmesiz) 640 3.51 0.748 reddet

Tahminciler: ortalama korelasyon, yukarıdaki N/(1+(N1)ρˉ)N/(1+(N-1)\bar\rho) tek-satırlık formülüdür; katılım oranı (λi)2/λi2(\sum\lambda_i)^2/\sum\lambda_i^2 ve PCA-%95/Kaiser sayımları etkin boyutsallığı korelasyon matrisinin özdeğerlerinden okur; Cheverud-Nyholt, neredeyse-eş-korelasyon altında fazla saydığı bilinen, genetik literatüründen bir özdeğer-varyansı tahmincisidir.

Şimdi mesele oturuyor ve bu "herhangi bir düzeltme sizi kurtarır" değil. Savunulabilir ortaya bakın — PCA-%95 (Neff=16N_{\text{eff}} = 16) ve Kaiser (Neff=21N_{\text{eff}} = 21). Bunlar deflasyonun-kapalı-olduğu rejim değil; 1.85'ten 2.00'a kadar gerçek bir yıllıklandırılmış SR0SR_0 çubuğu dayatıyorlar — gürültünün oldukça üzerinde, ciddi bir kesinti, 16-21 etkin bakış için gerçek bir çoklu-test cezası. Ve 3.92'lik avantaj hâlâ bunu geçiyor (DSR 1.000 ve 0.999). Sinyal, 144.8'in (kesişim noktasından türetilmiş) altındaki her NeffN_{\text{eff}} için DSR'de hayatta kalıyor; yalnızca denemeler neredeyse-eş-korelasyonlu olduğunda kanıtlanabilir biçimde fazla sayan bir tahminci olan Cheverud-Nyholt'ün Neff=370N_{\text{eff}} = 370'i altında başarısız oluyor — ve hatta 640'ın ham, düzeltilmemiş sayımı bile DSR'yi yalnızca 0.748'e indiriyor, sıfıra değil. Aynı beş tahminciden geçirilen rastgele-yürüyüş kazananı ise her birinde reddediliyor (1'in üzerinde hiçbir NeffN_{\text{eff}} için hayatta kalmıyor). Gerçek sonuç bu: tek bir şanslı sayı değil, standart etkin-deneme tahmincilerinin tüm bandı boyunca kararlı bir yargı — bu, bunlardan herhangi birine güvenmekten çok daha güçlü bir kanıt.

En kaba tahminci üzerine teknik bir uyarı, çünkü bu, onun neden yumuşak uçta oturduğunu açıklıyor: N/(1+(N1)ρˉ)N/(1+(N-1)\bar\rho) aslında korelasyonlu değişkenlerin ortalaması için varyans-azaltma faktörüdür (ρˉ\bar\rho korelasyonu altında ortalama almanın size ne kazandırdığı). DSR'nin kıstası bir uç-değer niceliğidir — denemelerin beklenen maksimumu — bu yüzden deneme sayısı olarak bir ortalama-varyans küçültmesi kullanmak işlevsel bir uyumsuzluktur: yönü doğru (korelasyonlu ⇒ daha az etkin deneme), ama maksimumun dağılımının gerçekten bağlı olduğu nicelik değil. Bandın ortasındaki özdeğer-tabanlı tahmincilerin daha güvenilir bir okuma olmasının ve teslim edilecek şeyin nokta değil bant olmasının tam sebebi bu.

Ders: her iki aracı da kullanın ve DSR'ye doğru N'i verin

Aynı arama kazananını farklı açılardan hedef alan iki tamamlayıcı alet: biri "kazanan bu arama içinde özel mi" sorusuyla etiketlenmiş ve bir etkin-deneme-sayısı kadranına ihtiyaç duyuyor, diğeri "en iyisi veri-kurcalamadan sonra nakiti geçiyor mu" diye etiketlenmiş ve korelasyonu doğrudan veriden okuyan bir bootstrap tarafından sürülüyor

Durum B'den iki şey çıkıyor ve ikisi de taşıyıcı:

  1. Denemeler korelasyonlu olduğunda ham ızgara boyutu DSR için yanlış N'dir — ve tek bir etkin-N de doğrusu değildir. 640'ı bağımsızlığı varsayan bir formüle sokmak aşırı-deflasyona yol açar: aramanın gerçekte ulaştığından çok daha yüksek bir gürültü tavanı üretir ve gerçek avantajları altında gömer. DSR'nin etkin deneme sayısına ihtiyacı var — ama çözüm tek bir tahminciye güvenmek değildir (en azından düzeltmenin Neff=2N_{\text{eff}} = 2 yakınında kapandığı en kaba olanına). Çözüm, yargıyı standart tahmincilerin tüm bandı boyunca (burada 1.6'dan 370'e) okumak ve kararlı olup olmadığına bakmaktır. Bu avantaj için öyleydi: deflasyonun gerçekten etkin olduğu her yerde korundu (Neff=16N_{\text{eff}} = 16-2121'de gerçek bir 1.85-2.00 yıllık çubuk), yalnızca fazla sayan bir tahminci altında başarısız oldu. Bant boyunca kararlı bir yargı, tek bir sayıdan çok daha güçlüdür.
  2. DSR'yi bir Reality Check ile eşleştirin. Reality Check'in ve SPA-tipi (stüdentize edilmiş) kuzeninin, Durum B'yi hiçbir deneme-sayısı ameliyatı olmadan doğru aldığını (p = 0.0024 ve 0.0038) fark edin — bağımlılığı, durağan bootstrap aracılığıyla, doğal olarak ele alırlar, çünkü varsayımsal bağımsız bahisleri saymak yerine gerçek korelasyonlu getiri akışlarını yeniden örneklerler. Tüm etkin-N karmaşasının karar belirleyicisi bu: RC'nin NN'e ihtiyacı yok. DSR ve RC farklı sorulara cevap verir: DSR "kazanan bu arama içinde özel mi?" diye sorar (ve aramanın kaç etkin bakış aldığını bilmesi gerekir); RC/SPA-tipi "en iyi kural veri-kurcalamadan sonra nakiti geçiyor mu?" diye sorar (ve bağımlılığı verinin kendisinden okur). İkisini de istersiniz. Aralarında anlaşmazlık olduğunda — burada ham-sayım DSR ve RC'nin yaptığı gibi — bu anlaşmazlık teşhis edicidir: genellikle NN'inizin yanlış olduğu anlamına gelir.

Bu, hız-merdiveni ve IPC-vergisi çalışmalarımızın mühendislik tarafından sürekli çarptığı aynı yapısal uyarı — devasa korelasyonlu bir ızgarayı çalıştıran hızlı bir arama, size çok sayıda bağımsız bahis satın almaz ve ızgara boyutunu deneme sayısı olarak ele almak hem optimize edicinizi hem de anlamlılık testinizi kandırır. Backtest aşırı uyumunun olasılığı üzerine yakında gelecek olan tamamlayıcı makale, aynı seçilim yanlılığına yeniden-örnekleme tarafından (CSCV) saldırır ve buradaki her şeyle doğal olarak eşleşir: DSR kazananı fiyatlandırır, PBO süreci fiyatlandırır.

Dürüstlük notları

Üç uyarı, açıkça ifade edilmiş, çünkü kontrollü bir çalışmanın tüm amacı onu fazla pazarlamamaktır.

  • Getiriler sentetiktir. Kalibrasyon ve güç deneyleri için iid Normal, gerçek-avantaj durumu için bir rejim-değişimi süreci — piyasa gerçekçiliği için değil, kontrollü bir referans gerçeklik için seçildi. Gerçek getiriler kalın kuyrukludur, otokorelasyonludur ve durağan değildir, ve PSR'nin çarpıklık/basıklık terimleri tam olarak bunlardan ilkini ele almak için vardır. Buradaki teslim edilecek şey kalibre edilmiş yöntemdir, bir strateji değil: bir testin yanlış keşifleri kontrol ettiğini yalnızca, keşfedilecek hiçbir şey olmadığını bildiğimiz veri üzerinde çalıştırarak kanıtlayabiliriz. Bu da referans gerçekliği üretmeyi gerektirir.
  • Hiçbir etkin-N tahmincisi kanonik değildir — bu yüzden beşini de bildirdik. Ortalama-korelasyon tek-satırlığı Neff=N/(1+(N1)ρˉ)N_{\text{eff}} = N/(1 + (N-1)\bar\rho), hakem tarafından okunabilir ve yön olarak doğrudur (daha fazla korelasyon ⇒ daha az etkin deneme), ama bu bir ortalama için varyans-azaltma faktörüdür — DSR'nin maksimum kıstasıyla işlevsel bir uyumsuzluk — ve Neff<2N_{\text{eff}} < 2 yakınında deflasyonu tamamen kapatır. Özdeğer tahmincileri (katılım oranı, PCA-%95, Kaiser) daha iyi eşleşir ama yine de sezgiseldir, ve Cheverud-Nyholt eş-korelasyon altında fazla sayar. Daha eksiksiz, ilkeli yaklaşım deneme kümelemesidir (Bailey & López de Prado'nun DSR Ek 3'ü): her şeyi tek bir skalere çökertmek yerine, denemeleri korelasyon yapısına göre gruplayın ve kümeleri sayın. Tüm bandı tam olarak seçimin kesinleşmemiş olması nedeniyle bildiriyoruz — beş tahmincinin hepsinde kararlı bir yargı dürüst bir iddiadır; tek bir tahminci seçmeye bağlı olan bir yargı öyle olmazdı.
  • Bootstrap, tam Hansen SPA'sı değil, stüdentize edilmiş bir Reality Check'tir ve yeniden-örnekleme sayıları deneye göre değişir. Bu makalenin "SPA-tipi" dediği her yerde, kural-başına stüdentizasyonlu White'ın Reality Check'i kastedilir; Hansen'ın tam tutarlı, örnekleme-bağımlı yeniden-merkezlemesi uygulanmamıştır. Kalibrasyon yanlış keşif oranları, 400 arama boyunca arama başına 500 durağan-bootstrap yeniden örneklemesi kullanır; iki vaka-çalışması RC/SPA-tipi p-değeri her biri 5,000 yeniden örnekleme kullanır. Boyunca ortalama blok uzunluğu 20'dir (Politis-Romano), α=0.05\alpha = 0.05, yıllıklandırma için yılda 252 periyot. Bunları değiştirin ve üçüncü ondalık basamaktaki sayılar kayar; hikaye — ilkeli 0.001-0.057'ye karşı naif 1.000, gürültü tavanının hemen üzerinde %50 güce ulaşan bir S-eğrisi ve yargısı etkin-N bandı boyunca okunması gereken korelasyonlu-ızgara tuzağı — kaymaz.

Çıkarımlar

  1. Bir parametre araması bir çoklu-test makinesidir ve naif anlamlılık testi buna karşı kördür. 1,000 sıfır-avantajlı stratejide en iyi yıllıklandırılmış Sharpe ortalama 1.63 çıkıyor, medyan tek-test p-değeri 0.000686 ile — ve "anlamlı mı?" testi zamanın %100'ünde bir keşif ilan ediyor (yanlış keşif oranı 1.000). Hiçlikten gelen harika bir Sharpe, hiçbir zaman doğru soruyu sormamış bir test tarafından anlamlı olarak onaylanmış.
  2. Deflate Edilmiş Sharpe Oranı, kaleyi sıfırdan gürültü tavanına taşır. DSR, kazananı sıfıra karşı değil, bu boyuttaki bir aramanın şansla-elde-edilebilecek-en-iyisi olan SR0SR_0'a karşı karşılaştırır — null durum için bu, ortalama gürültü kazananının tam olarak oturduğu yerde, yıllıklandırılmış 1.63'te iner (türetilmiş: 0.1030×2520.1030 \times \sqrt{252}). Null yanlış keşif oranı 0.001'dir; Harvey-Liu kesintisi (Bonferroni/Holm 0.057, BHY 0.007) ve White'ın Reality Check'i (0.022) başka yollardan aynı kontrole ulaşır.
  3. Gerçek avantajları korur. DSR'nin tespit gücü, yıllıklandırılmış ~1.73 Sharpe'ta — 1.63 gürültü tavanının hemen üzerinde — %50 güce ulaşan bir S-eğrisi çiziyor: yıllıklandırılmış gerçek Sharpe 0.79'da 0.005, 1.90'da 0.651, 2.54'te 0.998, 3.17'de 1.000, boyunca yanlış pozitifler ~0. Tavanın altındaki avantajlar doğru şekilde şanstan ayırt edilemez sayılır; üzerindeki avantajlar bire yaklaşan bir güçle korunur.
  4. Korelasyonlu ızgaralar ham DSR'yi bozar — ve tek bir etkin-N onu kurtarmaz; bant kurtarır. 640-hücreli bir MA kesişiminde (ortalama ikili korelasyon ~0.61), ham-sayım DSR, gerçek (örnek-içi seçilmiş, yıllık 3.92) bir avantajı yanlışlıkla reddetti (0.748 < 0.95), çünkü 640 korelasyonlu deneme 640 bağımsız bahis değildir. Ama çözüm tek bir sihirli NeffN_{\text{eff}} değildir — en kaba tahminde (Neff1.6N_{\text{eff}} \approx 1.6) deflasyon esasen kapalıdır (çubuk ~yıllık 0.25) ve DSR yalnızca ham anlamlılığı yankılar. Gerçek kanıt, avantajın standart tahmincilerin tüm bandı boyunca korunmasıdır — savunulabilir PCA-%95/Kaiser orta-aralığındaki gerçek 1.85-2.00 yıllık çubuk dahil, Neff=N_{\text{eff}} = 1.6/2.4/16/21'de DSR 1.000/1.000/1.000/0.999 — herhangi bir Neff<145N_{\text{eff}} < 145 için hayatta kalıyor ve yalnızca Cheverud-Nyholt'ün fazla sayan 370'i altında başarısız oluyor. Rastgele yürüyüş ise her tahminci altında reddediliyor. Bir noktayı değil, bandı okuyun.
  5. DSR'yi bir Reality Check ile eşleştirin, çünkü farklı sorulara cevap veriyorlar. Reality Check ve SPA-tipi (stüdentize edilmiş) kuzeni, gerçek avantajı hiçbir deneme-sayısı ameliyatı olmadan doğruladı (p = 0.0024 ve 0.0038) — bağımlılığı durağan bootstrap aracılığıyla doğal olarak ele alırlar, ki bu tam olarak etkin-N tartışmalı olduğunda karar belirleyicidir. DSR "kazanan bu arama içinde özel mi?" diye sorar; RC/SPA-tipi "en iyisi veri-kurcalamadan sonra nakiti geçiyor mu?" diye sorar. Aralarındaki bir anlaşmazlık, NN'inizin yanlış olduğunun bir işaretidir. İkisini de çalıştırın.

Bir aramanın kazananı, suçsuzluğu kanıtlanana kadar suçludur. Naif p-değeri suçsuzluğun kanıtı değildir — aramanın kendi şişirilmiş tanıklığıdır ve saf gürültüye on iki sıfırlık güvenle kefil olacaktır. Kıstası şansın verdiğine göre deflate edin, etkin denemelerinizi dürüstçe sayın ve ikinci bir görüş için maksimumu bootstrap'layın. Her üç çubuğu da geçen şey gerçekten gerçek olabilir. Yalnızca naif olanı geçen şey, bin yazı-tura atıcısının en uzun boylusudur.

Tam deney — null-kalibrasyon aracı, yerleştirilmiş-avantaj güç taraması, korelasyonlu-ızgara aramaları ve bu makaledeki her sayının tek bir deterministik betikten yeniden üretilebilmesi — deflated-sharpe.marketmaker.cc adresindeki tamamlayıcı makalede, kod ve veri ise github.com/suenot/deflated-sharpe-search adresinde.

Sorumluluk Reddi: Bu makalede sağlanan bilgiler yalnızca eğitim ve bilgilendirme amaçlıdır ve finansal, yatırım veya ticaret tavsiyesi niteliği taşımaz. Kripto para ticareti önemli bir kayıp riski içerir.

Yazarlar

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Piyasanın Önünde Olun

Özel yapay zeka ticaret içgörüleri, piyasa analizi ve platform güncellemeleri için bültenimize abone olun.

Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.