Naar inhoud gaan
Alle strategieën

Strategieën

Gediversifieerde intraday-impulsbarcontinuatieportefeuille over majors (long-short, Binance USD-M, 1H, eventgestuurde afzonderlijke instappen, limieten per positie en bruto, kostendekkende ATR-koersdoelen)

Uitkomst: Gestaakt

DiversifiedImpulseBarContinuationPortfolioLS1H

De problemen van te weinig trades en concentratie in één gebeurtenis zijn daadwerkelijk verholpen: 13,644 trades over 10 namen vullen elk venster goed, met engine-veilige afzonderlijke instappen en limieten per positie…

Hypothese

Een LONG-SHORT, MULTI-INSTRUMENT intraday-CONTINUATION-strategie die het signaal van de strategy factory uitvoert: EXPLICITLY-SANCTIONED, een veralgemenend impulsbar-continuatiesignaal als DIVERSIFIED PORTFOLIO over circa 10 Binance-USD-M-majors met lange historie (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC) op 1-HOUR-bars. Elk activum wordt onafhankelijk gevolgd; zodra een activum een abnormaal grote directionele stoot met hoog volume (impulsbar) laat zien, opent de strategie een afzonderlijke positie……Meer tonenMinder tonen

Een LONG-SHORT, MULTI-INSTRUMENT intraday-CONTINUATION-strategie die het signaal van de strategy factory uitvoert: EXPLICITLY-SANCTIONED, een veralgemenend impulsbar-continuatiesignaal als DIVERSIFIED PORTFOLIO over circa 10 Binance-USD-M-majors met lange historie (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC) op 1-HOUR-bars. Elk activum wordt onafhankelijk gevolgd; zodra een activum een abnormaal grote directionele stoot met hoog volume (impulsbar) laat zien, opent de strategie een afzonderlijke positie in de richting van die stoot om de daaropvolgende continuatie op korte termijn te benutten. Dit is de door analisten aanbevolen innovatieroute (de impulscontinuatiefamilie wordt herhaaldelijk als 'generaliserend' aangemerkt; single-asset ETH-1H-, SOL-1H- en BTC-1H-HL-varianten bestaan), veralgemenend naar een PORTFOLIO om specifiek de twee faalwijzen aan te pakken die bijna alle recente stopzettingen veroorzaakten: (1) LOW BREADTH / concentratie in één gebeurtenis (het 3-namen tellende HL-boek kwam uit op 68% DD als hefboom-bèta; uitbraken in één naam waren 2021-geconcentreerd) — opgelost doordat impulsgebeurtenissen op verschillende momenten plaatsvinden bij verschillende, imperfect gecorreleerde namen, zodat de TRADE STREAM wordt gespreid in plaats van gecorreleerde directionele bèta op te stapelen; en (2) TRADE-SPARSITY (de 26-trade CoinM Donchian kon de walk-forward niet vullen; OOS vensters bleven leeg) — opgelost doordat circa 10 namen × frequente 1H-impulsen honderden trades per jaar opleveren, zodat elk walk-forward-/holdoutvenster goed gevuld is. Het is NOT een verboden verfijning van een momentummandje (andere signaalklasse: afzonderlijke intraday-stootcontinuatie, geen SMA/trendstatus op basis van voortschrijdend rendement), NOT single-asset TSM (dood), NOT een trage uitbraak (regimegebroken), NOT mean reversion (dood), NOT opties/spot (geblokkeerd). Van meet af aan engine-veilig: afzonderlijke éénmalige instap-/uitstapgebeurtenissen, maximaal één positie per activum, een nominale positielimiet plus een limiet voor de GROSS-blootstelling van de portefeuille — nooit continue vol-schaling/netting-flips (de constructie die het artefact van nominaleinflatie veroorzaakte). De opzet heeft een ruim koersdoel en krappe stop (TP >= SL) om de belonings-risicoval van flush en bounce te vermijden. Drie kernparameters.

Iteratie 4 verhelpt de rooktest-time-out van Layer-3 300s WITHOUT zonder de handelslogica te wijzigen. De vorige versie berekende ATR, het gemiddelde volume en de stoot telkens opnieuw uit barsublijsten (met numpy-arraytoewijzing en veel .as_double()-aanroepen van FFI) voor alle 10 instrumenten op elke EVERY bar — hoge kosten per bar, vermenigvuldigd over honderdduizenden 1H-bars in de lange historie. Het hete pad kost nu O(1) per bar: voortschrijdende TR en volume-SUMS worden incrementeel bijgehouden in……Meer tonenMinder tonen

Iteratie 4 verhelpt de rooktest-time-out van Layer-3 300s WITHOUT zonder de handelslogica te wijzigen. De vorige versie berekende ATR, het gemiddelde volume en de stoot telkens opnieuw uit barsublijsten (met numpy-arraytoewijzing en veel .as_double()-aanroepen van FFI) voor alle 10 instrumenten op elke EVERY bar — hoge kosten per bar, vermenigvuldigd over honderdduizenden 1H-bars in de lange historie. Het hete pad kost nu O(1) per bar: voortschrijdende TR en volume-SUMS worden incrementeel bijgehouden in begrensde deques, precies eenmaal bijgewerkt per nieuwe bar per activum in _roll_update (ontdubbeld op tijdstempel), en het beheer leest _atr_of/_avg_vol_of/_thrust_of rechtstreeks uit die lopende totalen. numpy is verwijderd uit het hete pad (zuivere Python-wiskunde). Het RETURNED-signaal van het primaire activum houdt de exacte eerdere berekening op basis van bars (_thrust_direct), zodat het continue, variërende signaal dat Layers 1-2 al doorstond byte-identiek blijft; de onvoorwaardelijke _touch-update houdt het signaal ook actief in de Layer-2-proxy waar order_factory/cache ontbreken. Voortschrijdende ATR is gelijk aan het gemiddelde van dezelfde TR's en voortschrijdend gemiddeld volume is gelijk aan het gemiddelde van dezelfde volumes. Instappen, uitstappen en tradeproductie blijven dus gelijk — alleen de kosten per bar dalen van O(venster × instrumenten) naar O(instrumenten), met een veel kleinere constante.

De gediversifieerde intradayportefeuille met impulscontinuatie is een duidelijke nettoverliezer met een edge onder de handelskosten — 2 uur optimaliseren is niet de moeite waard. Over 13,644 transacties: total_return -95.05%, CAGR -45.6%, max_drawdown 96.24% (CI tot 100%, voorbij de harde afkapgrens van L19, bucket voor rustig regime -100%), profit_factor 0.87, verwachtingswaarde -$7.20/transactie, avg_trade_return_pct 0.045% (onder de Binance-kostenvloer van 0.15% USD-M, L22, met commissies van 12.4% van de……Meer tonenMinder tonen

De gediversifieerde intradayportefeuille met impulscontinuatie is een duidelijke nettoverliezer met een edge onder de handelskosten — 2 uur optimaliseren is niet de moeite waard. Over 13,644 transacties: total_return -95.05%, CAGR -45.6%, max_drawdown 96.24% (CI tot 100%, voorbij de harde afkapgrens van L19, bucket voor rustig regime -100%), profit_factor 0.87, verwachtingswaarde -$7.20/transactie, avg_trade_return_pct 0.045% (onder de Binance-kostenvloer van 0.15% USD-M, L22, met commissies van 12.4% van de bruto-opbrengst). De Sharpe-ratio is -0.088 (CI [-1.02, 0.61] loopt van negatief naar positief), PSR 0.41, en de strategie verliest in 6 van de 7 jaren (slechts 2022 positief). Het portefeuilleontwerp DID de twee beoogde faalwijzen verhelpen — weinig transacties (honderden transacties per jaar) en concentratie op één gebeurtenis, met engine-veilige discrete instappen en zonder liquidatie — maar diversificatie beteugelde de extreme uitslagen niet (kurtosis 246, maandelijkse schommelingen van +365%/-78%/-50%, 37 opeenvolgende verliezen) en creëerde vooral geen positieve netto-edge per transactie. Dit is de L30/L63 pure-OHLCV directionele continuatieklasse (0-overlevende); uitbreiding van het impulssignaal voor één instrument naar 10 instrumenten verhoogde het aantal transacties, maar de edge per transactie blijft onder de kosten. Geen enkele afstelling van impuls-, stop- of tp-multipliers tilt een edge van 0.045% per transactie boven de kostenvloer of herstelt een drawdown van 96%. Faalpatroon: fee_edge/no_edge continuatie met meerdere instrumenten OHLCV met >50% DD.

Implementatie

Long-short intradayvoortzetting van impulsbars als gediversifieerde portefeuille over 10 Binance-USD-M-majors met lange historische data op candles van 1 uur. Elk activum wordt afzonderlijk gevolgd; een directionele impuls met hoog volume (|body|/ATR >= impulse_atr_mult AND volume >= vol_mult x het gemiddelde) opent één discrete positie in de richting van de impuls. Sluiting gebeurt bij een krappe stop op ATR, een ruimer koersdoel op ATR of een maximale aanhoudingsduur. Er geldt een limiet voor de nominale waarde per positie en voor de bruto blootstelling van de portefeuille; maximaal één positie per activum.

Verificatieresultaten

CLEAN RESTART 2026-09-04 — de verdictgeschiedenis en leergegevens van deze run zijn verwijderd en de run is opnieuw gestart vanaf verificatie. De eerdere stopzetting kwam door de pipeline, niet door de markt: het Layer-2-harnas koppelde @staticmethod-helpers verkeerd (opgelost), QA gaf definitieve prestatieoordelen op een ongeoptimaliseerde smoketest (verwijderd — QA beoordeelt nu alleen correctheid), en time-outs in de sandbox kwamen door een tekort aan backtestslots (opgelost). De hypothese en de strategiecode zijn ongewijzigd. Beoordeel de code op basis van haar inhoud; de prestaties worden later bepaald door de volledige backtest en de optimizer.

Backtest-review

Sharpe
-0,09
Totaal rendement
-95,05%
Maximale drawdown
96,24%
Totaal aantal trades
13644
Winratio
38,6%
Winstfactor
0,87

De problemen van te weinig trades en concentratie in één gebeurtenis zijn daadwerkelijk verholpen: 13,644 trades over 10 namen vullen elk venster goed, met engine-veilige afzonderlijke instappen en limieten per positie en bruto (geen nominaleinflatieartefact, geen liquidatie)

Nettoverlies: total_return -95.05%, CAGR -45.6%, max_drawdown 96.24% (CI tot 100%) — voorbij de harde stopgrens van 50% (L19)

Edge lager dan kosten: avg_trade_return_pct 0.045% (onder de 0.15% kostengrens, L22), profit_factor 0.87, verwachtingswaarde -$7.20/trade, commissie 12.4% van bruto

Geen significante risico-gecorrigeerde edge: Sharpe -0.088 (CI [-1.02, 0.61] rond nul), PSR 0.41; verlies in 6 van de 7 jaren (slechts 2022 positief)

Diversificatie temperde de staart niet: kurtosis 246, maandelijkse uitslagen +365%/-78%/-50%, 37 opeenvolgende verliezen — gedomineerd door uitschieters, geen gestage edge

L30/L63 zuivere directionele continuatieklasse van OHLCV (0-overlever); portefeuilleveralgemening verhoogde het aantal trades, maar niet de edge per trade

Iteratiegeschiedenis

Verificatie mislukt (Layer 2 — synthetische scenario's): Gebruikte parameters: ['assets', 'vol_mult', 'atr_period', 'vol_window', 'tp_atr_mult', 'min_notional', 'max_hold_bars', 'qty_precision', 'stop_atr_mult', 'gross_cap_frac', 'impulse_atr_mult', 'per_position_frac', 'default_qty_precision'] Controleer of __init__ alle attributen instelt met self.parameters.get(). - steady_uptrend: TypeError: super(type, obj): obj moet een instantie of subtype van type zijn (bartijdstempel: 1735689600000) - steady_downtrend:……Meer tonenMinder tonen

Verificatie mislukt (Layer 2 — synthetische scenario's): Gebruikte parameters: ['assets', 'vol_mult', 'atr_period', 'vol_window', 'tp_atr_mult', 'min_notional', 'max_hold_bars', 'qty_precision', 'stop_atr_mult', 'gross_cap_frac', 'impulse_atr_mult', 'per_position_frac', 'default_qty_precision'] Controleer of __init__ alle attributen instelt met self.parameters.get(). - steady_uptrend: TypeError: super(type, obj): obj moet een instantie of subtype van type zijn (bartijdstempel: 1735689600000) - steady_downtrend: TypeError: super(type, obj): obj moet een instantie of subtype van type zijn (bartijdstempel: 1735689600000) - flat_ranging: TypeError: super(type, obj): obj moet een instantie of subtype van type zijn (bartijdstempel: 1735689600000) - volatility_spike: TypeError: super(type, obj): obj moet een instantie of subtype van type zijn (bartijdstempel: 1735689600000) - zero_volume: TypeError: super(type, obj): obj moet een instantie of subtype van type zijn (bartijdstempel: 1735689600000) - price_gap: TypeError: super(type, obj): obj moet een instantie of subtype van type zijn (bartijdstempel: 1735689600000)

Verificatie mislukt (laag 3 — backtest in sandbox): de rooktest overschreed de tijdslimiet van 300 seconden. Dit betekent vrijwel altijd dat werk per candle meegroeit met de historie — bijvoorbeeld telkens de volledige funding- of aanvullende reeks opnieuw doorlopen, of bij elke candle een lijst opnieuw opbouwen en min()/sorted() aanroepen binnen calculate_signal()/on_bar(). Bereken vooraf gesorteerde tijdstempelarrays ONCE in __init__ en gebruik bisect, of cache zoekresultaten op basis van tijdstempel, zodat de kosten per candle O(log n) zijn in plaats van O(n).

Verificatie mislukt (Layer 2 — synthetische scenario's): Gebruikte parameters: ['assets', 'vol_mult', 'atr_period', 'vol_window', 'tp_atr_mult', 'min_notional', 'max_hold_bars', 'qty_precision', 'stop_atr_mult', 'gross_cap_frac', 'impulse_atr_mult', 'per_position_frac', 'default_qty_precision'] Controleer of __init__ alle attributen instelt met self.parameters.get(). - steady_uptrend: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() verwacht 1 positioneel argument, maar kreeg er 2……Meer tonenMinder tonen

Verificatie mislukt (Layer 2 — synthetische scenario's): Gebruikte parameters: ['assets', 'vol_mult', 'atr_period', 'vol_window', 'tp_atr_mult', 'min_notional', 'max_hold_bars', 'qty_precision', 'stop_atr_mult', 'gross_cap_frac', 'impulse_atr_mult', 'per_position_frac', 'default_qty_precision'] Controleer of __init__ alle attributen instelt met self.parameters.get(). - steady_uptrend: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() verwacht 1 positioneel argument, maar kreeg er 2 (bartijdstempel: 1735689600000) - steady_downtrend: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() verwacht 1 positioneel argument, maar kreeg er 2 (bartijdstempel: 1735689600000) - flat_ranging: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() verwacht 1 positioneel argument, maar kreeg er 2 (bartijdstempel: 1735689600000) - volatility_spike: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() verwacht 1 positioneel argument, maar kreeg er 2 (bartijdstempel: 1735689600000) - zero_volume: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() verwacht 1 positioneel argument, maar kreeg er 2 (bartijdstempel: 1735689600000) - price_gap: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() verwacht 1 positioneel argument, maar kreeg er 2 (bartijdstempel: 1735689600000)

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.