Hoppa till innehåll
Alla strategier

Strategier

Diversifierad portfölj med intradag impulsstapelfortsättning över stora tillgångar (lång-kort, Binance USD-M, 1H, händelsestyrda separata positioner, tak per position och brutto, mål som överstiger avgifterna ATR)

Utfall: Övergiven

DiversifiedImpulseBarContinuationPortfolioLS1H

Åtgärdade verkligen problemen med få affärer och koncentration till enstaka händelser: 13,644 affärer över 10 namn fyller varje fönster tätt, med diskreta positioner som är säkra för motorn och tak per position/brutto…

Hypotes

En LONG-SHORT, MULTI-INSTRUMENT intradagsstrategi för CONTINUATION som använder strategifabrikens EXPLICITLY-SANCTIONED, en generaliserande impulsstapelsignal för fortsättning, som en DIVERSIFIED PORTFOLIO över cirka 10 Binance USD-M-majortillgångar med lång historik (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC) på 1-HOUR-staplar. Varje tillgång övervakas separat; när en tillgång visar en ovanligt stor, volymstark riktningsrörelse (impulsstapel) öppnar strategin en separat position i rörelsens riktning……Visa merVisa mindre

En LONG-SHORT, MULTI-INSTRUMENT intradagsstrategi för CONTINUATION som använder strategifabrikens EXPLICITLY-SANCTIONED, en generaliserande impulsstapelsignal för fortsättning, som en DIVERSIFIED PORTFOLIO över cirka 10 Binance USD-M-majortillgångar med lång historik (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC) på 1-HOUR-staplar. Varje tillgång övervakas separat; när en tillgång visar en ovanligt stor, volymstark riktningsrörelse (impulsstapel) öppnar strategin en separat position i rörelsens riktning för att fånga den kortsiktiga fortsättning som följer. Detta är den analytikerstödda nya strategigrenen (impulsfortsättningsfamiljen betecknas upprepade gånger som ”generaliserande”; det finns varianter för enskilda tillgångar av ETH-1H, SOL-1H och BTC-1H-HL), generaliserad till en PORTFOLIO specifikt för att lösa de två feltyper som ledde till att nästan alla nyligen övergivna strategier misslyckades: (1) LOW BREADTH / koncentration till enstaka händelser (3-namnsboken HL nådde 68% DD som belånad beta; utbrott i enskilda namn var koncentrerade till 2021) — åtgärdat eftersom impulshändelser inträffar vid olika tidpunkter för olika, ofullständigt korrelerade namn, vilket diversifierar TRADE STREAM i stället för att stapla korrelerad riktad beta; och (2) TRADE-SPARSITY (CoinM Donchian med 26 affärer kunde inte fylla walk-forward-perioderna; OOS fönster blev tomma) — åtgärdat eftersom cirka 10 namn × frekventa 1H-impulser ger hundratals affärer per år och fyller varje walk-forward- och holdoutfönster tätt. Det är NOT en förbjuden förfining av momentumkorgen (annan signalklass: diskret intradagsfortsättning efter impuls, inte trendtillstånd baserat på SMA/eftersläpande avkastning), NOT en strategi för en enskild tillgång av typen TSM (död), NOT ett långsamt utbrott (förstört av regimskiften), NOT reversion (död), NOT optioner/spot (blockerat). Motorklar till sin konstruktion: diskreta händelsebaserade positioner med en öppning och en stängning, högst en position per tillgång, tak för nominellt belopp per position + tak för portföljens GROSS-exponering — aldrig kontinuerlig volatilitetsanpassning/nettningsvändningar (konstruktionen som orsakade artefakten med uppblåst nominellt belopp). Upplägget har breda mål och tajta stoppar (TP >= SL) för att undvika fällan med ogynnsam avkastning/risk vid snabb rekyl. Tre kärnparametrar.

Iteration 4 löser timeouten i röktestet för Layer-3 300s WITHOUT utan att ändra någon handelslogik. Den föregående versionen räknade om ATR, genomsnittlig volym och kraft från listsegment av staplar (med numpy-allokeringar av arrayer och många anrop av .as_double() FFI) för alla 10 instrument på varje stapel med EVERY – en tung kostnad per stapel som multiplicerades över hundratusentals 1H-staplar i den långa historiken. Den tidskritiska koden har nu komplexiteten O(1) per stapel: rullande TR och volymen SUMS……Visa merVisa mindre

Iteration 4 löser timeouten i röktestet för Layer-3 300s WITHOUT utan att ändra någon handelslogik. Den föregående versionen räknade om ATR, genomsnittlig volym och kraft från listsegment av staplar (med numpy-allokeringar av arrayer och många anrop av .as_double() FFI) för alla 10 instrument på varje stapel med EVERY – en tung kostnad per stapel som multiplicerades över hundratusentals 1H-staplar i den långa historiken. Den tidskritiska koden har nu komplexiteten O(1) per stapel: rullande TR och volymen SUMS uppdateras löpande i begränsade deques, exakt en gång per ny stapel och tillgång i _roll_update (deduplicerat med tidsstämpel), och positionshanteringen läser _atr_of/_avg_vol_of/_thrust_of direkt från de löpande summorna. numpy har tagits bort från den tidskritiska koden (ren Python-matematik). Signalen RETURNED för den primära tillgången behåller exakt sin tidigare beräkning baserad på staplar (_thrust_direct), så den kontinuerliga, varierande signal som redan klarade Layers 1-2 är identisk i beteende på byte-nivå; även den ogaterade uppdateringen _touch håller signalen aktiv i Layer-2-proxyn, där order_factory/cache saknas. Rullande ATR är fortfarande lika med medelvärdet av samma TR-värden och rullande genomsnittlig volym är lika med medelvärdet av samma volymer, så positioneringar, avslut och antal affärer är oförändrade – bara kostnaden per stapel minskar från O(fönster x instrument) till O(instrument) med en mycket mindre konstant.

Den diversifierade intradagsportföljen med impulsfortsättning är en tydlig nettoförlust med edge under handelskostnaderna – inte värd 2 timmars optimering. Över 13,644 affärer: total_return -95.05%, CAGR -45.6%, max_drawdown 96.24% (CI till 100%, över gränsen för definitivt avbrytande på L19, lugnt regimsegment -100%), profit_factor 0.87, förväntat värde -$7.20/handel, avg_trade_return_pct 0.045% (under Binance-avgiftsgolvet 0.15% USD-M, L22, med provisioner på 12.4% av brutto). Sharpe är -0.088 (CI [-1.02, 0.61]……Visa merVisa mindre

Den diversifierade intradagsportföljen med impulsfortsättning är en tydlig nettoförlust med edge under handelskostnaderna – inte värd 2 timmars optimering. Över 13,644 affärer: total_return -95.05%, CAGR -45.6%, max_drawdown 96.24% (CI till 100%, över gränsen för definitivt avbrytande på L19, lugnt regimsegment -100%), profit_factor 0.87, förväntat värde -$7.20/handel, avg_trade_return_pct 0.045% (under Binance-avgiftsgolvet 0.15% USD-M, L22, med provisioner på 12.4% av brutto). Sharpe är -0.088 (CI [-1.02, 0.61] med ett intervall som sträcker sig över noll), PSR 0.41, och den går med förlust under 6 av 7 år (bara 2022 positiva). Portföljdesignen DID botade de två problem den skulle lösa – få affärer (hundratals affärer per år) och koncentration till enskilda händelser, med diskreta positioner som fungerar säkert med motorn och utan likvidering – men diversifieringen dämpade inte svansrisken (kurtosis 246, månatliga svängningar på +365%/-78%/-50%, 37 förlustaffärer i följd) och skapade framför allt ingen positiv nettoedge per affär. Detta är klassen L30/L63 ren OHLCV riktningsfortsättning (0-överlevare); generaliseringen av impulssignalen för ett enskilt instrument till 10 instrument ökade antalet affärer, men edgen per affär ligger fortfarande under avgifterna. Ingen justering av impuls-, stop- eller take profit-multiplikatorer lyfter en 0.045% edge per affär över avgiftsgolvet eller åtgärdar en 96% drawdown. Felmönster: fee_edge/no_edge fortsättning över flera instrument med >50% DD (OHLCV).

Implementation

Lång-kort intradagsstrategi med impulsstapelfortsättning, körd som en diversifierad portfölj över 10 Binance USD-M-majortillgångar med lång historik på staplar om 1H. Varje tillgång övervakas separat; en volymstark riktningsstöt (|body|/ATR >= impulse_atr_mult AND volym >= vol_mult x genomsnittet) öppnar en diskret position i stötens riktning. Positionen stängs vid en tajt ATR-stop, ett bredare ATR-mål eller en maximitid som reservgräns för innehavet. Tak för nominellt belopp per position samt tak för portföljens bruttoexponering; högst en position per tillgång.

Verifieringsresultat

CLEAN RESTART 2026-09-04 — den här körningens historik över bedömningar och lärdomar togs bort och den startades om från verifieringen. Den övergavs tidigare på grund av pipelinen, inte marknaden: Layer-2-testmiljön band felaktigt @staticmethod-hjälpfunktioner (åtgärdat), QA utfärdade slutgiltiga resultatbedömningar utifrån ett ooptimerat röktest (borttaget — QA bedömer nu bara korrekthet), och tidsgränser i sandlådan berodde på brist på backtestplatser (åtgärdat). Hypotesen och strategikoden är oförändrade. Bedöm koden utifrån dess meriter; resultatet avgörs senare av det fullständiga backtestet och optimeraren.

Backtestgranskning

Sharpe
-0,09
Total avkastning
-95,05%
Max drawdown
96,24%
Totalt antal affärer
13644
Vinstandel
38,6%
Vinstfaktor
0,87

Åtgärdade verkligen problemen med få affärer och koncentration till enstaka händelser: 13,644 affärer över 10 namn fyller varje fönster tätt, med diskreta positioner som är säkra för motorn och tak per position/brutto (ingen artefakt med uppblåst nominellt belopp, ingen likvidering)

Nettoförlust: total_return -95.05%, CAGR -45.6%, max_drawdown 96.24% (CI till 100%) — förbi den hårda gränsen för att överge strategin 50% (L19)

Edge under avgifter: avg_trade_return_pct 0.045% (under avgiftsgolvet 0.15%, L22), profit_factor 0.87, förväntat värde -$7.20/handel, provision 12.4% av brutto

Ingen signifikant riskjusterad edge: Sharpe -0.088 (CI [-1.02, 0.61] med ett intervall som sträcker sig över noll), PSR 0.41; förlust under 6 av 7 år (bara 2022 positiva)

Diversifieringen dämpade inte svansen: kurtosis 246, månatliga svängningar +365%/-78%/-50%, 37 förluster i rad — dominerat av extremvärden, ingen jämn fördel

L30/L63 ren riktad fortsättningsklass av typen OHLCV (0-överlevare); generalisering till portföljen ökade antalet affärer men inte fördelen per affär

Iterationshistorik

Verifieringen misslyckades (Layer 2 — syntetiska scenarier): Använda parametrar: ['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'] Kontrollera att __init__ sätter alla attribut från self.parameters.get(). - steady_uptrend: TypeError: super(type, obj): obj måste vara en instans av eller undertyp till typen (stapelns tidsstämpel: 1735689600000) -……Visa merVisa mindre

Verifieringen misslyckades (Layer 2 — syntetiska scenarier): Använda parametrar: ['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'] Kontrollera att __init__ sätter alla attribut från self.parameters.get(). - steady_uptrend: TypeError: super(type, obj): obj måste vara en instans av eller undertyp till typen (stapelns tidsstämpel: 1735689600000) - steady_downtrend: TypeError: super(type, obj): obj måste vara en instans av eller undertyp till typen (stapelns tidsstämpel: 1735689600000) - flat_ranging: TypeError: super(type, obj): obj måste vara en instans av eller undertyp till typen (stapelns tidsstämpel: 1735689600000) - volatility_spike: TypeError: super(type, obj): obj måste vara en instans av eller undertyp till typen (stapelns tidsstämpel: 1735689600000) - zero_volume: TypeError: super(type, obj): obj måste vara en instans av eller undertyp till typen (stapelns tidsstämpel: 1735689600000) - price_gap: TypeError: super(type, obj): obj måste vara en instans av eller undertyp till typen (stapelns tidsstämpel: 1735689600000)

Verifieringen misslyckades (Layer 3 — backtest i sandlåda): röktestet överskred tidsgränsen på 300s. Det betyder nästan alltid att arbete per stapel skalar med historiken — till exempel att hela finansierings-/tilläggsserien genomsöks på nytt, eller att en lista byggs om och min()/sorted() anropas inuti calculate_signal()/on_bar() på varje stapel. Förberäkna sorterade tidsstämpelarrayer ONCE i __init__ och använd bisect, eller cachelagra sökningar med tidsstämpel som nyckel, så att kostnaden per stapel blir O(log n) i stället för O(n).

Verifieringen misslyckades (Layer 2 — syntetiska scenarier): Använda parametrar: ['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'] Kontrollera att __init__ sätter alla attribut från self.parameters.get(). - steady_uptrend: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() tar 1 positionsargument men fick 2 (stapelns tidsstämpel:……Visa merVisa mindre

Verifieringen misslyckades (Layer 2 — syntetiska scenarier): Använda parametrar: ['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'] Kontrollera att __init__ sätter alla attribut från self.parameters.get(). - steady_uptrend: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() tar 1 positionsargument men fick 2 (stapelns tidsstämpel: 1735689600000) - steady_downtrend: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() tar 1 positionsargument men fick 2 (stapelns tidsstämpel: 1735689600000) - flat_ranging: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() tar 1 positionsargument men fick 2 (stapelns tidsstämpel: 1735689600000) - volatility_spike: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() tar 1 positionsargument men fick 2 (stapelns tidsstämpel: 1735689600000) - zero_volume: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() tar 1 positionsargument men fick 2 (stapelns tidsstämpel: 1735689600000) - price_gap: TypeError: DiversifiedImpulseBarContinuationPortfolioLS1H._bar_ts() tar 1 positionsargument men fick 2 (stapelns tidsstämpel: 1735689600000)

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.