Hoppa till innehåll
Alla strategier

Strategier

BTC Cross-Session Momentum Carryover — Long-Short, Single-Instrument OHLCV: Riktningen för ASIA-sessionens rörelse förutsäger US-sessionens rörelse; handla US-sessionen i den riktningen ONLY när Asien-rörelsen är stor, flat över natten (BINANCE BTCUSDT USD-M, 1H-staplar, intradag, 2-parameter)

Utfall: Övergiven

BtcAsiaToUsSessionCarryoverLS

Välmätt: 594 affärer över hela historiken på 2020-2026 1H, balanserad long/short (293/301), ren exekvering (594 signalerade, 594 skickade, inga bortfall)

Hypotes

En LONG-SHORT, SINGLE-INSTRUMENT, ren-OHLCV INTRADAY-strategi på BTCUSDT.BINANCE USD-M perpetual i en genuint annorlunda familj från allt som väntar eller är dött här — den är NOT en trend/breakout (dual-TF momentum, SuperTrend, Donchian, ORB), NOT en mean-reversion/fade (båda döda), och NOT en kompletterande-feed-signal (alla nettoförlorare). Den utnyttjar en intradag SESSION LEAD-LAG: den riktningston som sätts under den lågparticipationsrika ASIA-sessionen (00:00-08:00 UTC) tenderar att PERSIST in i den mer……Visa merVisa mindre

En LONG-SHORT, SINGLE-INSTRUMENT, ren-OHLCV INTRADAY-strategi på BTCUSDT.BINANCE USD-M perpetual i en genuint annorlunda familj från allt som väntar eller är dött här — den är NOT en trend/breakout (dual-TF momentum, SuperTrend, Donchian, ORB), NOT en mean-reversion/fade (båda döda), och NOT en kompletterande-feed-signal (alla nettoförlorare). Den utnyttjar en intradag SESSION LEAD-LAG: den riktningston som sätts under den lågparticipationsrika ASIA-sessionen (00:00-08:00 UTC) tenderar att PERSIST in i den mer likvida US-sessionen (13:00-21:00 UTC), eftersom US/institutionellt flöde fortsätter rörelsen snarare än att vända den. Varje UTC-dag mäts tecken och storlek på Asien-sessionens avkastning; när Asien-rörelsen är LARGE (en verklig riktningssignal, inte brus), går strategin in i US-sessionen i SAME-riktningen och håller endast för den sessionen, och går FLAT över natten (ingen finansieringsexponering, ingen nattlig gap, ingen flerdagars trendrisk). Detta skiljer sig från den väntande BTC öppningsintervall-breakouten (som handlar ett intervall BREAKOUT av de första timmarna) — här finns ingen breakout; det är en riktnings-CARRYOVER av en redan etablerad sessionsrörelse in i en senare, separat session. Den behåller de överlevnadsbara invarianterna (single-instrument, ren OHLCV med fullständig 2020-2026 1H-historia, long-short, ingen kompletterande feed enligt nettoförlorar-lektionen, inget andra ben per L69) och är byggd för de statistiska grindarna: en nästan daglig kadens ger ett LARGE affärsantal (>100/år) som klarar mätbarhetstesttråden och snävar in den deflaterade Sharpe-uppskattningen, och endast 2 FREE parametrar (Asien-rörelse-posttröskel, ATR stopp-multipel) minimerar best-of-225-trial deflationsstraffen. Den fyller också den underrepresenterade kortsiktiga horisont-bucket (8.6% vs 10%).

Iteration 2 åtgärdar Layer-2-felet ordagrant: alla sex syntetiska scenarier gav ”TypeError: _day_of() takes 1 positional argument but 2 were given”. Layer-2-harnessen binder om varje anropsbart attribut på proxyn som en BOUND-metod, så @staticmethod-hjälpfunktionerna _day_of/_hour_of fick instansen som sitt första argument och stapeln som sitt andra. Åtgärd: båda är nu vanliga instansmetoder (self, bar) — anropsställena använde redan self._day_of(bar)/self._hour_of(bar), så inget annat ändrades och beteendet i……Visa merVisa mindre

Iteration 2 åtgärdar Layer-2-felet ordagrant: alla sex syntetiska scenarier gav ”TypeError: _day_of() takes 1 positional argument but 2 were given”. Layer-2-harnessen binder om varje anropsbart attribut på proxyn som en BOUND-metod, så @staticmethod-hjälpfunktionerna _day_of/_hour_of fick instansen som sitt första argument och stapeln som sitt andra. Åtgärd: båda är nu vanliga instansmetoder (self, bar) — anropsställena använde redan self._day_of(bar)/self._hour_of(bar), så inget annat ändrades och beteendet i motorn är identiskt. En annan defensiv ändring i samma hjälpfunktionsväg: harnessen rapporterade tidsstämpeln (1735690980000) i MILLISECONDS, medan motorn levererar nanosekunder; den gamla koden dividerade ovillkorligen med 1e9, vilket i harnessen skulle slå ihop varje syntetisk stapel till samma timme/dag och låsa sessionslogiken (ett latent andra Layer-2-fel när TypeError hade försvunnit). Den nya _epoch_secs() normaliserar efter magnitud (ns/us/ms/s) och är en no-op för riktiga nanosekundsstaplar, så Layer-3 och det verkliga backtestet påverkas inte. Signalform, regler för in- och utträde, ATR, positionsstorlek, importer och klassstruktur är i övrigt oförändrade från koden som redan klarade Layer 1.

Premiss med negativ förväntan på ett väl uppmätt fullständigt historiskt urval. Över 594 affärer över 2020-2026 förlorar Asien->US-sessionsöverföringen pengar: profit_factor 0.937 (<1), total_return -9.81%, förväntan -$17.34/affär, Sharpe -0.15 med CI [-0.760, 0.458] som korsar noll, information_ratio -0.76. Det enda positiva året är 2020 (+15.3%); varje år sedan dess är negativt eller plant (2021 -8.1, 2022 -5.8, 2025 -10.8) med rullande Sharpe som tenderar till -8.3 vid 2026 — hypotesen 'stor Asien-rörelse förutsäger US-rörelsen' bekräftas helt enkelt inte. Den är också avgiftsmarginal: avg_trade_return_pct 0.110% ligger under 0.15% Binance USD-M-golvet (L22). Med endast 2 fria parametrar och en netto-negativ riktningseffekt kan justering inte vända tecknet på en effekt som inte finns. Detta är fee_edge/no_edge nettoförlorar-signaturen — inte värd 2 timmars optimering.

Implementation

BTCUSDT.BINANCE USD-M perpetual, 1H staplar, long-short intradag-session lead-lag. Varje UTC-dag ackumuleras Asien-sessionens avkastning (00:00-08:00 UTC öppen-till-stängd) stegvis och normaliseras med standardavvikelsen för de senaste 30 Asien-avkastningarna (ATR-baserad spridningsreserv medan den historiken värms upp), vilket ger ett kontinuerligt skalinvariant z-score som returneras vid varje stapel. Vid US-sessionens öppningstimme (13:00 UTC) går strategin in i SAME-riktningen som Asien-rörelsen när |z| >= entry_z, högst en post per kalenderdag. Den avslutar vid US-sessionens stängningstimme (20:00 UTC) så att boken är FLAT över natten (ingen finansiering, ingen gap-risk), eller tidigare på en ATR-baserad stopp (stop_atr_mult x ATR, golvad vid min_stop_pct). Storleksbestämning riskerar risk_frac av eget kapital över stoppavståndet, takad vid max_notional_frac x eget kapital brutto. Allt tillstånd (ATR, sessionsavkastning, spridningsdeque) är O(1) per stapel; dagsrullningen är förankrad på stapelns egen tidsstämpel, inte en stapelräknare.

Verifieringsresultat

CLEAN RESTART 2026-09-04 — denna körnings verdikthistorik och inlärningsregister togs bort och den startades om från verifiering. Dess tidigare övergivande kom från pipelinen, inte från marknaden: Layer-2-harnessen band felaktigt @staticmethod-hjälpare (åtgärdat), QA utfärdade terminala prestandautslag på ett ooptimerat röktest (borttaget — QA bedömer nu endast korrekthet), och sandbox-timeouts kom från backtest-platsbrist (åtgärdat). Hypotesen och strategikoden är oförändrade. Verifiera koden på dess egna meriter; prestanda beslutas senare av den fullständiga backtesten och optimeraren.

Lägg till _param_bounds = {entry_z: [...], stop_atr_mult: [...]} som matchar kodens begränsningar; håll alla konstanter för sessionstimmar/ATR/risk utanför den.

Konfigurationen deklarerar NO _param_bounds trots att hypotesen vilar på 'endast 2 FREE parametrar' för att minimera best-of-225-trial deflationsstraffen. Utan den har optimeraren ingen explicit yta som kopplar den till {entry_z, stop_atr_mult}, vilket undergräver 2-parameterdisciplinen. Inte ett korrekthetsfel.

Sätt us_exit_hour=21 för hela fönstret, eller dokumentera 20:00 som avsiktligt.

Hypotesen benämner US-sessionens 13:00-21:00 UTC, men us_exit_hour är 20, vilket tvingar fram en flat position en timme för tidigt. Mindre avvikelse, ändrar inte mekanismen eller invarianten för flat över natten.

Backtestgranskning

Sharpe
-0,15
Total avkastning
-9,81%
Max drawdown
23,40%
Totalt antal affärer
594
Vinstandel
44,8%
Vinstfaktor
0,94

Välmätt: 594 affärer över hela historiken på 2020-2026 1H, balanserad long/short (293/301), ren exekvering (594 signalerade, 594 skickade, inga bortfall)

Genuint distinkt intradagsfamilj med sessionsbaserad ledarförskjutning; flat över natten, låg korrelation med benchmark (0.025), inget beroende av kompletterande flödessignaler

Nettoförlorare: profit_factor 0.937 (<1), total_return -9.81%, förväntan -$17.34/affär, Sharpe -0.15 (CI korsar noll), information_ratio -0.76

avg_trade_return_pct 0.110% ligger under Binances 0.15% USD-M-avgiftsgolv — marginell med hänsyn till avgifter även om den negativa förväntningen ignoreras

Endast 2020 (+15.3%) är meningsfullt positivt; varje efterföljande år är negativt eller oförändrat (2025 -10.8%), rullande Sharpe-trend mot -8.3 vid 2026 — premissen om sessionsöverföring har ingen bestående fördel

return_kurtosis 78.6 — hackig prisrörelse (t.ex. en -6.07%-dag på 2023-08-29) snarare än en jämn fördel

Iterationshistorik

Verifiering misslyckades (Layer 2 — syntetiska scenarier): Parametrar som användes: ['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'] Kontrollera att __init__ sätter alla attribut från self.parameters.get(). - steady_uptrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (stapelns……Visa merVisa mindre

Verifiering misslyckades (Layer 2 — syntetiska scenarier): Parametrar som användes: ['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'] Kontrollera att __init__ sätter alla attribut från self.parameters.get(). - steady_uptrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (stapelns tidsstämpel: 1735690980000) - steady_downtrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (stapelns tidsstämpel: 1735690980000) - flat_ranging: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (stapelns tidsstämpel: 1735690980000) - volatility_spike: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (stapelns tidsstämpel: 1735690980000) - zero_volume: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (stapelns tidsstämpel: 1735690980000) - price_gap: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (stapelns tidsstämpel: 1735690980000)

Stratmill är ett research- och pappershandelsverktyg, inte finansiell rådgivning eller en mäklare. Backtest- och pappershandelsresultat är hypotetiska. Handel innebär risk för förlust.