BTC Oturumlar Arası Momentum Taşınımı — Long-Short, Tek Enstrümanlı OHLCV: ASIA-Oturumu Hareketinin Yönü US-Oturumu Hareketini Öngörür; Asia Hareketi Büyük Olduğunda US Oturumunu O Yönde ONLY İşleme Sokun, Gecelik Düz (BINANCE BTCUSDT USD-M, 1H Barlar, Gün İçi, 2-Parametreli)
Sonuç: Terk Edildi
BtcAsiaToUsSessionCarryoverLS
İyi ölçülmüş: tam 2020-2026 1H geçmişi boyunca 594 işlem, dengeli long/short (293/301), temiz uygulama (594 sinyal verildi, 594 gönderildi, düşüş yok)
BTCUSDT.BINANCE USD-M perpetual üzerinde, burada beklemede olan veya ölü olan her şeyden gerçekten farklı bir ailede yer alan LONG-SHORT, SINGLE-INSTRUMENT, saf-OHLCV bir INTRADAY stratejisi — NOT bir trend/breakout (dual-TF momentum, SuperTrend, Donchian, ORB), NOT bir mean-reversion/fade (ikisi de ölü) ve NOT bir tamamlayıcı-veri-akışı sinyali (hepsi net kaybettiren) değildir. Gün içi bir SESSION LEAD-LAG'ından yararlanır: düşük katılımlı ASIA oturumu (00:00-08:00 UTC) sırasında belirlenen yönlü tonun, daha……Daha fazla gösterDaha az göster
BTCUSDT.BINANCE USD-M perpetual üzerinde, burada beklemede olan veya ölü olan her şeyden gerçekten farklı bir ailede yer alan LONG-SHORT, SINGLE-INSTRUMENT, saf-OHLCV bir INTRADAY stratejisi — NOT bir trend/breakout (dual-TF momentum, SuperTrend, Donchian, ORB), NOT bir mean-reversion/fade (ikisi de ölü) ve NOT bir tamamlayıcı-veri-akışı sinyali (hepsi net kaybettiren) değildir. Gün içi bir SESSION LEAD-LAG'ından yararlanır: düşük katılımlı ASIA oturumu (00:00-08:00 UTC) sırasında belirlenen yönlü tonun, daha yüksek likiditeli US oturumuna (13:00-21:00 UTC) PERSIST eğiliminde olması; çünkü US/kurumsal akış hareketi tersine çevirmek yerine sürdürür. Her UTC günü, Asia-oturumu getirisinin işareti ve büyüklüğü ölçülür; Asia hareketi LARGE olduğunda (gürültü değil, gerçek bir yönlü sinyal), strateji US oturumuna SAME yönünde girer ve yalnızca o oturum boyunca tutar, gecelik olarak FLAT kalır (finansman maruziyeti yok, gecelik gap yok, çok günlük trend riski yok). Bu, beklemedeki BTC açılış-aralığı breakout'undan (ilk saatlerin bir BREAKOUT aralığını işleme sokan) farklıdır — burada breakout yoktur; zaten oluşmuş bir oturum hareketinin daha sonraki, ayrı bir oturuma yönlü bir CARRYOVER'ıdır. Hayatta kalınabilir değişmezleri korur (tek enstrüman, tam 2020-2026 1H geçmişiyle saf OHLCV, long-short, net-kaybettiren dersine göre tamamlayıcı veri akışı yok, L69'ye göre ikinci bacak yok) ve istatistiksel geçitler için tasarlanmıştır: neredeyse günlük bir sıklık, ölçülebilirlik tetikleyicisini aşan ve deflasyonlu-Sharpe tahminini sıkılaştıran bir LARGE işlem sayısı (>100/yıl) verir ve yalnızca 2 FREE parametre (Asia-hareketi giriş eşiği, ATR stop katsayısı) best-of-225-deneme deflasyon cezasını en aza indirir. Ayrıca yeterince temsil edilmeyen kısa-vade (short-horizon) grubunu (8.6% vs 10%) doldurur.
İterasyon 2, Layer-2 hatasını harfiyen düzeltiyor: altı sentetik senaryonun tamamı 'TypeError: _day_of() takes 1 positional argument but 2 were given' hatası verdi. Layer-2 test düzeneği, proxy üzerindeki her çağrılabilir özniteliği bir BOUND metodu olarak yeniden bağlıyor, bu yüzden @staticmethod yardımcıları _day_of/_hour_of ilk argüman olarak instance'ı, ikinci argüman olarak da bar'ı aldı. Düzeltme: her ikisi artık düz instance metotları (self, bar) — çağrı noktaları zaten self._day_of(bar)/self._hour_of(bar)……Daha fazla gösterDaha az göster
İterasyon 2, Layer-2 hatasını harfiyen düzeltiyor: altı sentetik senaryonun tamamı 'TypeError: _day_of() takes 1 positional argument but 2 were given' hatası verdi. Layer-2 test düzeneği, proxy üzerindeki her çağrılabilir özniteliği bir BOUND metodu olarak yeniden bağlıyor, bu yüzden @staticmethod yardımcıları _day_of/_hour_of ilk argüman olarak instance'ı, ikinci argüman olarak da bar'ı aldı. Düzeltme: her ikisi artık düz instance metotları (self, bar) — çağrı noktaları zaten self._day_of(bar)/self._hour_of(bar) kullanıyordu, bu yüzden başka bir şey değişmedi ve motor altındaki davranış aynı. İkinci olarak, aynı yardımcı yolda savunmacı bir değişiklik: test düzeneğinin bildirdiği zaman damgası (1735690980000) MILLISECONDS cinsindenken motor nanosaniye sağlıyor; eski kod koşulsuz olarak 1e9'e bölüyordu, bu da test düzeneği altında her sentetik barı aynı saat/güne çökertip oturum mantığını dondururdu (TypeError giderildikten sonra ortaya çıkacak gizli bir ikinci Layer-2 hatası). Yeni _epoch_secs() büyüklüğe göre normalize eder (ns/us/ms/s) ve gerçek nanosaniye barları için hiçbir etkisi yoktur, bu yüzden Layer-3 ve gerçek backtest etkilenmez. Sinyal şekli, giriş/çıkış kuralları, ATR, pozisyon büyüklüğü, import'lar ve sınıf yapısı, Layer 1'yi zaten geçmiş olan koddan aksi halde değiştirilmemiştir.
İyi ölçülmüş tam geçmiş örnekleminde negatif-beklenti önermesi. 2020-2026 boyunca 594 işlemde Asia->US oturum-taşınımı para kaybediyor: profit_factor 0.937 (<1), total_return -9.81%, beklenti -$17.34/işlem, Sharpe -0.15, CI [-0.760, 0.458] sıfırı kapsıyor, information_ratio -0.76. Tek pozitif yıl 2020 (+15.3%); o günden sonraki her yıl negatif veya durağan (2021 -8.1, 2022 -5.8, 2025 -10.8) ve yuvarlanan Sharpe 2026 itibarıyla -8.3'e yöneliyor — 'büyük Asia hareketi US hareketini öngörür' hipotezi basitçe doğrulanmıyor. Ayrıca komisyon açısından sınırda: avg_trade_return_pct 0.110%, 0.15% Binance USD-M tabanının (L22) altında. Yalnızca 2 serbest parametre ve net-negatif yönlü avantajla, ince ayar var olmayan bir avantajın işaretini tersine çeviremez. Bu fee_edge/no_edge net-kaybettiren imzası — 2 saatlik optimizasyona değmez.
Uygulama
BTCUSDT.BINANCE USD-M perpetual, 1H barlar, long-short gün içi oturum öncü-gecikme (lead-lag). Her UTC günü, Asia-oturumu getirisi (00:00-08:00 UTC açılıştan kapanışa) kademeli olarak biriktirilir ve son 30 Asia getirisinin standart sapmasıyla (ATR tabanlı dağılım geri dönüşü, bu geçmiş ısınırken) normalize edilerek her barda döndürülen sürekli, ölçekten bağımsız bir z-skoru elde edilir. US-oturumu açılış saatinde (13:00 UTC), strateji |z| >= entry_z olduğunda Asia hareketiyle aynı SAME yönünde pozisyona girer, takvim günü başına en fazla bir giriş yapılır. US-oturumu kapanış saatinde (20:00 UTC) çıkış yapılır, böylece defter gecelik olarak FLAT kalır (finansman yok, gap riski yok) veya bir ATR tabanlı stop (stop_atr_mult x ATR, tabanı min_stop_pct) ile daha erken çıkılır. Pozisyon büyüklüğü, stop mesafesi boyunca özkaynağın risk_frac'ini riske atar, brüt özkaynağın max_notional_frac katıyla sınırlıdır. Tüm durum (ATR, oturum getirisi, dağılım deque'i) bar başına O(1)'tür; gün geçişi bar sayacına değil, barın kendi zaman damgasına dayanır.
Doğrulama Sonuçları
CLEAN RESTART 2026-09-04 — bu koşumun karar geçmişi ve öğrenme kayıtları kaldırıldı ve doğrulamadan yeniden başlatıldı. Önceki terk edilişi piyasadan değil, pipeline'dan kaynaklandı: Layer-2 test düzeneği @staticmethod yardımcılarını yanlış bağladı (düzeltildi), QA optimize edilmemiş bir smoke test üzerinde nihai performans kararları verdi (kaldırıldı — QA artık yalnızca doğruluğu değerlendiriyor) ve sandbox zaman aşımları backtest-slot açlığından kaynaklanıyordu (düzeltildi). Hipotez ve strateji kodu değişmedi. Kodu kendi değeri üzerinden doğrulayın; performansa daha sonra tam backtest ve optimizer tarafından karar verilecek.
Kod sınırlamalarıyla eşleşen _param_bounds = {entry_z: [...], stop_atr_mult: [...]} ekleyin; tüm oturum-saati/ATR/risk sabitlerini bunun dışında tutun.
Config, best-of-225-deneme deflasyon cezasını en aza indirmek için hipotezin 'yalnızca 2 FREE parametre' üzerine kurulu olmasına rağmen NO _param_bounds bildiriyor. Bu olmadan optimizer'ın onu {entry_z, stop_atr_mult}'e bağlayan açık bir yüzeyi yok, bu da 2-parametre disiplinini zayıflatıyor. Bir doğruluk kusuru değil.
Tüm pencere için us_exit_hour=21 olarak ayarlayın veya 20:00'yi amaçlandığı şekilde belgeleyin.
Hipotez US oturumunu 13:00-21:00 UTC olarak adlandırıyor, ancak us_exit_hour 20, bu da bir saat erken düzleşmeyi (flat) zorunlu kılıyor. Küçük bir fark, mekanizmayı veya gecelik-düz (flat-overnight) değişmezliğini değiştirmiyor.
Geriye Dönük Test İncelemesi
Sharpe
-0,15
Toplam Getiri
-9,81%
Maksimum Düşüş
23,40%
Toplam İşlem
594
Kazanma Oranı
44,8%
Kâr Faktörü
0,94
İyi ölçülmüş: tam 2020-2026 1H geçmişi boyunca 594 işlem, dengeli long/short (293/301), temiz uygulama (594 sinyal verildi, 594 gönderildi, düşüş yok)
Gerçekten farklı bir gün içi oturum öncü-gecikme ailesi; gecelik düz, düşük benchmark korelasyonu (0.025), tamamlayıcı-veri-akışı bağımlılığı yok
avg_trade_return_pct 0.110%, 0.15% Binance USD-M komisyon tabanının altında — negatif beklentiyi göz ardı etsek bile komisyon açısından sınırda
Yalnızca 2020 (+15.3%) anlamlı ölçüde pozitif; sonraki her yıl negatif veya durağan (2025 -10.8%), yuvarlanan Sharpe 2026 itibarıyla -8.3'e yöneliyor — oturum-taşınım (session-carryover) önermesinin kalıcı bir avantajı yok
return_kurtosis 78.6 — düzgün bir avantajdan çok, düzensiz/parçalı bir tape (örn. 2023-08-29 tarihinde bir -6.07% günü)
İterasyon Geçmişi
Doğrulama başarısız oldu (Layer 2 — sentetik senaryolar): Kullanılan parametreler: ['entry_z', 'min_bars', 'risk_frac', 'atr_period', 'min_notional', 'min_stop_pct', 'min_vol_days', 'us_exit_hour', 'asia_end_hour', 'stop_atr_mult', 'us_entry_hour', 'asia_start_hour', 'max_notional_frac', 'vol_lookback_days'] __init__'in self.parameters.get()'ten tüm öznitelikleri ayarladığından emin olun. - steady_uptrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar……Daha fazla gösterDaha az göster
Doğrulama başarısız oldu (Layer 2 — sentetik senaryolar):
Kullanılan parametreler: ['entry_z', 'min_bars', 'risk_frac', 'atr_period', 'min_notional', 'min_stop_pct', 'min_vol_days', 'us_exit_hour', 'asia_end_hour', 'stop_atr_mult', 'us_entry_hour', 'asia_start_hour', 'max_notional_frac', 'vol_lookback_days']
__init__'in self.parameters.get()'ten tüm öznitelikleri ayarladığından emin olun.
- steady_uptrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000)
- steady_downtrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000)
- flat_ranging: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000)
- volatility_spike: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000)
- zero_volume: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000)
- price_gap: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000)
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.