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

Rastgele Arama'ya Karşı Akıllı Arama: Kesişme Noktası Algoritma Değil, Değerlendirme Maliyetidir

Rastgele Arama'ya Karşı Akıllı Arama: Kesişme Noktası Algoritma Değil, Değerlendirme Maliyetidir
#algoritmik trading
#backtest
#hiperparametre optimizasyonu
#bayesçi optimizasyon
#walk-forward
#aşırı uyum
Part 7 of 10 · Collection
High-Performance Backtest Engines

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

Hiperparametre optimizasyonunda yerleşik bir kabul var: rastgele arama, zamanla aşılacağın bir başlangıç noktasıdır. Bergstra & Bengio'nun klasik sonucu (2012) rastgelenin ızgarayı (grid) yendiğini ortaya koydu; ardından Bayesçi optimizasyon, TPE, CMA-ES ve Hyperband/ASHA gibi multi-fidelity yöntemlerin de sırayla rastgeleyi yenmesi bekleniyordu. Dolayısıyla kendi trading motorumuz için parametre-arama yöntemlerini kıyaslamaya oturduğumuzda, her zamanki merdiveni bekliyorduk: en altta rastgele, en üstte akıllı bir örnekleyici.

Biz tam tersini bulduk — sonra ders kitabındaki cevabı da bulduk. Aynı strateji, aynı parametre uzayı, aynı objektif, aynı makine. Değiştirdiğimiz tek şey tek bir backtestin ne kadar maliyetli olduğuydu ve arama yöntemlerinin sıralaması tersine döndü. Her değerlendirme ucuz olduğunda, aptal karıştırılmış (scrambled) bir Sobol dizisi her "akıllı" örnekleyiciyi ezip geçti. Her değerlendirmeyi maliyetli hale getirdiğimizde ise akıllı yöntemler öne geçti ve örnek-dışında (out-of-sample) hayatta kalan tek konfigürasyonu buldu.

Buradan çıkarılacak ders "rastgele hafife alınıyor" ya da "Bayesçi abartılıyor" değil. Ders şu: rastgele arama ile akıllı arama arasındaki kesişme noktasını belirleyen şey değerlendirme maliyetidir, algoritmanın zekiliği değil. Optimize edicinizi itibarına göre değil, tek bir backtestin maliyetine göre seçin. Bu yazı, kesişme noktasının tam olarak nerede olduğunu, neden orada olduğunu ve maliyetli-rejim hilelerinin (erken durdurma, multi-fidelity budama) güvenle kullanılıp kullanılamayacağına karar veren bir ön koşulu — sadakat (fidelity) — ölçüyor.

Aşağıdaki her şey backtester'ımızdaki iki script'ten geliyor: ucuz tek-zaman-dilimli rejim için bench_search.py (v4, commit ee092f1) ve maliyetli çoklu-zaman-dilimli rejim için bench_search_multitf.py (commit 102853c). Her ikisi de sızıntısız — karar i barının kapanışında, fill open[i+1] üzerinde — ve her ikisi de her yöntemi, aramanın hiç görmediği ayrılmış (held-out) bir test penceresiyle çok-katlı (multi-fold) kayan bir walk-forward objektifi üzerinden puanlıyor.

Soru: verim mi, örnek-etkinliği mi?

Arama bütçesinin tek bir kesir olarak gösterimi — duvar saati süresinin ask/tell maliyeti artı değerlendirme maliyetine bölünmesi — paydadaki değerlendirme-maliyeti teriminin ham verimin mi yoksa nokta-başına yerleşimin mi kazanacağına karar vermesi

Her arama yöntemi, duvar saati bütçesini iki şeye harcar: bir sonraki örneklemenin nerede yapılacağına karar vermek (örnekleyicinin kendi hesaplaması) ve örneği değerlendirmek (backtesti çalıştırmak). Birincisine ask/tell maliyeti, ikincisine değerlendirme (eval) maliyeti diyelim. Bir yöntemin sabit bir duvar saati bütçesi üzerindeki etkin arama gücü, kabaca:

points explored    wall-clock budgetask/tell cost+eval cost\text{points explored} \;\approx\; \frac{\text{wall-clock budget}}{\text{ask/tell cost} + \text{eval cost}}

ve nihai kalitesi, bu sayının her noktanın ne kadar iyi yerleştirildiği ile çarpımıdır. Birbirine karşı çeken iki kontrol düğmesi vardır:

  • Verim (throughput) — saniyedeki nokta sayısı. Aptal örnekleyicilerin (rastgele, karıştırılmış Sobol/QMC) ask/tell maliyeti neredeyse sıfırdır: düşük-sapmalı (low-discrepancy) bir nokta üretir ve devam ederler. Sayıyı maksimize ederler.
  • Örnek-etkinliği (sample-efficiency) — nokta başına kalite. Akıllı örnekleyiciler (TPE, CMA-ES, ASHA) her noktayı daha iyi yerleştirmek için objektifi modellemeye gerçek hesaplama gücü harcarlar. Verimden feragat ederek yerleşimi maksimize ederler.

Hangi düğmenin kazanacağı tamamen paydaya bağlıdır. Değerlendirme maliyeti çok küçük olduğunda, ask/tell maliyeti paydaya hakim olur, bu yüzden onu şişiren her şey — bir vekil (surrogate) model, bir çekirdek yoğunluk kestirimi, bir kovaryans güncellemesi — keşfettiğiniz nokta sayısını doğrudan küçültür. Değerlendirme maliyeti büyük olduğunda ise ask/tell maliyeti yuvarlama hatası mertebesindedir, yani akıllılık fiilen bedavadır ve alabildiğiniz kadar almalısınız.

Tüm tez tek cümlede şudur: ask/tell vergisi sabittir, ama önemi onu böldüğünüz değerlendirme maliyeti tarafından belirlenir. Şimdi bunun nasıl gerçekleştiğini izleyelim.

Ucuz rejim: aptal Sobol verimle kazanır

Ucuz rejimde, karıştırılmış bir Sobol akışı parametre uzayı boyunca binlerce neredeyse bedava değerlendirmeyle her yeri kaplarken, TPE ve ASHA kendi ask/tell makinelerinin arkasında tıkanıp kalır ve bütçelerinin çoğunu bakmak yerine düşünmeye harcar

Tek-zaman-dilimli stratejimiz, 7 parametrelik bir uzay üzerinde sızıntısız bir HMA/HMA3 ayrım kuralıdır ve süreç-içi (in-process) bir numba eval_batch tarafından değerlendirilir; bu fonksiyon konfigürasyonlar üzerinde süreçler-arası (inter-process) hiçbir ek yük olmadan prange çalıştırır. Bu motorda tek bir backtest neredeyse bedavadır — ham çekirdek konfigürasyonları saniyede kabaca 3–4k cfg/s hızında değerlendirir. Bu ucuz rejimdir ve trading'in, çoğu HPO folklorunun geldiği derin öğrenme ortamından keskin biçimde ayrıldığı yer tam da burasıdır: bizim "objektif fonksiyonumuz" 6 saatlik bir GPU eğitim koşusu değil, 0.3 milisaniyelik bir dizi (array) geçişidir.

Her yönteme aynı bütçeyi verdik — 1,500 değerlendirme — ve her birinin bu değerlendirmeleri harcamak için ihtiyaç duyduğu duvar saati süresini, artı bulduğu ayrılmış (held-out) test objektifini kaydettik. Değerlendirme bütçesi sabit olduğundan, duvar saati sütunu her örnekleyicinin ek yükünün doğrudan bir okumasıdır:

Yöntem Değerlendirme Duvar saati Verim Ayrılmış TEST
sobol (QMC) 1,500 0.53 s ~2,830 cfg/s −259
random 1,500 0.85 s ~1,770 cfg/s −27
sobol→cmaes 1,500 1.38 s ~1,085 cfg/s −367
cmaes 1,500 1.76 s ~850 cfg/s −85
tpe 1,500 9.76 s ~154 cfg/s −161
tpe-mv+sobol 1,500 12.15 s ~123 cfg/s −151
asha (folds) 1,500 15.79 s ~95 cfg/s −165

TEST, aramanın hiç dokunmadığı ayrılmış bir pencere üzerindeki walk-forward objektifidir (yıllıklandırılmış PnL-aktif-zaman-başına × işlem-sayısı güveni); yüksek olması daha iyidir.

İki gerçek öne çıkıyor. Birincisi, verim sütununa bakın. Karıştırılmış Sobol ~2,830 cfg/s hızında koşuyor — motorun tavanına yakın. TPE ~154 cfg/s, ASHA ise ~95 cfg/s hızında koşuyor. Bu, aynı sayıda değerlendirmeyi yapmak için 18–30x yavaşlama demek. Akıllı örnekleyiciler ekstra bir şey değerlendirmiyor; o zamanı kendi ask/tell makinelerinin içinde harcıyorlar.

İkincisi — ve hikâyeyi dürüst tutan kısım burası — hiçbir yöntem pozitif bir örnek-dışı (out-of-sample) sonuç bulamadı. Her TEST değeri negatif. Tek-zaman-dilimli rejimde stratejimizin kalıcı bir OOS kenarı (edge) yok, dolayısıyla "hangi yöntem kazanıyor" sorusu nihai kârla ilgili bir soru değil; arama etkinliği ile ilgili bir soru. Ve sabit bir değerlendirme bütçesinde arama etkinliği açısından aptal yöntemler açık ara kazanıyor: Sobol ve rastgele, duvar saatinin 1/20'sini harcarken akıllı örnekleyicilerle aynı veya daha iyi ayrılmış (held-out) sayılara ulaşıyor.

Şimdi karşılaştırmayı bir uygulayıcının gerçekte deneyimlediği şekilde tersine çevirin — değerlendirme sayısını değil, duvar saatini sabitleyin. ASHA'nın 1,500 değerlendirmesi için ihtiyaç duyduğu 15.8 saniyeyi her yönteme verirseniz, Sobol 1,500'de durmaz. Kabaca 45,000 konfigürasyona kadar devam eder. Ucuz rejimde soru asla "hangi örnekleyici 1,500 noktayı en iyi yerleştiriyor" değildir — soru şudur: "her nokta neredeyse bedavayken, 1,500 akıllıca yerleştirilmiş nokta mı yoksa 45,000 karıştırılmış nokta mı istersiniz?" Neredeyse bedava bir değerlendirmeyle, genişlik kazanır. 7 boyutlu bir uzayın otuz kat daha fazla kapsanması, onun daha iyi bir modelinden üstün gelir.

Ask/tell vergisi

20 kat nereye gidiyor? Backtestin içine değil — o, yöntemler arasında birebir aynı. Örnekleyicinin nokta-başına defter tutma (bookkeeping) işine gidiyor, Python içinde, döngünün içinde çalışan:

  • TPE, her ask çağrısında bir çift çekirdek-yoğunluk kestirimi (iyi ve kötü denemeler) uydurur ve maliyet deneme geçmişiyle birlikte büyür. Çok değişkenli (multivariate) TPE bunları boyutlar arasında ortaklaşa uydurur — daha fazla modelleme, daha fazla Python.
  • CMA-ES, her nesilde bir kovaryans matrisini günceller ve ondan örnekler. Burada TPE'den daha ucuz (~850 cfg/s hızında koştu), ama yine de bir Sobol noktası üretmenin üzerinde bir büyüklük mertebesi (order of magnitude) ek yük taşıyor.
  • ASHA, budayıcının (pruner) terfi/basamak (rung) defter tutma maliyetini öder ve, katları-sadakat-olarak (folds-as-fidelity) kullandığımız tasarımımızda, herhangi bir şeyi budayabilmeden önce sabit gösterge (indicator) ön-hesaplamasını öder — bu yüzden "tasarruf ettiği" değerlendirmeler, muhasebenin öne sürdüğünden daha az tasarruf sağlar.

Bunların hiçbiri algoritmalara bir eleştiri değil. Asıl mesele şu: ask/tell maliyeti nokta başına kabaca sabit sayıda milisaniyedir ve sardığı değerlendirme de birkaç milisaniye olduğunda, bu sabit maliyet aniden bütçenizin %90'ı haline gelir. Akıllı örnekleyici duvar saatinin onda dokuzunu nereye bakacağını düşünmeye, onda birini de gerçekten bakmaya harcar. Karıştırılmış bir Sobol dizisi ise tamamını bakmaya harcar. Bakmak ucuz olduğunda, bakmak kazanır.

Burada bilinçli olarak tam bir Gauss süreci (Gaussian-process) Bayesçi optimize ediciyi kıyaslamadık, ve bunun nedeni aynı: bir GP vekil modeli, deneme sayısında O(n3)O(n^3)'tür. Milisaniyeler mertebesinde maliyeti olan bir değerlendirmeye karşı, vekil modeli uydurmak, uzayın anlamlı bir kısmını değerlendirmeden önce tüm arama bütçesini tüketirdi. Ucuz rejimde, GP-BO aritmetik tarafından diskalifiye edilir.

Maliyetli rejim: kesişme noktası tersine döner

Kesişme noktası: tek bir değerlendirme maliyetlendikçe, iki yöntem eğrisi kesişir — kör Sobol geriler, akıllı maliyet-bilinçli örnekleyici ise onu geçerek pozitif örnek-dışı bölgeye geçen tek yöntem haline gelir

Şimdi tek bir backtesti maliyetli hale getiriyoruz. Çoklu-zaman-dilimli strateji, bir yüksek, bir orta ve bir düşük zaman dilimini (üçlü-TF / triple-TF) üst üste yığıyor; her biri bir gösterge geçişi ve kendi eşiklerini katkıda bulunuyor, hepsi aynı çok-katlı walk-forward üzerinden puanlanıyor. Tek bir değerlendirme artık 0.3 milisaniye yerine 0.1–0.5 saniye mertebesinde maliyetli — üç büyüklük mertebesi (order of magnitude) bir sıçrama. Değerlendirme maliyeti, paydamızın yuvarlama-hatası teriminden baskın terime taşındı. Teze göre, ask/tell vergisinin artık önemi kalmamalı ve akıllılık karşılığını vermeye başlamalı. Ve tam olarak bunu yapıyor.

Üçlü-TF problemi üzerinde (18 parametrelik bir uzay) her yöntemi sabit ~150 saniyelik bir duvar saati bütçesi altında çalıştırdık, her birinin bu bütçeyi kendi örnekleyicisinin dikte ettiği şekilde harcamasına izin verdik ve döndürdüğü tek en iyi konfigürasyonu ayrılmış bir test penceresinde değerlendirdik:

Yöntem (üçlü-TF, 150 s) Değerlendirme Ayrılmış TEST Sonuç
sobol (QMC) 349 −673 kaybediyor
cascade (sobol²×64) 20,864 −585 kaybediyor
asha (folds) 292 eff. −239 kaybediyor
tpe-mv+sobol 455 −43 kaybediyor
sobol→cmaes 15,239 +226 tek OOS-pozitif olan

TEST, öncekiyle aynı walk-forward objektifidir. Sadece bir yöntem sıfırı geçti.

Ucuz rejime hakim olan aptal Sobol taban çizgisi şimdi −673 ile son sırada. 18 boyutlu bir uzayın kör düşük-sapmalı örneklemesi, her biri maliyetli olduğu için harcayacak sadece 349 değerlendirmesi olduğundan, hiçbir şeyi konumlandıramıyor (localize). Akıllı yöntem sobol→cmaes — bütçenin %30'unu bir havza (basin) tohumlamak için Sobol'e, ardından en iyi tohumdan CMA-ES rafinasyonuna ayırıyor — pozitif bir örnek-dışı sonuç üreten tek yöntem. Nihai, hiç dokunulmamış holdout'ta şampiyon, %16.35 getiri sağlayan bir test penceresinin üzerine +2.62% (19 işlem, ~%6.6 sermaye maruziyeti) getiri döndürdü. Her rakibin şampiyonu örnek-dışında para kaybetti.

İşte bu, aynı strateji ailesi, aynı objektif, aynı makine üzerinde ölçülen kesişme noktası: tek bir değerlendirmenin maliyeti dışında hiçbir şeyi değiştirmeyin, arama yöntemlerinin sıralaması tersine dönsün. Ucuz rejimde Sobol kazanır ve akıllı örnekleyiciler 20 kat israftır; maliyetli rejimde ise işe yarayan tek şey akıllı örnekleyicidir ve israf eden Sobol'dür.

"Akıllı" burada neden kazanıyor — ve bu sadece örnek-etkinliği değil

İki eksenli bir parametre uzayının maliyet-bilinçli sömürülmesi: maliyetli gösterge ekseni sabitlenmişken akıllı örnekleyici, önbelleğe alınmış sinyaller üzerindeki ucuz eşik eksenini istila ediyor, aynı duvar saatini hem daha fazla hem de daha iyi yerleştirilmiş değerlendirmelere dönüştürüyor

Bu hikâyenin derli toplu versiyonu şudur: "maliyetli değerlendirmeler örnek-etkinliğini ödüllendirir, dolayısıyla daha az ama daha iyi nokta yerleştiren yöntem kazanır." Bu yarı doğru, ve veriler dürüst ve daha ilginç olan diğer yarıyı dayatıyor.

Değerlendirme sayılarına tekrar bakın. sobol→cmaes, kör Sobol'den daha az nokta değerlendirerek kazanmadı — aynı 150 saniyede Sobol'ün 349'una karşı 15,239 değerlendirdi, kırk kat daha fazla. Nasıl? Çünkü multi-TF değerlendirme maliyetimiz tekdüze değil, yapılandırılmış (structured). İki eksen var: maliyetli bir gösterge ekseni (zaman dilimi periyotları ve HMA uzunlukları, hesaplaması her biri 30–500 ms, çünkü bir gösterge yeniden-hesaplamasını zorluyorlar) ve ucuz bir eşik ekseni (giriş/çıkış ayrım seviyeleri, önbelleğe alınmış sinyaller üzerinde her biri ~1–2 ms). Aralarındaki fark 30–100x.

Kör Sobol bu yapıyı görmezden gelir. Çektiği her nokta maliyetli gösterge eksenini oynatır ve yeni bir yeniden-hesaplamayı zorlar — bu yüzden 349 değerlendirmenin tamamında tam fiyatı öder. sobol→cmaes ise, CMA-ES umut verici bir bölgeyi konumlandırdıktan sonra, kaba gösterge yapısını kabaca sabit tutma ve önbelleğe alınmış sinyallere düşen ve neredeyse hiçbir şeye mal olmayan sürekli eşikleri pertürbe etme eğilimindedir. Akıllı yöntem, aynı duvar saatini hem daha iyi yerleştirilmiş noktalara hem de çok daha fazlasına dönüştürür, çünkü burada uyarlanabilir (adaptive) olmak maliyet-bilinçli olmak anlamına gelir: maliyetli eksen sabitlendikten sonra ucuz eksende kalmak. Açık cascade(sobol²×64) sömürümüz bunu en agresif şekilde yapar — önbelleğe alınmış sinyaller üzerindeki ucuz eşikleri toplu işleyerek 20,864 değerlendirme — ve üçlü-TF testini kaybetmesine rağmen, iki-zaman-dilimli varyantta test penceresini doğrudan +20.2% ile kazandı (kendi holdoutunda başarısız olmadan önce — bu konuda aşağıda daha fazlası var).

Yani kesişme noktasının daha keskin ifadesi şu: maliyetli rejimde ask/tell vergisi ihmal edilebilir hale gelir, bu da sizi akıllı olmakta özgür bırakır — ve "akıllı" olmak, objektifin sadece şeklini değil maliyet yapısını da uyarlamak anlamına gelir. Kör örnekleme ikisini de yapamaz. Bu, tam olarak adaptif çözünürlüklü drill-down motorumuzun sömürmek üzere inşa edildiği iki-eksenli yapıdır, ve multi-fidelity yöntemlerin maliyetli rejime ait olmasının nedeni de budur — tek bir koşul sağlandığı sürece.

Sadakat (fidelity): budama için gizli ön koşul

Multi-fidelity yöntemler — Hyperband, ASHA, herhangi bir erken-durdurma budayıcısı — tek bir varsayıma dayanır: ucuz, kısmi bir değerlendirmenin konfigürasyonları maliyetli, tam değerlendirmenin sıralayacağı şekilde sıraladığı varsayımı. Bir walk-forward katında iyi görünen bir konfigürasyon hepsinde iyi görünme eğilimindeyse, kaybedenleri erken öldürüp hayatta kalanların bütçesini kazananlara harcayabilirsiniz. Eğer ucuz sadakat rastgele sıralıyorsa, erken durdurma iyi konfigürasyonları yazı-tura ile çöpe atmaktan başka bir şey değildir.

Bu yüzden herhangi bir budayıcıya güvenmeden önce, varsayımı doğrudan ölçüyoruz. Sadakatimiz walk-forward katlarının sayısıdır (r katta ucuza değerlendirin, veya tüm K katta tam maliyetle), ve sadakat kapısı, rastgele konfigürasyonlardan oluşan bir örneklem üzerinde ucuz r-kat objektifi ile tam objektif arasındaki Spearman sıra korelasyonu ρ'yu hesaplar. ρ@1, tek bir katta yargıladığınızda elde edilen korelasyondur — en agresif, en ucuz sadakat. İşte bu kapının iki rejim boyunca raporladığı şey:

Sadakat (kullanılan katlar) Single-TF ρ Multi-TF ρ
ρ@1 (1 kat) ~0.03 0.43
ρ@2 0.67
ρ@3 0.78
ρ@4 0.82
ρ@5 0.91

Tek-zaman-dilimli rejimde, tek bir kat konfigürasyonları gerçeğe karşı ~0.03 korelasyonla sıralıyor — istatistiksel olarak rastgeleden ayırt edilemez. Bu bir tesadüf değil; "hiçbir yöntem bir OOS kenarı bulamadı" ile aynı gerçek. Bir stratejinin kalıcı bir sinyali olmadığında, kat-başına performansı çoğunlukla şanstır, dolayısıyla herhangi bir tek kat neredeyse rastgele bir çekiliştir ve düşük-sadakatli budama iyi konfigürasyonları öldürüp şanslı olanları terfi ettirir. Multi-fidelity burada, ucuz rejimde güvenli değildir — yöntem kötü olduğu için değil, ucuz sinyal gürültü olduğu için. (Kapımız bunu tespit eder ve agresif budamayı reddeder.)

Çoklu-zaman-dilimli rejimde gerçek bir kenar (edge) var ve sadakat tablosu değişiyor: ρ@1, 0.43'e yükseliyor ve beş katla ρ 0.91'e tırmanıyor. Artık tek bir kat gerçek sıralama bilgisi taşıyor ve beş kat neredeyse tamamını taşıyor. Erken durdurma güvenli hale geliyor — ilk birkaç katta kaybeden bir konfigürasyonun gerçekten kaybeden olma olasılığı yüksek. Bu, multi-fidelity yöntemlerin maliyetli rejime ait olmasının ikinci nedeni: sadece maliyetli değerlendirmelerin budamayı değerli kılması değil, aynı zamanda ucuz sadakatin nihayet maliyetli olan gibi sıraladığı rejimin de maliyetli rejim olmasıdır.

Bunun size verdiği kural açık ve çalıştırması ucuz: budamadan önce ρ'yu ölçün. Sadakat korelasyonu, birkaç yüz rastgele konfigürasyon üzerinde iki satırlık bir hesaplamadır ve multi-fidelity aramanın sizi hızlandırması ile sessizce sabote etmesi arasındaki fark tam olarak budur.

Aramayı Kazanmak Ona Hayatta Kalmak Değildir

Bir dürüstlük notu daha, çünkü bu seri yalan söyleyen backtestler hakkında. Üçlü-TF şampiyonumuz sobol→cmaes, pozitif bir holdout kaydeden tek yöntemdi — test penceresindeki +16.35%'in üzerine +2.62%. İyi haber bu. İşte uyarı: istatistiksel deflasyondan sağ çıkamadı.

Şampiyon, tüm yöntemler boyunca denenen on binlerce konfigürasyonun en iyisidir. Bu kadar çoklu test (multiple testing) altında, +2.62% getirili bir holdout otomatik olarak gerçek değildir. Serinin tamamının dayandığı aşırı uyum kapılarını çalıştırdık — denemeler arasındaki korelasyon için düzeltilmiş etkin-N (effective-N) ile Deflated Sharpe Ratio ve kombinatoryal-simetrik çapraz doğrulama (CSCV) yoluyla PBO. Şampiyon PBO'yu geçti (0.12, 0.2 eşiğinin rahatça altında — sıralaması CSCV bölmeleri boyunca stabil), ama deflated Sharpe'ı sıfıra çöktü (kapı ≥ 0.95 talep ediyor). Sonuç: hayatta kalamıyor.

Bunu dikkatlice okuyun, çünkü tüm bu çalışmanın asıl noktası bu. Kesişme sonucu gerçek: akıllı arama, maliyetli rejimde aramayı kazandı, kesin bir şekilde, ve Sobol kaybetti. Ama aramayı kazanmak, strateji hakkında değil, optimize edici hakkında bir ifadedir. İyi bir optimize edicinin kenarsız (edgeless) bir uzaydan bulabileceği en iyi konfigürasyon yine de kenarsızdır — hangisini elinizde tuttuğunuzu size söyleyen şey deflasyondur. Doğru arama yöntemini seçmek size mevcut en iyi cevabı verimli bir şekilde sağlar; hiç var olmamış bir kenarı yaratmaz. Optimize edici ve aşırı uyum kapıları, farklı şeyleri ölçen farklı araçlardır ve ikisine de ihtiyacınız var.

Gerçekten uygulayabileceğiniz bir karar kuralı

Bir optimize edici seçmek için bizim kıyaslamamızı yeniden çalıştırmanıza gerek yok. Tek bir sayıya ihtiyacınız var: tek bir backtest ne kadar sürüyor? Objektifinizin tek bir değerlendirmesini — tam bir walk-forward geçişi, tüm katlar — zamanlayın ve rejimi buradan okuyun.

  • Ucuz değerlendirme (≲ ~10 ms/backtest): verim satın alın. Karıştırılmış Sobol/QMC veya rastgele kullanın. TPE/CMA-ES/ASHA'daki ask/tell vergisi, neredeyse bedava bir değerlendirmenin ödüllendirmediği bir yerleşim için nokta sayınıza 10–30x mal olacaktır. Multi-fidelity budamayla uğraşmayın — ve cazip gelirse, önce ρ@1'i kontrol edin; düşük-kenarlı ucuz bir rejimde muhtemelen sıfıra yakındır, bu da budamanın yazı-tura olduğu anlamına gelir. Kazandığınız mühendislik zamanını aramayı daraltmak değil genişletmek için harcayın.
  • Maliyetli değerlendirme (≳ ~100 ms–saniyeler/backtest): örnek-etkinliği satın alın. CMA-ES, TPE veya Sobol ile tohumlanmış bir CMA-ES hibriti kullanın; örnekleyicinin ek yükü artık değerlendirmeye karşı bir yuvarlama hatasıdır. Değerlendirme maliyetiniz yapılandırılmışsa (multi-TF'deki gibi yavaş bir gösterge ekseni ve hızlı bir eşik ekseni), her boyutu eşit derecede maliyetli olarak ele alan yöntemler yerine bu yapıyı sömüren yöntemleri — cascade'ler, drill-down'lar, maliyet-bilinçli herhangi bir şey — tercih edin.
  • Arada bir yerdeyseniz veya emin değilseniz: Sobol ile tohumlanmış bir hibrit (sobol→cmaes) sağlam bir varsayılandır. Erken aşamada genişlik-öncelikli (breadth-first) Sobol gibi davranır (ucuz, uydurulacak model yok) ve geç aşamada akıllı bir rafine edici gibi; bu yüzden hangi rejimde olduğunuz ortaya çıkarsa çıksın zarif bir şekilde bozulur (degrade olur) — maliyetli-rejim şampiyonumuz olmasının tam nedeni de bu.
  • Herhangi bir budayıcıdan önce sadakati ölçün. Birkaç yüz rastgele konfigürasyon üzerinde ucuz sadakat ile tam objektif arasındaki Spearman ρ'yu hesaplayın. ρ@1 düşükse, tek bir katta budama yapmayın; ρ ~0.5'i geçene kadar minimum kaynağı artırın. Bu iki satır koda mal olur ve hızlandırıcınızın en iyi konfigürasyonlarınızı sessizce çöpe atmasını önler.
  • Aramayı hangisi kazanırsa kazansın, deflasyon kapılarını çalıştırın. Optimize edicinin kazananı, o hafta üreteceğiniz en fazla aşırı-uyuma-yatkın nesnedir. Ticarete uygun olup olmadığına optimize edicinin skoru değil, DSR ve PBO karar verir.

Bunun bağlandığı yerler

Bu sonuç, bu serinin takip ettiği birkaç ipliğin tam merkezinde duruyor:

  • Altındaki motorun dürüst olduğunu varsayar. Ucuz-rejim avantajının tamamı, süreç-içi numba motorumuzun hiçbir IPC olmadan saniyede binlerce konfigürasyona ulaşması sayesinde var oluyor — sizi ilk etapta verimin-kazandığı rejime sokan şey hız merdiveni. Yavaş, framework-vergili bir motor her problemi varsayılan olarak maliyetli rejime sokardı ve kesişme noktasını asla göremezdiniz.
  • Maliyetli-rejim sömürüsü, adaptif çözünürlüklü drill-down motorumuzun etrafında tasarlandığı iki-eksenli maliyet yapısıdır: kaba, maliyetli eksende konumlandır, sonra ince, ucuz olanı sömür.
  • Buradaki her yöntem, sadece motor sızıntısız olduğu için güvenilirdir. On binlerce deneme üzerindeki bir arama, bir look-ahead hatasını bulup sömürmek için mümkün olan en verimli makinedir — "kazanan", sızıntıya en çok yaslanan konfigürasyon olurdu. Önce saati düzeltin, sonra arayın.
  • Ve şampiyonun kaderi — aramayı kazanmak, deflasyonda başarısız olmak — parametre araması ve aşırı uyum kontrolünü farklı araçlara sahip ayrı aşamalar olarak ele almanın tüm argümanıdır.

Akademik arka plan, bu alanın sürekli geri döndüğü aynı arka plandır: rastgelenin ızgarayı neden yendiği konusunda Bergstra & Bengio (2012); multi-fidelity konusunda Li ve arkadaşlarının Hyperband'ı (2018) ve ASHA devamı (2020); ve herhangi bir büyük aramanın kazananına inanılmadan önce neden deflate edilmesi gerektiği konusunda Bailey & López de Prado (2014). Hiçbiri tek bir en iyi optimize edici önermez, çünkü öyle bir şey yok — bir rejim var, ve onu seçen bir maliyet var.

Çıkarımlar

  1. Rastgele arama ile akıllı arama arasındaki kesişme noktası, algoritma tarafından değil değerlendirme maliyeti tarafından belirlenir. Tek bir backtestin ne kadar maliyetli olduğu dışında hiçbir şeyi değiştirmeden her yöntemin sıralamasını tersine çevirdik.
  2. Ucuz değerlendirme → aptal Sobol verimde kazanır. Single-TF motorumuzda (~3–4k cfg/s), TPE ve ASHA aynı değerlendirme sayısı için 18–30x daha yavaş koştu — Sobol'ün ~2,830'una karşı ~95–154 cfg/s. Eşit duvar saatinde, her nokta neredeyse bedavayken genişlik, uzayın daha iyi bir modelini yener.
  3. Maliyetli değerlendirme → akıllı yöntemler etkinlikte kazanır. Üçlü-TF probleminde, sobol→cmaes pozitif bir örnek-dışı sonuç bulan tek yöntemdi (+16.35% test, +2.62% holdout); kör Sobol son sırada bitirdi.
  4. Maliyetli rejimde "akıllı" olmak, maliyet-bilinçli olmak anlamına gelir. Kazanan, maliyetli gösterge ekseni ile ucuz eşik ekseni arasındaki 30–100x farkı sömürdü — maliyetli eksen sabitlendikten sonra ucuz eksende kalarak hem daha fazla değerlendirme yaptı hem de onları daha iyi yerleştirdi.
  5. Sadakat, budamanın ön koşuludur. Tek-kat sıra korelasyonu ρ@1 ≈ 0.03'ten (single-TF, esasen rastgele) 0.43'e (multi-TF) yükseldi ve beş katla 0.91'e ulaştı. Multi-fidelity/ASHA yalnızca ucuz sadakat, maliyetli olan gibi sıraladığında karşılığını verir — bu yüzden budamadan önce ρ'yu ölçün.
  6. Aramayı kazanmak, ona hayatta kalmak değildir. Şampiyon PBO'yu geçti ama Deflated Sharpe kapısında başarısız oldu. Optimize ediciyi değerlendirme maliyetine göre seçin; ticarete uygunluğa deflasyon kapılarıyla karar verin. Bunlar farklı araçlardır ve ikisine de ihtiyacınız var.

Optimize edicinizi, tek bir backtestin neye mal olduğuna göre seçin. Sonra şunu unutmayın: bir optimize edicinin kenarsız bir uzayda bulabileceği en iyi cevap yine de kenarsızdır — ve hangisini elinizde tuttuğunuzu size aramanın değil, kapıların söylemesine izin verin.

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.