Hoppa till innehåll
Alla strategier

Strategier

ETH-vs-BTC Relativ-Momentum-Rotation, Dollaneutral Long-Short (Två-Instrument ETHUSDT.BINANCE + BTCUSDT.BINANCE Perps, Dagliga Barer — Long den Starkare / Short den Svagare Baserat på ETH/BTC Kvot MOMENTUM, Deadband-Gated, Ren OHLCV, 2-Parameter)

Utfall: Övergiven

EthBtcRelativeMomentumRotationLS

Implementerar troget hypotesen: dollaneutral ETH/BTC kvot-momentum-rotation, marknadsneutral (benchmark_meaningful=false, så buy-hold är korrekt inte måttstocken)

Hypotes

En MARKET-NEUTRAL (dollaneutral) LONG-SHORT, två-instrument, ren-OHLCV relativ-momentum-strategi som roterar mellan de två djupaste krypto-tillgångarna baserat på MOMENTUM av ETH/BTC-kvoten: när ETH trendar starkare än BTC går den long ETH / short BTC dollaneutralt, och vänder till long BTC / short ETH när BTC leder. Den är konstruerad kring sessionens hårt vunna begränsningar. (1) PURE OHLCV — efter min BTC taker-flow-idé dog 'otestad, täckningstak' (kompletterande flöden för glesa för ett mätbart prov), och……Visa merVisa mindre

En MARKET-NEUTRAL (dollaneutral) LONG-SHORT, två-instrument, ren-OHLCV relativ-momentum-strategi som roterar mellan de två djupaste krypto-tillgångarna baserat på MOMENTUM av ETH/BTC-kvoten: när ETH trendar starkare än BTC går den long ETH / short BTC dollaneutralt, och vänder till long BTC / short ETH när BTC leder. Den är konstruerad kring sessionens hårt vunna begränsningar. (1) PURE OHLCV — efter min BTC taker-flow-idé dog 'otestad, täckningstak' (kompletterande flöden för glesa för ett mätbart prov), och OI/premium/funding delar sannolikt det problemet, använder denna endast de två mest kompletta prisserierna i katalogen, så mätbarhet och datatäckning är icke-problem. (2) Det är en genuint DIFFERENT familj från hela min väntande kö (som allt är enskilt-instrument direktions-BTC): marknadsneutral relativ-värdering, fyller den undermåliga LONG-SHORT (13.3%) och marknadsneutral- och par-scope-hinkarna, och hedgar ut krypto-betan som gör enskildnamn-riktning så bräcklig. (3) Det är MOMENTUM tecknet, inte reversion — ETH/BTC-kvotreversion dog 'fee_edge/annat' eftersom den bekämpade kvotens strukturella drift; denna handlar WITH den driften (alt-season vs BTC-season regimer), och fångar stora flerveckors-kvottrender (~10-30%) snarare än små medeltouch, vilket är det som klarar avgifter dollaneutralt. (4) Det är NOT den L32-förbjudna 8-major tvärsnittliga rotationen — det är en minimal 2-tillgångskonstruktion med en distinkt tes. (5) DELIBERATELY 2-PARAMETER (momentum lookback + deadband) för att motstå överanpassningen som dödade större konstruktioner. Dagliga barer med en deadband håller omsättningen tillräckligt låg för avgifter men tillräckligt frekvent (~40-80 rotationer över flerårig historik) för att vara mätbar.

QA bad mig verifiera svansutfallet, och verifieringen visade ett verkligt fel och en mätartefakt, så jag redovisar båda ärligt. Artefakten: de rapporterade ytterligheterna per affär är PER LEG, och för ett dollarneutralt par domineras varje ben av marknadsbeta som tar ut varandra. Ett kort BTC-ben på $35k som hålls genom en uppgång på ~45% BTC bokför ungefär -$16k, medan det matchade långa ETH-benet bokför ungefär +$12k — PAIR förlorade ungefär $4k, vilket är ungefär det nominella taket för ratio-stoppet, så……Visa merVisa mindre

QA bad mig verifiera svansutfallet, och verifieringen visade ett verkligt fel och en mätartefakt, så jag redovisar båda ärligt. Artefakten: de rapporterade ytterligheterna per affär är PER LEG, och för ett dollarneutralt par domineras varje ben av marknadsbeta som tar ut varandra. Ett kort BTC-ben på $35k som hålls genom en uppgång på ~45% BTC bokför ungefär -$16k, medan det matchade långa ETH-benet bokför ungefär +$12k — PAIR förlorade ungefär $4k, vilket är ungefär det nominella taket för ratio-stoppet, så largest_loss -$16,261 är inget belägg för att stoppet misslyckades. Samma förbehåll gäller den ”inverterade RR” och skevhet/kurtosis: statistik på bennivå för ett säkrat par mäter beta, inte spreadens övertag. Jag ifrågasätter inte bedömningen — profit_factor 0.737 och total_return -17.6% gäller parnivå och är genuint negativa — endast svansaritmetiken i fynd 2. Det verkliga felet: ratiostoppet utvärderades endast mot CLOSES, så på dagsstaplar agerade man inte på en relativ rörelse som passerade taket intradag förrän nästa stängning. Stoppet utvärderar nu även den slutförda stapelns värsta intradagsförhållande (ETH låg / BTC hög för en lång position, ETH hög / BTC låg för en kort position) och lämnar positionen vid stapelns stängning. Detta är avsiktligt konservativt, inte framåtblickande: stapeln är färdig när kontrollen körs och avslutet sker vid stängning — ett sämre pris än ett verkligt vilande stopp — så det kan inte försköna backtestet. Jag halverade också taket, stop_ratio_pct 0.12 -> 0.06, vilket är den enda ändringen som angriper den uppmätta asymmetrin i avkastningen (QAs ”kastar om och vänder kraftigt”) utan att röra signalen: maximal ogynnsam rörelse per rotation sjunker till ~6% av det ena benets nominella värde, ~2% av eget kapital. Båda är LOCKED-konstanter, så den justerbara ytan förblir exakt 2 parametrar. Allt som de tidigare lagren validerade är oförändrat: samma importer, samma klass, samma justering efter dagnyckel, signalserien byggs fortfarande endast från stängningskurser (de nya högsta/lägsta-värdena används enbart för riskbegränsning och aldrig för signalen), samma inträdeströsklar och utträde vid nollgenomgång, samma idempotenta säkringsavstämning utan on_bar-överskrivning och utan super() utan argument på någon händelseväg, samma positionsstorlek. Ärlig begränsning, och detta är min rekommendation till analytikern: de här ändringarna begränsar förlusten per rotation, de skapar inget övertag. QAs huvudfynd gäller ENTRY, och inträdet är hypotesen — om ett snävare, intradagsmedvetet stopp inte lyfter profit_factor över 1 bör ratio-momentumfamiljen överges i stället för att itereras en fjärde gång, eftersom de enda återstående reglagen (tillbakablicksperiod, dödband) är just den kurvanpassningsyta som konstruktionen med 2 parametrar är avsedd att undvika.

Negativt förväntat värde på ett tillförlitligt 582-trade / 6.7-årsprov: profit_factor 0.9999 (brutto-platt, ingen netto-edge), avg_trade_pnl_usd -0.137, CAGR -1.22%, recovery_factor negativt. Den +7.83% total_return är helt orealiserad (end_unrealized_pct 7.91) — en oavslutad slutposition, inte realiserad edge. Sharpe 0.26 med CI [-0.48, 1.01] ligger runt noll, max_drawdown 56.6%, och impact_cost_pct 101% (kapacitet ~$98k) innebär att marknadspåverkan ensam konsumerar hela edgen. Den ETH/BTC relativa styrkan-momentum varar inte tillräckligt länge för att vara lönsam dollaneutralt efter kostnader — detta är ett uttalande om entry, vilket IS hypotesen. Att optimera 2 parametrarna (lookback, deadband) kan inte lyfta ett brutto-platt/PF<1 resultat till lönsamhet. Inte värt 2 timmars optimering. abandon_class=negative_expectancy.

Implementation

Dollaneutral long/short-rotation mellan ETHUSDT.BINANCE och BTCUSDT.BINANCE USD-M perpetuals på 1-DAY barer, driven av momentet i ETH/BTC-kvoten. Signalen (oförändrad) är log-kvot-förändringen över mom_lookback dagar dividerad med kvotens egen dagliga volatilitet gånger sqrt(horisont) — en skalefri z i naturliga enheter varje bar, byggd endast från stängningskurser. Vid eller över +deadband är strategin long ETH / short BTC i lika dollar; vid eller under -deadband är den short ETH / long BTC; positionen stängs……Visa merVisa mindre

Dollaneutral long/short-rotation mellan ETHUSDT.BINANCE och BTCUSDT.BINANCE USD-M perpetuals på 1-DAY barer, driven av momentet i ETH/BTC-kvoten. Signalen (oförändrad) är log-kvot-förändringen över mom_lookback dagar dividerad med kvotens egen dagliga volatilitet gånger sqrt(horisont) — en skalefri z i naturliga enheter varje bar, byggd endast från stängningskurser. Vid eller över +deadband är strategin long ETH / short BTC i lika dollar; vid eller under -deadband är den short ETH / long BTC; positionen stängs när signalen korsar tillbaka genom noll eller när kvoten har rört sig stop_ratio_pct (nu 6%) mot den sedan entry — kontrollerad mot både aktuell stängning AND worst-case intrabar-kvoten för den avslutade baren (ETH låg vs BTC hög för en long, ETH hög vs BTC låg för en short), så att en relativ vändning som blåser genom taket intradag ageras på samma bar istället för en dag senare. ETH och BTC priser lagras i separata dicts nycklade av UTC dagsindex och kvotserien återbyggs från skärningen av dagar som finns i båda. BTC-benet är dollarmatchat mot ETH-benet och avstämt idempotent från båda hooks; ett hedgeben hålls aldrig ensamt eller på samma sida. Varje ben är 35% av eget kapital i notional vid hävstång 1.0. Exakt 2 tunables: mom_lookback och deadband.

Verifieringsresultat

CLEAN RESTART 2026-09-04 — den här körningens beslutshistorik och inlärningsposter togs bort och den startades om från verifieringen. Det tidigare avbrytandet berodde på pipelinen, inte marknaden: Layer-2-harnessen band felaktigt @staticmethod-hjälpfunktioner (åtgärdat), QA utfärdade slutgiltiga resultatbedömningar av en ooptimerad rökning (borttaget — QA bedömer nu endast korrekthet), och tidsgränsöverskridanden i sandlådan berodde på brist på backtestplatser (åtgärdat). Hypotesen och strategikoden är oförändrade. Verifiera koden utifrån dess egna meriter; prestandan avgörs senare av det fullständiga backtestet och optimeraren.

Nära-noll/negativ edge på ett mätbart fullhistorik-prov (550 trades, PF 0.965, -22.4%, avg_trade_return_pct +0.061% under två-ben-avgiften) — den lågdispersion ETH/BTC paret som hypotesen själv flaggade som svagare än SOL/ETH. Trogen implementering, så ett edge-fynd för analytikern. Överge vid backtest-granskning enligt utvecklarens förhandsregistrerade villkor (PF klarade inte 1); optimera inte.

57.8% max drawdown (CI till 83%, 1894-dagars varaktighet) på en nominellt marknadsneutral bok: dollaneutral endast vid entry, och 70% bruttoexponering förvärrar en förlorande edge mot ihållande ETH/BTC kvottrender mellan 6% stoppen. Inte en hedging-bugg — lika-notional avstämning är korrekt — utan en riskprofil som Risk Officer bör se.

Backtestgranskning

Sharpe
0,26
Total avkastning
7,83%
Max drawdown
56,58%
Totalt antal affärer
582
Vinstandel
45,9%
Vinstfaktor
1,00

Implementerar troget hypotesen: dollaneutral ETH/BTC kvot-momentum-rotation, marknadsneutral (benchmark_meaningful=false, så buy-hold är korrekt inte måttstocken)

Tillförlitligt, mätbart urval: 582 parrotationer över 6.7 år, metrics_reliable=true, fungerande inträdespipeline (291 långa / 291 korta, noll bortfall)

Genuint 2-parameter, låg-överanpassnings yta

profit_factor 0.9999 — brutto-platt, det finns ingen netto-edge för optimering att ställa in mot

Negativ förväntad avkastning i ett tillförlitligt urval: avg_trade_pnl_usd -0.137, CAGR -1.22%, recovery_factor negativt

Rubrikvärdet för +7.83% är helt orealiserat (end_unrealized_pct 7.91) — en slutposition som inte avslutats, inte ett realiserat övertag

max_drawdown 56.6% (CI till 80%); Sharpe 0.26 med CI [-0.48, 1.01] omfattar noll — omöjligt att skilja från avsaknad av skicklighet

impact_cost_pct 101% med capacity_usd ~$98k — marknadspåverkan ensam förbrukar hela fördelen; genomförbar endast i mycket liten skala

regime_performance avkastning i ”normal” tertil -56% vid 60% DD — inget strukturellt övertag i relativ styrka

Iterationshistorik

Verifiering misslyckades (lager 2 — syntetiska scenarier): Parametrar som användes: ['deadband', 'leg_frac', 'max_days', 'vol_window', 'mom_lookback', 'size_precision', 'stop_ratio_pct', 'min_notional_btc', 'min_notional_eth'] Kontrollera att __init__ sätter alla attribut från self.parameters.get(). - steady_uptrend: TypeError: super(type, obj): obj must be an instance or subtype of type (tidsstämpel för stapeln: 1735689600000) - steady_downtrend: TypeError: super(type, obj): obj must be an instance or subtype of type (tidsstämpel för stapeln: 1735689600000) - flat_ranging: TypeError: super(type, obj): obj must be an instance or subtype of type (tidsstämpel för stapeln: 1735689600000) - volatility_spike: TypeError: super(type, obj): obj must be an instance or subtype of type (tidsstämpel för stapeln: 1735689600000) - zero_volume: TypeError: super(type, obj): obj must be an instance or subtype of type (tidsstämpel för stapeln: 1735689600000) - price_gap: TypeError: super(type, obj): obj must be an instance or subtype of type (tidsstämpel för stapeln: 1735689600000)

Verifiering misslyckades (lager 4 — granskning av QA): - DECISIVELY NET-NEGATIVE -- rotationen baserad på momentum i ETH/BTC-kvoten saknar fördel, och tesen om att ”handla med driften” är falsifierad. I ett mätbart urval på 28 affärer / 362 dagar (metrics_reliable=true): profit_factor 0.737, Sharpe -0.473 (CI [-1.98, 1.18]), total_return -17.6%, förväntad avkastning -$637/affär, win_rate 0.464 med en INVERTED RR (avg_win $3837 < avg_loss $4514). Observera att avg_trade_return_pct visar +0.161%, men det är……Visa merVisa mindre

Verifiering misslyckades (lager 4 — granskning av QA): - DECISIVELY NET-NEGATIVE -- rotationen baserad på momentum i ETH/BTC-kvoten saknar fördel, och tesen om att ”handla med driften” är falsifierad. I ett mätbart urval på 28 affärer / 362 dagar (metrics_reliable=true): profit_factor 0.737, Sharpe -0.473 (CI [-1.98, 1.18]), total_return -17.6%, förväntad avkastning -$637/affär, win_rate 0.464 med en INVERTED RR (avg_win $3837 < avg_loss $4514). Observera att avg_trade_return_pct visar +0.161%, men det är MISLEADING här -- dollarvinsten/-förlusten är tydligt negativ (avg_trade_pnl_usd -$637, PF 0.737, totalt -17.6%), eftersom förlusternas storlek överstiger vinsterna: genomsnittet i procent av nominellt värde pressas upp av många små vinster, medan en tjock vänstersvans (return_skew -0.95, kurtosis 11.3, largest_loss -$16,261 mot largest_win $9,880) driver dollarresultatet djupt nedåt. Strategin klarar alltså NOT avgiftsgolvet i någon ekonomiskt meningsfull bemärkelse -- den ger en nettoförlust. Momentumet i relativ styrka hos ETH/BTC-kvoten består inte tillräckligt länge för att ge vinst i en dollarneutral position: kvoten slår fram och tillbaka och vänder kraftigt (svansen på -$16k är en vändning i relativ trend som passerar kvotstoppen), så att lång den starkare/kort den svagare leder till att man köper vid kvottoppen och säljer vid kvotbotten. Detta är kvotmomentumets motsvarighet till sessionens misslyckanden med momentum i enskilda tillgångar — momentum i ETH/BTC-spreaden är inte mer möjligt att handla än momentum i altcoinsen själva. - RATIO STOP IS NOT CONTAINING THE TAIL -- verifiera. Den låsta stop_ratio_pct är 0.12 (en ogynnsam kvotrörelse på ~12%, ~8.4% av eget kapital vid 70% brutto), men largest_loss är -$16,261 -- ungefär dubbelt så mycket som taket. På DAILY-staplar kontrolleras kvotstoppen bara vid varje stängning, så en vändning i relativ trend som för kvoten långt förbi 12% intradag realiserar en mycket större förlust än det nominella taket. I kombination med max_drawdown 26.62 (CI [12.39, 45.03]) och cvar_95 3.60 innebär detta att den dollarneutrala konstruktionen löper en materiellt högre risk än vad dess designpåstående om ”begränsade ~8% per rotation” antyder. Det är ingen kollaps (hävstång 1.0, liquidated=false), men riskbegränsningsbeskrivningen stämmer inte med den realiserade svansen.

Verifiering misslyckades (Lager 4 — QA granskning): - THE RISK-CONTAINMENT FIX MADE IT DECISIVELY WORSE -- bekräftar ingen edge, och utvecklarens förhandsbestämda överge-kriterium är uppfyllt. Att dra åt stoppet (12% -> 6% tak) och lägga till den intrabar-medvetna kontrollen lyfte inte profit_factor över 1; det drev resultatet DEEPLY negativt: total_return -17.6% (iter2) -> -30.2% (iter3), profit_factor 0.737 -> 0.674 (sämre), Sharpe -0.972 (CI [-2.47, 0.67]), win_rate 0.443, avg_trade_return_pct -0.607%, och……Visa merVisa mindre

Verifiering misslyckades (Lager 4 — QA granskning): - THE RISK-CONTAINMENT FIX MADE IT DECISIVELY WORSE -- bekräftar ingen edge, och utvecklarens förhandsbestämda överge-kriterium är uppfyllt. Att dra åt stoppet (12% -> 6% tak) och lägga till den intrabar-medvetna kontrollen lyfte inte profit_factor över 1; det drev resultatet DEEPLY negativt: total_return -17.6% (iter2) -> -30.2% (iter3), profit_factor 0.737 -> 0.674 (sämre), Sharpe -0.972 (CI [-2.47, 0.67]), win_rate 0.443, avg_trade_return_pct -0.607%, och antalet trades nästan tredubblades (28 -> 70). Det är det avgörande tipset: att dra åt stoppet på en signal utan riktnings-edge lägger bara till WHIPSAW -- strategin stoppas nu ut till fler frekventa små förluster (return_skew -2.62 / kurtosis 26.6 och max_drawdown 37.97 bekräftar att svansen var NOT innesluten, den multiplicerades av omsättning). Över varje mätning är mekanismen vid eller under breakeven och dess tecken rör sig med paret AND med en stoppförändring på samma par: ETH/BTC PF 0.737 -> 0.674, SOL/ETH PF 1.06 -> 0.986. Det är avgörande bevis på en nära-noll-edge signal -- relativ-styrka-momentum på en kryptokvot varar inte. Utvecklaren angav testet i förväg: 'om en tightrare, intrabar-medveten stopp inte lyfter profit_factor över 1, bör kvot-momentum-familjen ABANDONED snarare än itereras en fjärde gång.' PF är 0.674; kriteriet är uppfyllt. - IMPLAUSIBLE RISK-METRIC UNITS -- verifiera (oförändrad, engine-sida). max_drawdown 37.97 (CI [14.19, 62.09]), var_95 2.61, cvar_95 4.02 är >100% -- den session-omfattande normaliseringsartefakten. Notera att utvecklarens per-ben vs per-par svansanalys är CORRECT och värd att registrera: ben-nivå largest_loss på ett dollaneutralt par domineras av marknadsbeta som upphävs mellan benen, så dessa per-ben extremer mäter beta, inte spread-edgen -- par-nivå siffrorna (PF 0.674, total_return -30.2%) är de som betyder något, och de är avgörande negativa.

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.