Naar inhoud gaan
Alle strategieën

Strategieën

BTC overdracht van momentum tussen sessies — long-short, één instrument OHLCV: de richting van de beweging in de ASIA-sessie voorspelt de beweging in de US-sessie; handel in de US-sessie in die richting ONLY wanneer de beweging in Azië groot is, en blijf 's nachts vlak (BINANCE BTCUSDT USD-M, 1H-bars, intraday, 2-parameterstrategie)

Uitkomst: Gestaakt

BtcAsiaToUsSessionCarryoverLS

Goed gemeten: 594 transacties over de volledige geschiedenis van 2020-2026 1H, evenwichtig long/short (293/301), schone uitvoering (594 signalen, 594 ingediend, geen uitval)

Hypothese

Een LONG-SHORT, SINGLE-INSTRUMENT, pure-OHLCV INTRADAY-strategie op BTCUSDT.BINANCE USD-M perpetual in een werkelijk andere familie van alles wat hier in afwachting is of dood is — het is NOT een trend/breakout (dual-TF-momentum, SuperTrend, Donchian, ORB), NOT een mean-reversion/fade (beide dood), en NOT een supplementary-feed-signaal (allemaal netto verliezers). Het exploiteert een intraday-SESSION LEAD-LAG: de directionele toon die wordt gezet tijdens de laag-participatie ASIA-sessie (00:00-08:00 UTC) neigt……Meer tonenMinder tonen

Een LONG-SHORT, SINGLE-INSTRUMENT, pure-OHLCV INTRADAY-strategie op BTCUSDT.BINANCE USD-M perpetual in een werkelijk andere familie van alles wat hier in afwachting is of dood is — het is NOT een trend/breakout (dual-TF-momentum, SuperTrend, Donchian, ORB), NOT een mean-reversion/fade (beide dood), en NOT een supplementary-feed-signaal (allemaal netto verliezers). Het exploiteert een intraday-SESSION LEAD-LAG: de directionele toon die wordt gezet tijdens de laag-participatie ASIA-sessie (00:00-08:00 UTC) neigt tot PERSIST in de hogere-liquiditeit US-sessie (13:00-21:00 UTC), aangezien US/institutionele flow de beweging voortzet in plaats van deze omkeert. Elke UTC-dag worden het teken en de grootte van het Azië-sessie-rendement gemeten; wanneer de Azië-beweging LARGE is (een echt directioneel signaal, geen ruis), betreedt de strategie de US-sessie in de SAME-richting en houdt alleen voor die sessie vast, en gaat FLAT 's nachts door (geen funding-blootstelling, geen overnight-gap, geen meerdaags trendrisico). Dit is onderscheidend van de in afwachting zijnde BTC-opening-range-breakout (die een range BREAKOUT van de eerste uren verhandelt) — hier is geen breakout; het is een directionele CARRYOVER van een reeds-gevestigde sessiebeweging in een latere, afzonderlijke sessie. Het behoudt de overlevingsinvarianten (single-instrument, pure OHLCV met volledige 2020-2026 1H-historie, long-short, geen supplementary-feed volgens de netto-verliezer-les, geen tweede been volgens L69) en is gebouwd voor de statistische poorten: een bijna-dagelijkse cadans levert een LARGE-handelscount op (>100/jr) die de meetbaarheid-tripwire wist en de deflated-Sharpe-schatting aanscherpt, en slechts 2 FREE-parameters (Azië-beweging-instapdrempel, ATR-stopmultiple) minimaliseren de best-of-225-trial-deflatiepenalty. Het vult ook de ondervertegenwoordigde korte-horizon-bucket (8.6% vs 10%).

Iteratie 2 verhelpt de Layer-2-fout letterlijk: in alle zes synthetische scenario's trad 'TypeError: _day_of() takes 1 positional argument but 2 were given' op. De Layer-2-harness bindt elk aanroepbaar attribuut op de proxy opnieuw als een BOUND-methode, waardoor de @staticmethod-helpers _day_of/_hour_of de instantie als eerste argument en de bar als tweede ontvingen. Oplossing: beide zijn nu gewone instantiemethoden (self, bar) — de aanroepen gebruikten al self._day_of(bar)/self._hour_of(bar), dus verder is……Meer tonenMinder tonen

Iteratie 2 verhelpt de Layer-2-fout letterlijk: in alle zes synthetische scenario's trad 'TypeError: _day_of() takes 1 positional argument but 2 were given' op. De Layer-2-harness bindt elk aanroepbaar attribuut op de proxy opnieuw als een BOUND-methode, waardoor de @staticmethod-helpers _day_of/_hour_of de instantie als eerste argument en de bar als tweede ontvingen. Oplossing: beide zijn nu gewone instantiemethoden (self, bar) — de aanroepen gebruikten al self._day_of(bar)/self._hour_of(bar), dus verder is niets gewijzigd en het gedrag onder de engine is identiek. Tweede, defensieve wijziging in hetzelfde helperpad: de door de harness gerapporteerde tijdstempel (1735690980000) is in MILLISECONDS, terwijl de engine nanoseconden aanlevert; de oude code deelde onvoorwaardelijk door 1e9, waardoor elke synthetische bar onder de harness in hetzelfde uur en dezelfde dag zou vallen en de sessielogica zou vastlopen (een latente tweede Layer-2-fout zodra de TypeError was opgelost). De nieuwe _epoch_secs() normaliseert op basis van grootte (ns/us/ms/s) en doet niets met echte bars in nanoseconden, zodat Layer-3 en de echte backtest onaangetast blijven. De signaalvorm, instap- en uitstapregels, ATR, positiegrootte, imports en klassestructuur zijn verder ongewijzigd ten opzichte van de code die Layer 1 al doorstond.

Premisse met negatieve verwachting op een goed-gemeten full-history-steekproef. Over 594 trades verdeeld over 2020-2026 verliest de Azië->US-sessie-doorvoer geld: profit_factor 0.937 (<1), total_return -9.81%, verwachting -$17.34/trade, Sharpe -0.15 met CI [-0.760, 0.458] die nul omspant, information_ratio -0.76. Het enige positieve jaar is 2020 (+15.3%); elk jaar sindsdien is negatief of vlak (2021 -8.1, 2022 -5.8, 2025 -10.8) met rolling-Sharpe die naar -8.3 neigt tegen 2026 — de hypothese 'grote Azië-beweging voorspelt de US-beweging' wordt simpelweg niet bevestigd. Het is ook fee-marginaal: avg_trade_return_pct 0.110% ligt onder de 0.15% Binance USD-M-vloer (L22). Met slechts 2 vrije parameters en een netto-negatieve directionele edge kan afstemming het teken niet omdraaien van een edge die niet bestaat. Dit is de fee_edge/no_edge netto-verliezer-handtekening — niet 2 uur optimalisatie waard.

Implementatie

BTCUSDT.BINANCE USD-M perpetual, 1H-bars, intraday-sessie-lead-lag long-short. Elke UTC dag wordt het rendement van de Aziatische sessie (00:00-08:00 UTC open-tot-slot) incrementeel opgebouwd en genormaliseerd met de standaarddeviatie van de laatste 30 Aziatische rendementen (ATR-gebaseerde spreidingsfallback terwijl die geschiedenis wordt opgebouwd), wat een continue, schaalinvariante z-score oplevert die bij elke bar wordt teruggegeven. Op het openingsuur van de US-sessie (13:00 UTC) opent de strategie een……Meer tonenMinder tonen

BTCUSDT.BINANCE USD-M perpetual, 1H-bars, intraday-sessie-lead-lag long-short. Elke UTC dag wordt het rendement van de Aziatische sessie (00:00-08:00 UTC open-tot-slot) incrementeel opgebouwd en genormaliseerd met de standaarddeviatie van de laatste 30 Aziatische rendementen (ATR-gebaseerde spreidingsfallback terwijl die geschiedenis wordt opgebouwd), wat een continue, schaalinvariante z-score oplevert die bij elke bar wordt teruggegeven. Op het openingsuur van de US-sessie (13:00 UTC) opent de strategie een positie in dezelfde SAME richting als de beweging in Azië wanneer |z| >= entry_z, met maximaal één instap per kalenderdag. De positie wordt gesloten op het slotuur van de US-sessie (20:00 UTC), zodat de positie 's nachts FLAT is (geen funding, geen gaprisico), of eerder bij een stop gebaseerd op ATR (stop_atr_mult x ATR, met een ondergrens van min_stop_pct). De positiegrootte riskeert risk_frac van het eigen vermogen over de stopafstand, met een limiet van max_notional_frac x het eigen vermogen bruto. Alle status (ATR, sessierendement, spreidingsdeque) kost O(1) per bar; de dagomslag is verankerd aan de eigen tijdstempel van de bar, niet aan een barteller.

Verificatieresultaten

CLEAN RESTART 2026-09-04 — de verdictgeschiedenis en leerrecords van deze run zijn verwijderd en deze is opnieuw gestart vanaf verificatie. De eerdere afstoting was afkomstig van de pipeline, niet van de markt: de Layer-2-harness bond @staticmethod-helpers verkeerd (verholpen), QA gaf terminale prestatie-verdicts op een niet-geoptimaliseerde smoke-test (verwijderd — QA beoordeelt nu alleen correctheid), en sandbox-time-outs kwamen door backtest-slot-uithongering (verholpen). De hypothese en de strategiecode zijn ongewijzigd. Verifieer de code op zijn merites; prestatie wordt later beslist door de volledige backtest en de optimizer.

Voeg _param_bounds = {entry_z: [...], stop_atr_mult: [...]} toe, in overeenstemming met de clamps in de code; houd alle constanten voor sessie-uren/ATR/risico erbuiten.

De configuratie declareert NO _param_bounds, terwijl de hypothese steunt op 'slechts 2 FREE parameters' om de deflatieboete van de beste van -225 pogingen te minimaliseren. Zonder deze instelling heeft de optimizer geen expliciet zoekoppervlak dat hem bindt aan {entry_z, stop_atr_mult}, wat de discipline van 2 parameters ondermijnt. Dit is geen defect in de correctheid.

Stel us_exit_hour=21 in voor het volledige venster, of documenteer 20:00 als beoogde instelling.

De hypothese noemt het US van de 13:00-21:00-sessie UTC, maar us_exit_hour is 20, waardoor de strategie een uur te vroeg vlak gaat. Dit is klein en verandert noch het mechanisme, noch de invariant dat posities 's nachts vlak zijn.

Backtest-review

Sharpe
-0,15
Totaal rendement
-9,81%
Maximale drawdown
23,40%
Totaal aantal trades
594
Winratio
44,8%
Winstfactor
0,94

Goed gemeten: 594 transacties over de volledige geschiedenis van 2020-2026 1H, evenwichtig long/short (293/301), schone uitvoering (594 signalen, 594 ingediend, geen uitval)

Werkelijk onderscheidende intradayfamilie van lead-lag tussen sessies; 's nachts vlak, lage correlatie met de benchmark (0.025), geen afhankelijkheid van aanvullende datafeeds

Netto verliezer: profit_factor 0.937 (<1), total_return -9.81%, verwachting -$17.34/trade, Sharpe -0.15 (CI omspant nul), information_ratio -0.76

avg_trade_return_pct 0.110% ligt onder de 0.15% Binance USD-M-feevloer — fee-marginaal zelfs als de negatieve verwachting wordt genegeerd

Alleen 2020 (+15.3%) is betekenisvol positief; elk daaropvolgend jaar is negatief of vlak (2025 -10.8%), en de rollende Sharpe daalt naar -8.3 tegen 2026 — het uitgangspunt van sessieoverdracht heeft geen aanhoudend voordeel

return_kurtosis 78.6 — grillige koersbewegingen (bijvoorbeeld een dag van -6.07% op 2023-08-29) in plaats van een gelijkmatige edge

Iteratiegeschiedenis

Verificatie mislukt (Layer 2 — synthetische scenario's): Gebruikte parameters: ['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'] Controleer of __init__ alle attributen instelt via self.parameters.get(). - steady_uptrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (tijdstempel van bar:……Meer tonenMinder tonen

Verificatie mislukt (Layer 2 — synthetische scenario's): Gebruikte parameters: ['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'] Controleer of __init__ alle attributen instelt via self.parameters.get(). - steady_uptrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (tijdstempel van bar: 1735690980000) - steady_downtrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (tijdstempel van bar: 1735690980000) - flat_ranging: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (tijdstempel van bar: 1735690980000) - volatility_spike: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (tijdstempel van bar: 1735690980000) - zero_volume: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (tijdstempel van bar: 1735690980000) - price_gap: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (tijdstempel van bar: 1735690980000)

Stratmill is een onderzoeks- en papertrading-tool, geen financieel advies of broker. Backtest- en paperresultaten zijn hypothetisch. Handelen brengt risico op verlies met zich mee.