BtcSpotDualTimeframeMomentumConfluenceLong
Hipotezler
BTC Spot Dual-Timeframe Momentum Confluence, LONG-ONLY 1x (BTCUSDT.BINANCE_SPOT, 4H Ana + 1D Onay, BOTH Zaman Dilimi UP Yönünde İşaret Verdiğinde Sadece Long, Aksi Halde FLAT Nakde, ATR-Trailing + Günlük Rejim-Kırılması Çıkışı, Kaynak-Optimize Edilmiş Parametreler Korundu)
Hipotezler
Fabrikanın en iyi performans gösteren yükseltilmiş stratejisinin (BtcDualTimeframeMomentumConfluenceLS, Sharpe 1.99, 458 işlem, 29 günlük kağıt üzerinde +$4,774) BTCUSDT.BINANCE_SPOT'e LONG-ONLY, 1x, CASH-hesap portu; canlı venue sadece spot olduğu için özellikle FIRST LIVE-TRADING CANDIDATE olarak oluşturuldu. Mekanizma değişmedi, saf-OHLCV, tek-enstrüman: FAST bacağı = 4-HOUR barlarda trailing 18-bar getirisinin işareti; SLOW bacağı = DAILY barlarda trailing 15-bar getirisinin işareti (bağlam bacağı olarak on_extra_bar üzerinden okunuyor, asla senkronizasyon bariyeri değil). İkisinin de AGREE işaret vermesi gerekiyor. CASH hesabının zorunlu kıldığı tek yapısal değişiklik {LONG/FLAT/SHORT}'ü {LONG/FLAT}'e indirgemek: vadeli işlem ana stratejisi joint-down confluence'ta SHORT giderken, spot versiyonu 100% USDT tutuyor. Geri kalan her şey birebir korundu: çalışan uç noktadan 3.033x ATR olan ATR(14) trailing stop, günlük rejim-kırılması çıkışı, volatilite-ölçekli sermaye-göreceli boyutlandırma (risk_pct 1.011% / 3.033xATR stop mesafesi), 49.7% maksimum-nominal tavanı, ve kaynak optimizasyonunun seçtiği tam parametre vektörü (fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). Üç ayarlanabilir parametre, ek veri yok, short yok, kaldıraç yok. Spot'a özgü kod değişiklikleri: position_size'te kaldıraç çarpanı olmayan BINANCE_SPOT CASH venue, size_precision 5 / price_precision 2, min_notional $10, satışlar sadece elde tutulan taban miktarına göre boyutlandırılır. Doğrulanmış mevcut veri: BTCUSDT.BINANCE_SPOT 4-HOUR ve 1-DAY barları 2017-08-17'den itibaren kesintisiz çalışıyor (~9 yıl, ~19,800 4H bar).
Hipotezler
Yükseltilmiş (promoted) vadeli işlem ana stratejisi BtcDualTimeframeMomentumConfluenceLS'in spot venue'ye doğrudan aktarımı, çünkü hedeflenen canlı venue sadece spot. Mekanizma birebir korundu: aynı iki momentum bacağı, aynı AGREE-veya-flat kapısı, çalışan uç noktadan aynı ATR(14) 3.033x trailing stop, aynı günlük rejim-kırılması çıkışı, aynı volatilite-ölçekli risk_pct / stop-mesafesi boyutlandırması ile 49.7% nominal tavan, ve kaynak optimizasyonunun seçtiği tam parametre vektörü (fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). CASH hesabı, hipotezin belirttiği gibi tam olarak bir yapısal değişikliği zorunlu kılıyor: {LONG,FLAT,SHORT} {LONG,FLAT}'ye indirgeniyor — should_enter sadece joint-up durumunda BUY döndürüyor, diğer durumlarda None, yani joint-down bir short yerine 100% USDT anlamına geliyor. Spot'a özgü değişiklikler: 1.0 kaldıraçla ve position_size'te kaldıraç terimi olmadan BINANCE_SPOT venue, size_precision 5 / price_precision 2 (BTCUSDT spot), min_notional $10'e yükseltildi, ve tüm çıkışlar temel şablonun sadece-azaltan (reduce-only) close_position'sinden yönlendiriliyor, böylece bir SELL yalnızca elde tutulan taban miktarı azaltabilir (yapı gereği çıplak bir spot short imkansızdır ve temel şablonun _would_open_spot_short korumasına hiç dokunulmaz). calculate_signal her barda sürekli 18-bar 4H getirisini döndürür (bar bar değişir); ayrık confluence kapısı ise gerektiği gibi should_enter'de bulunur. Bar başına maliyet O(1)'dir: ATR sabit bir 15-bar penceresi kullanır ve hızlı getiri tek bir indeksli arama olduğundan, geçmişle ölçeklenen bir iş yoktur. Analist için dürüst bir uyarı: spot gidiş-dönüş maliyeti ~0.20% iken vadeli işlem ana stratejisinde ~0.10% — bu yüzden işlem başına kenar iki katı sürtünmeyi karşılamak zorunda; trend-takip eden çıkış yapısı (sabit kar-al olmadan trailing + rejim kırılması) bunun makul olmasını sağlayan unsur, ama ilk izlenmesi gereken metrik bu.
Uygulama
LONG-ONLY 1x BTCUSDT spot (BINANCE_SPOT, CASH) çift-zaman-dilimi momentum confluence. FAST bacağı = 4-HOUR barlarda (ana) trailing 18-bar getirisinin işareti; SLOW bacağı = 1-DAY barlarda trailing 15-bar getirisinin işareti, daha yavaş zaman dilimi bağlam bacağı olarak on_extra_bar üzerinden tüketilir (farklı zaman dilimi olduğundan, temel şablonun bacaklar-arası hizalama bariyeri 4H sinyalini asla ertelemez). BTC'i tutmak için her iki bacağın da UP yönünde işaret vermesi gerekir; joint-down (vadeli işlem ana stratejisinin short attığı yer) ve anlaşmazlık, ikisi de 100% USDT tutmak anlamına gelir. Çıkışlar: pozisyonun çalışan tepesinin 3.033x ATR altında ATR(14) trailing stop, ya da günlük bacağın long altında aşağı dönmesi (OR daha yüksek-zaman-dilimi rejim kırılması). Boyutlandırma volatilite-ölçekli ve sermaye-göreceli: equity * 1.011% / (3.033 * ATR), USDT bakiyesinin nominal olarak 49.7%'i ile sınırlı, NO kaldıraç çarpanıyla (CASH hesabı borç alamaz), size_precision 5'ye kuantize edilmiş ve $10 spot minimum nominal altında reddedilmiş. Üç ayarlanabilir parametre, saf OHLCV, ek veri yok, short yok.
Doğrulama Sonuçları
Ya should_exit'in trailing karşılaştırmasında ana stratejiyle tam eşleşmesi için self._atr'yi (güncel) kullanın, ya da trailing'in giriş-barı ATR'e sabitlendiğini açıklamada açıkça belirtin ki analist ana stratejiden sapmayı venue değişikliğine bağlamasın.
Doğrulama Sonuçları
Trailing stop ATR, girişte FROZEN'dir (self._entry_atr, should_enter'de ya da pozisyon devralınırken yakalanır) ve asla yenilenmez, dolayısıyla trail mesafesi güncel ATR(14) yerine 3.033 x giriş-anı ATR'e 3.033 x dayanır. Yükseltilmiş vadeli işlem ana stratejisi (BtcDualTimeframeMomentumConfluenceLS4H) trailing'ini her bar CURRENT ATR ile ayarlıyor (ratchet). Hipotezin ifadesi ('çalışan uç noktadan 3.033x ATR'de ATR(14) trailing stop') her iki durumda da karşılanıyor ve _extreme monoton olduğundan stop seviyesi yine de sadece yukarı doğru ayarlanıyor, dolayısıyla bu bir doğruluk kusuru değil — ama girişten sonra bir volatilite genişlemesinde efektif stop ana stratejininkinden daha sıkı oluyor, ki bu, 'birebir' aktarıldığı iddia edilen stratejiden gerçek bir davranışsal farktır.
Doğrulama Sonuçları
İşlem durumunu should_enter içinde değil, dolumdan (on_order_filled / açık pozisyona sahip ilk bar) ayarlayın, ya da pozisyon aramasından önce calculate_signal'nin başında savunmacı şekilde sıfırlayın.
Doğrulama Sonuçları
should_enter(), temel şablon emri boyutlandırıp minimum-nominal kapısını uyguladıktan BEFORE işlem durumunu değiştiriyor (_in_long = True, _extreme, _entry_atr). Eğer position_size() 0 döndürürse ya da $10 minimum-nominal kontrolü girişi düşürürse, strateji flat durumdayken armed bir trailing ile long olarak işaretlenmiş kalır. Pratikte bu bir sonraki barda kendiliğinden düzeliyor (calculate_signal pozisyonun None olduğunu görüp bayrakları sıfırlıyor ve should_exit'ya flat iken hiç ulaşılmıyor), dolayısıyla gözlemlenebilir bir davranışsal hata yok — ama çıkış yolu bir gün değiştirilirse bu değişmez (invariant) kırılgan kalıyor.
Doğrulama Sonuçları
Doğruluk için düzeltme gerekmiyor. Aynı-bar tüketimi tam olarak isteniyorsa, _slow_dir'i on_extra_bar'de önbelleğe almak yerine calculate_signal içinde self._extra_bars[...]'tan tembel (lazy) şekilde yeniden hesaplayın.
Doğrulama Sonuçları
Günlük bacakta bir barlık gecikme: DAILY bar ile günün son 4H barı aynı kapanış zaman damgasını paylaşıyor. Eğer motor önce ana 4H barı teslim ederse, _maybe_process_primary() çalışır ve _last_processed_ts'i damgalar, ve günlük barın _slow_dir güncellemesi (aynı ts ile gelen) yalnızca NEXT 4H barından tüketilir. Bu tutucudur (bir sinyali yalnızca geciktirebilir, asla gelecek veriyi sızdıramaz), ama günlük rejim-kırılması çıkışının vakaların yaklaşık yarısında günlük kapanıştan 4 saate kadar sonra tetiklenebileceği ve backtest/paper eşliğinin teslimat sırasının kararlı olmasına bağlı olduğu anlamına gelir.
Doğrulama Sonuçları
Sadık bir uygulama, ancak analistin tam geçmiş üzerinde tartması gereken üç husus var: (1) spot gidiş-dönüş maliyeti ~0.20% iken vadeli işlem ana stratejisininki ~0.10% — dolayısıyla aynı brüt kenar (edge) kabaca yarıya iniyor; sandbox zaten komisyonu brütün 10.03%'ü olarak gösteriyor; (2) parametre vektörü (hızlı 18 / yavaş 15 / trailing 3.033) DIFFERENT bir venue, zaman dilimi karışımı ve yön kümesi (LONG/SHORT vadeli işlem) üzerinde yapılan bir optimizasyon çalışmasıyla seçildi, dolayısıyla bu optimize edilmiş bir konfigürasyon değil, örneklem-dışı (out-of-sample) bir aktarımdır — sandbox Sharpe'ı 0.527, sharpe_ci_low -0.233 ve information_ratio -0.760 ile birlikte, yani smoke penceresinde BTC'ı elde tutmaktan daha düşük performans gösteren sadece-long bir BTC portföyü; (3) short bacağın çıkarılması ana stratejinin işlem popülasyonunun kabaca yarısını kaldırıyor (250 işlem, tamamı long, 43.6% maruziyet), bu yüzden gerçekleşen Sharpe'ın ana stratejinin 1.99'sine yakın değil, onun oldukça altında olması beklenmelidir. Gerçek backtest'te kontrol edilecek ilk şey: 0.25% spot alt sınırına karşı avg_trade_return_pct (sandbox 0.82% gösteriyor, ama bu pencere 2017'ü dışarıda bırakıyor ve sadece 2401 gün) ve 'normal' volatilite terçilinin (sandbox'ta -8.77%) tam geçmiş boyunca negatif kalıp kalmadığı.
Geriye Dönük Test İncelemesi
3146 gün boyunca (2017-08 → 2026-03) 314 kapanmış işlem, metrics_reliable=true, 314/314 entry_diag giriş gönderildi, 0 tanesi iptal edildi.
Geriye Dönük Test İncelemesi
İşlemler hipotezi uyguluyor: tüm 314 LONG / 0 short (ana stratejinin LONG/FLAT/SHORT'ünün doğru CASH indirgemesi), 0.497 tavanına karşı maksimum nominal/özkaynak 0.50, ortalama tutma süresi 4g8s ve vadeli işlem ana stratejisini yeniden üreten 43.6% maruziyet.
Geriye Dönük Test İncelemesi
~0.20% BINANCE_SPOT gidiş-dönüşe karşı avg_trade_return_pct 1.20%; komisyonlar brütün sadece 8.97%'i, etki 4.33% — komisyon-marjinal değil.
Geriye Dönük Test İncelemesi
15% spot varsayılanı altında max_drawdown 10.3%, PF 1.41, getiri 2.07 bir 40.4% isabet oranında (doğru trend şekli), stresli volatilite terçili +28.0%.
Geriye Dönük Test İncelemesi
Aşırı yoğunlaşma: 314 işlemin en iyi 10'ı = işlem başına toplam getirinin 93.8%'i, en iyi 20 = 141% (işlem 21–314 net negatif).
Geriye Dönük Test İncelemesi
Sadece 6/10 takvim yılı pozitif — tam olarak sert alt sınırda — ve son iki yıl da negatif (2025 −10.5%, 2026 −9.9%).
Geriye Dönük Test İncelemesi
sharpe_ci_low 0.0042 ve PSR 0.924 (<0.95) ile Sharpe 0.664: ~225-denemelik seçim eşiğinden önce bile zaten marjinal.
Geriye Dönük Test İncelemesi
QA'in endişesi kısmen doğrulandı: 'normal' volatilite terçili negatif kalıyor (−7.70%, 16.1% DD), information_ratio −0.757, alfa sadece yıllık +2.4% — BTC'yi elde tutmaktan daha düşük performans gösteriyor ve benchmark_meaningful=true olduğundan bu düşüş gerçek.
Geriye Dönük Test İncelemesi
Parametreler başka bir venue/yön kümesinden örneklem-dışı bir aktarım — aşırı uyum (overfit) değil, ayarlanmamış ama burada da test edilmemiş.
Stratmill bir araştırma ve kağıt üzerinde işlem (paper trading) aracıdır; finansal danışmanlık veya aracı kurum değildir. Geriye dönük test ve kağıt üzerinde işlem sonuçları varsayımsaldır. İşlem yapmak kayıp riski taşır.