Hopp til innhold
Alle strategier

Strategier

BTC Kryss-sesjons momentumoverføring — Long-Short, enkeltinstrument OHLCV: Retningen på ASIA-sesjonens bevegelse forutsier US-sesjonens bevegelse; handle US-sesjonen i den retningen ONLY når Asia-bevegelsen er stor, flat over natten (BINANCE BTCUSDT USD-M, 1H-stolper, intradag, 2-parameter)

Utfall: Forlatt

BtcAsiaToUsSessionCarryoverLS

Godt målt: 594 handler over hele 2020-2026 1H-historikken, balansert long/short (293/301), ren utførelse (594 signalisert, 594 sendt inn, ingen bortfall)

Hypotese

En LONG-SHORT, SINGLE-INSTRUMENT, ren-OHLCV INTRADAY-strategi på BTCUSDT.BINANCE USD-M perpetual i en genuint annen familie fra alt som er ventende eller dødt her — den er NOT en trend/breakout (dual-TF momentum, SuperTrend, Donchian, ORB), NOT en mean-reversion/fade (begge døde), og NOT et supplementary-feed-signal (alle netto tapere). Den utnytter en intradag SESSION LEAD-LAG: den retningsbestemte tonen som settes under ASIA-sesjonen med lav deltakelse (00:00-08:00 UTC) tenderer mot å PERSIST inn i den mer……Vis merVis mindre

En LONG-SHORT, SINGLE-INSTRUMENT, ren-OHLCV INTRADAY-strategi på BTCUSDT.BINANCE USD-M perpetual i en genuint annen familie fra alt som er ventende eller dødt her — den er NOT en trend/breakout (dual-TF momentum, SuperTrend, Donchian, ORB), NOT en mean-reversion/fade (begge døde), og NOT et supplementary-feed-signal (alle netto tapere). Den utnytter en intradag SESSION LEAD-LAG: den retningsbestemte tonen som settes under ASIA-sesjonen med lav deltakelse (00:00-08:00 UTC) tenderer mot å PERSIST inn i den mer likvide US-sesjonen (13:00-21:00 UTC), ettersom US/institusjonell flow fortsetter bevegelsen i stedet for å reversere den. Hver UTC-dag måles fortegnet og størrelsen på Asia-sesjonens avkastning; når Asia-bevegelsen er LARGE (et reelt retningsbestemt signal, ikke støy), går strategien inn i US-sesjonen i SAME-retningen og holder kun for den sesjonen, og går FLAT over natten (ingen fundingeksponering, ingen overnatt-gap, ingen flerdagers trendrisiko). Dette er forskjellig fra den ventende BTC opening-range breakout (som trader et område BREAKOUT av de første timene) — her er det ingen breakout; det er en retningsbestemt CARRYOVER av en allerede etablert sesjonsbevegelse inn i en senere, separat sesjon. Den beholder de overlevelsesdyktige invariantene (enkeltinstrument, ren OHLCV med full 2020-2026 1H historie, long-short, ingen supplementary feed ifølge netto-taper-leksjonen, ingen andre ben ifølge L69) og er bygget for de statistiske portene: en nesten daglig kadens gir et LARGE handelsantall (>100/år) som passerer målbarhetsterskelen og strammer det deflaterte Sharpe-estimatet, og kun 2 FREE parametere (Asia-bevegelses-inngangsterskel, ATR stop-multiplikator) minimerer best-of-225-forsøk-deflasjonsstraffen. Den fyller også den underrepresenterte kort-horisont-bøtten (8.6% vs 10%).

Iterasjon 2 retter Layer-2-feilen ordrett: alle seks syntetiske scenarier utløste «TypeError: _day_of() takes 1 positional argument but 2 were given». Layer-2-selen binder hver kallbare attributt på proxyen på nytt som en BOUND-metode, slik at @staticmethod-hjelperne _day_of/_hour_of mottok instansen som sitt første argument og stolpen som det andre. Rettelse: begge er nå vanlige instansmetoder (self, bar) — kallstedene brukte allerede self._day_of(bar)/self._hour_of(bar), så ingenting annet ble endret, og……Vis merVis mindre

Iterasjon 2 retter Layer-2-feilen ordrett: alle seks syntetiske scenarier utløste «TypeError: _day_of() takes 1 positional argument but 2 were given». Layer-2-selen binder hver kallbare attributt på proxyen på nytt som en BOUND-metode, slik at @staticmethod-hjelperne _day_of/_hour_of mottok instansen som sitt første argument og stolpen som det andre. Rettelse: begge er nå vanlige instansmetoder (self, bar) — kallstedene brukte allerede self._day_of(bar)/self._hour_of(bar), så ingenting annet ble endret, og oppførselen under motoren er identisk. En annen defensiv endring i samme hjelpebane: selen rapporterte tidsstempelet (1735690980000) i MILLISECONDS, mens motoren leverer nanosekunder; den gamle koden delte ubetinget på 1e9, noe som under selen ville slått sammen hver syntetiske stolpe til samme time/dag og låst sesjonslogikken (en latent andre Layer-2-feil når TypeError var fjernet). Den nye _epoch_secs() normaliserer etter størrelsesorden (ns/us/ms/s) og er en no-op for ekte nanosekundstolper, så Layer-3 og den reelle backtesten påvirkes ikke. Signalform, inn- og utgangsregler, ATR, posisjonsstørrelse, importer og klassestruktur er ellers uendret fra koden som allerede besto Layer 1.

Negativ-forventningspremiss på et godt målt fullhistorisk utvalg. Over 594 handler på tvers av 2020-2026 taper Asia->US session-carryover penger: profit_factor 0.937 (<1), total_return -9.81%, forventning -$17.34/handel, Sharpe -0.15 med CI [-0.760, 0.458] som omslutter null, information_ratio -0.76. Det eneste positive året er 2020 (+15.3%); hvert år siden er negativt eller flatt (2021 -8.1, 2022 -5.8, 2025 -10.8) med rullende Sharpe som trender mot -8.3 innen 2026 — hypotesen om at «stor Asia-bevegelse predikerer US-bevegelsen» er ganske enkelt ikke bekreftet. Den er også gebyr-marginal: avg_trade_return_pct 0.110% er under 0.15% Binance USD-M-gulvet (L22). Med bare 2 frie parametere og en netto-negativ retningsbestemt edge kan ikke justering snu fortegnet på en edge som ikke eksisterer. Dette er fee_edge/no_edge netto-taper-signaturen — ikke verdt 2 timer med optimalisering.

Implementasjon

BTCUSDT.BINANCE USD-M perpetual, 1H-stolper, long-short intradag-ledetid. Hver UTC-dag akkumuleres avkastningen i Asia-sesjonen (00:00-08:00 UTC fra åpning til stenging) trinnvis og normaliseres med standardavviket til de siste 30 Asia-avkastningene (ATR-basert spredningsfallback mens historikken varmes opp), noe som gir en kontinuerlig skala-invariant z-skår returnert for hver stolpe. Ved åpningstimen for US-sesjonen (13:00 UTC) går strategien inn i SAME-retningen til Asia-bevegelsen når |z| >= entry_z, maksimalt én inngang per kalenderdag. Den går ut ved stengetimen for US-sesjonen (20:00 UTC), slik at boken er FLAT over natten (ingen funding, ingen gap-risiko), eller tidligere ved et ATR-basert stopp (stop_atr_mult x ATR, med gulv på min_stop_pct). Posisjonsstørrelsen risikerer risk_frac av egenkapitalen over stoppavstanden, begrenset til max_notional_frac x egenkapital brutto. All tilstand (ATR, sesjonsavkastning, spredningsdeque) er O(1) per stolpe; dagens rullering er forankret i stolpens eget tidsstempel, ikke en stolpeteller.

Verifiseringsresultater

CLEAN RESTART 2026-09-04 — denne kjøringens konklusjonshistorikk og læringsposter ble fjernet, og den ble startet på nytt fra verifisering. Den tidligere avbrytelsen skyldtes pipelinen, ikke markedet: Layer-2-selen bandt @staticmethod-hjelpere feil (rettet), QA avga endelige ytelseskonklusjoner på en uoptimalisert røyk-test (fjernet — QA vurderer nå kun korrekthet), og tidsavbrudd i sandkassen skyldtes mangel på backtest-plasser (rettet). Hypotesen og strategikoden er uendret. Verifiser koden ut fra dens egne meritter; ytelsen avgjøres senere av den fullstendige backtesten og optimizeren.

Legg til _param_bounds = {entry_z: [...], stop_atr_mult: [...]} som samsvarer med kodebegrensningene; hold alle konstanter for sesjonstimer/ATR/risiko utenfor.

Konfigurasjonen erklærer NO _param_bounds til tross for at hypotesen bygger på «bare 2 FREE parametere» for å minimere deflasjonsstraffen fra best-of-225-forsøk. Uten dette har optimizeren ingen eksplisitt overflate som knytter den til {entry_z, stop_atr_mult}, noe som undergraver disiplinen med 2 parametere. Ikke en korrekthetsfeil.

Sett us_exit_hour=21 for hele vinduet, eller dokumenter 20:00 som tilsiktet.

Hypotesen navngir US-sesjonens 13:00-21:00 UTC, men us_exit_hour er 20, noe som tvinger frem flat posisjon én time tidlig. Mindre avvik, som ikke endrer mekanismen eller invarianten om flat posisjon over natten.

Backtest-gjennomgang

Sharpe
-0,15
Total avkastning
-9,81%
Maks nedgang
23,40%
Totalt antall handler
594
Andel vinnende handler
44,8%
Profittfaktor
0,94

Godt målt: 594 handler over hele 2020-2026 1H-historikken, balansert long/short (293/301), ren utførelse (594 signalisert, 594 sendt inn, ingen bortfall)

Genuint distinkt intradag-familie for sesjonsledetid; flat over natten, lav benchmarkkorrelasjon (0.025), ingen avhengighet av supplerende feed

Netto taper: profit_factor 0.937 (<1), total_return -9.81%, forventning -$17.34/handel, Sharpe -0.15 (CI krysser null), information_ratio -0.76

avg_trade_return_pct 0.110% ligger under 0.15% Binance USD-M-gebyrgulvet — gebyrmarginal selv når negativ forventning ignoreres

Bare 2020 (+15.3%) er meningsfullt positiv; hvert påfølgende år er negativt eller flatt (2025 -10.8%), rullende Sharpe trender mot -8.3 innen 2026 — session-carryover-premisset har ingen vedvarende edge

return_kurtosis 78.6 — klumpete kursbevegelser (f.eks. en -6.07%-dag på 2023-08-29) snarere enn en jevn fordel

Iterasjonshistorikk

Verifisering mislyktes (Layer 2 — syntetiske scenarier): Parametere brukt: ['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'] Kontroller at __init__ setter alle attributter fra self.parameters.get(). - steady_uptrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() tar 1 posisjonsargument, men 2 ble gitt (stolpens tidsstempel:……Vis merVis mindre

Verifisering mislyktes (Layer 2 — syntetiske scenarier): Parametere brukt: ['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'] Kontroller at __init__ setter alle attributter fra self.parameters.get(). - steady_uptrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() tar 1 posisjonsargument, men 2 ble gitt (stolpens tidsstempel: 1735690980000) - steady_downtrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() tar 1 posisjonsargument, men 2 ble gitt (stolpens tidsstempel: 1735690980000) - flat_ranging: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() tar 1 posisjonsargument, men 2 ble gitt (stolpens tidsstempel: 1735690980000) - volatility_spike: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() tar 1 posisjonsargument, men 2 ble gitt (stolpens tidsstempel: 1735690980000) - zero_volume: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() tar 1 posisjonsargument, men 2 ble gitt (stolpens tidsstempel: 1735690980000) - price_gap: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() tar 1 posisjonsargument, men 2 ble gitt (stolpens tidsstempel: 1735690980000)

Stratmill er et forsknings- og papirhandelsverktøy, ikke finansiell rådgivning eller en megler. Backtest- og papirresultater er hypotetiske. Handel innebærer risiko for tap.