BtcSpotDualTimeframeMomentumConfluenceLong
Hypoteser
BTC Spot Dual-Timeframe Momentum Confluence, LONG-ONLY 1x (BTCUSDT.BINANCE_SPOT, 4H Primær + 1D Bekreftelse, Kun Long Når BOTH Tidsrammer Peker UP, FLAT til Kontanter Ellers, ATR-Trailing + Daglig-Regimebrudd-Exit, Kildeoptimaliserte Parametere Beholdt)
Hypoteser
En LONG-ONLY, 1x, CASH-konto-overføring av fabrikkens best presterende forfremmede strategi (BtcDualTimeframeMomentumConfluenceLS, Sharpe 1.99, 458 handler, +$4,774 over 29 dager med paper trading) til BTCUSDT.BINANCE_SPOT, opprettet spesifikt som FIRST LIVE-TRADING CANDIDATE fordi live-børsen er spot-only. Mekanismen er uendret, ren-OHLCV, enkeltinstrument: FAST-benet = fortegnet til den trailende 18-bar avkastningen på 4-HOUR-barer; SLOW-benet = fortegnet til den trailende 15-bar avkastningen på DAILY-barer (lest via on_extra_bar som et kontekstben, aldri en synkroniseringsbarriere). Begge må AGREE. Den eneste strukturelle endringen CASH-kontoen tvinger frem er å kollapse {LONG/FLAT/SHORT} til {LONG/FLAT}: der futures-forelderen går SHORT ved joint-down-konfluens, holder spot-versjonen 100% USDT. Alt annet er bevart ordrett: ATR(14) trailing stop ved 3.033x ATR fra det løpende ekstremet, daglig-regimebrudd-exit, vol-skalert kapitalrelativ størrelsesbestemmelse (risk_pct 1.011% / 3.033xATR stop-avstand), 49.7% maks-notional-tak, og den eksakte parametervektoren kildeoptimaliseringen valgte (fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). Tre justerbare parametere, ingen tilleggsdata, ingen shorts, ingen giring. Spot-spesifikke kodeendringer: BINANCE_SPOT CASH-børs (ingen giringsmultiplikator i position_size), size_precision 5 / price_precision 2, min_notional $10, salg størrelsesbestemt kun til holdt basemengde. Data verifisert til stede: BTCUSDT.BINANCE_SPOT 4-HOUR og 1-DAY-barer kjører kontinuerlig fra 2017-08-17 (~9 år, ~19,800 4H-barer).
Hypoteser
Direkte overføring av den forfremmede futures-forelderen BtcDualTimeframeMomentumConfluenceLS til spot-børsen, fordi den tiltenkte live-børsen er spot-only. Mekanismen er bevart ordrett: de samme to momentum-beina, den samme AGREE-eller-flat-porten, den samme ATR(14) 3.033x trailing stop fra det løpende ekstremet, den samme daglige regimebrudd-exiten, den samme vol-skalerte risk_pct / stop-avstand-størrelsen med et 49.7% notional-tak, og den eksakte parametervektoren kildeoptimaliseringen valgte (fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). CASH-kontoen tvinger frem nøyaktig én strukturell endring, slik hypotesen spesifiserer: {LONG,FLAT,SHORT} kollapser til {LONG,FLAT} — should_enter returnerer BUY kun ved joint-up og None ellers, så joint-down er 100% USDT snarere enn en short. Spot-spesifikke endringer: børs BINANCE_SPOT med giring 1.0 og ingen giringsledd i position_size, size_precision 5 / price_precision 2 (BTCUSDT spot), min_notional hevet til $10, og alle exits rutes gjennom grunnmalens reduce-only close_position slik at en SELL kun noensinne kan kvitte seg med holdt basemengde (en naken spot-short er umulig av konstruksjon, og grunnmalens _would_open_spot_short-vakt utløses aldri). calculate_signal returnerer den kontinuerlige 18-bar 4H-avkastningen hver bar (den varierer fra bar til bar); den diskrete konfluensporten ligger i should_enter, som påkrevd. Kostnad per bar er O(1): ATR bruker et fast 15-bar vindu og den raske avkastningen er et enkelt indeksert oppslag, så det er ingen historieskalerende arbeid. Ett ærlig forbehold for analytikeren: spot-rundtur-kostnad er ~0.20% mot ~0.10% på futures-forelderen, så edgen per handel må dekke dobbelt så mye friksjon — trendfølgende exit-strukturen (trailing + regimebrudd, ingen fast take-profit) er det som gjør at gjennomsnittlig holdetid blir lang nok til at det er plausibelt, men det er metrikken som bør følges nøye først.
Implementasjon
LONG-ONLY 1x BTCUSDT spot (BINANCE_SPOT, CASH) dual-timeframe momentum-konfluens. FAST-benet = fortegnet til den trailende 18-bar avkastningen på 4-HOUR-barer (primær); SLOW-benet = fortegnet til den trailende 15-bar avkastningen på 1-DAY-barer, konsumert via on_extra_bar som et tregere-tidsramme kontekstben (annen tidsramme, så grunnmalens kryss-ben-justeringsbarriere utsetter aldri 4H-signalet). Begge bena må peke UP for å holde BTC; joint-down (der futures-forelderen shorter) og uenighet betyr begge å holde 100% USDT. Exits: ATR(14) trailing stop ved 3.033x ATR under posisjonens løpende topp, OR den daglige benet vipper ned under long-posisjonen (høyere-tidsramme regimebrudd). Størrelsesbestemmelse er vol-skalert og kapitalrelativ: egenkapital * 1.011% / (3.033 * ATR), tak på 49.7% av USDT-saldoen i notional, med NO giringsmultiplikator (CASH-kontoen kan ikke låne), kvantisert til size_precision 5 og avvist under $10 spot min notional. Tre justerbare parametere, ren OHLCV, ingen tilleggsdata, ingen shorts.
Verifiseringsresultater
Enten bruk self._atr (nåværende) i should_exits trailing-sammenligning for å matche forelderen eksakt, eller si eksplisitt i beskrivelsen at trailingen er forankret til entry-bar ATR, slik at analytikeren ikke tilskriver avvik fra forelderen til børsendringen.
Verifiseringsresultater
Trailing-stop-ATR er FROZEN ved entry (self._entry_atr, fanget i should_enter / ved posisjonsovertakelse) og oppdateres aldri, så trailing-avstanden er 3.033 x ATR-ved-entry snarere enn 3.033 x nåværende ATR(14). Den forfremmede futures-forelderen (BtcDualTimeframeMomentumConfluenceLS4H) justerer sin trailing med CURRENT ATR hver bar. Hypotesens ordlyd ('ATR(14) trailing stop ved 3.033x ATR fra det løpende ekstremet') er oppfylt uansett, og siden _extreme er monoton justeres stop-nivået fortsatt bare oppover, så dette er ikke en korrekthetsfeil — men ved en volatilitetsøkning etter entry er den effektive stoppen strammere enn forelderens, noe som er en reell atferdsmessig forskjell fra strategien dette hevdes å overføre 'ordrett'.
Verifiseringsresultater
Sett handelstilstanden fra fillet (on_order_filled / første bar med en åpen posisjon) fremfor inne i should_enter, eller tilbakestill den defensivt øverst i calculate_signal før posisjonsoppslaget.
Verifiseringsresultater
should_enter() muterer handelstilstand (_in_long = True, _extreme, _entry_atr) BEFORE grunnmalen har størrelsesbestemt ordren og anvendt min-notional-porten. Hvis position_size() returnerer 0 eller $10 min-notional-sjekken forkaster inngangen, blir strategien stående flagget som in-long med en armert trailing mens den er flat. I praksis selvhelbreder dette på neste bar (calculate_signal ser at posisjonen er None og tilbakestiller flaggene, og should_exit nås aldri mens flat), så det er ingen observerbar atferdsfeil — men invarianten er skjør dersom exit-stien noensinne endres.
Verifiseringsresultater
Ingen fiks nødvendig for korrekthet. Hvis eksakt samme-bar-konsumering er ønsket, kan _slow_dir regnes ut på nytt lazy fra self._extra_bars[...] inne i calculate_signal i stedet for å bufre den i on_extra_bar.
Verifiseringsresultater
Én-bar-latens på det daglige benet: DAILY-baren og den siste 4H-baren for dagen deler samme lukketidsstempel. Hvis motoren leverer den primære 4H-baren først, kjører _maybe_process_primary() og stempler _last_processed_ts, og den daglige barens _slow_dir-oppdatering (som ankommer med samme ts) blir kun konsumert fra den NEXT 4H-baren. Dette er konservativt (det kan bare forsinke et signal, aldri lekke fremtidige data), men det betyr at daglig-regimebrudd-exiten kan utløses opptil 4 timer etter daglig lukking i omtrent halvparten av tilfellene, og backtest/paper-paritet avhenger av at leveringsrekkefølgen er stabil.
Verifiseringsresultater
Tro implementasjon, men tre ting analytikeren bør vurdere over full historikk: (1) spot-rundtur er ~0.20% mot futures-forelderens ~0.10%, så den samme brutto-edgen gir netto omtrent halvparten — sandkassen viser allerede kommisjon på 10.03% av brutto; (2) parametervektoren (rask 18 / treg 15 / trailing 3.033) ble valgt av en optimaliseringskjøring på en DIFFERENT-børs, tidsramme-miks og retningssett (LONG/SHORT futures), så dette er en out-of-sample-overføring, ikke en optimalisert konfigurasjon — sandkasse-Sharpe er 0.527 med sharpe_ci_low -0.233 og information_ratio -0.760 mot referanseindeksen, dvs. en long-only BTC-portefølje som underpresterer sammenlignet med å holde BTC i røyktestvinduet; (3) å fjerne short-beinet fjerner omtrent halvparten av forelderens handelspopulasjon (250 handler, alle long, 43.6% eksponering), så realisert Sharpe bør forventes godt under forelderens 1.99 snarere enn nær den. Det første som bør sjekkes i den reelle backtesten: avg_trade_return_pct mot 0.25% spot-gulvet (sandkassen viser 0.82%, men det vinduet ekskluderer 2017 og er kun 2401 dager) og om det 'normale' vol-tertilet (-8.77% i sandkasse) forblir negativt over full historikk.
Backtest-gjennomgang
314 lukkede handler over 3146 dager (2017-08 → 2026-03), metrics_reliable=true, entry_diag 314/314 innganger sendt inn med 0 avvist.
Backtest-gjennomgang
Handlene implementerer hypotesen: alle 314 LONG / 0 short (korrekt CASH-kollaps av forelderens LONG/FLAT/SHORT), maks notional/egenkapital 0.50 mot 0.497-taket, gjennomsnittlig holdetid 4d8t og 43.6%-eksponering som reproduserer futures-forelderen.
Backtest-gjennomgang
avg_trade_return_pct 1.20% mot en ~0.20% BINANCE_SPOT rundtur; kommisjoner utgjør kun 8.97% av brutto, impact 4.33% — ikke gebyr-marginal.
Backtest-gjennomgang
max_drawdown 10.3% (under 15% spot-standarden), PF 1.41, payoff 2.07 ved en 40.4% treffrate (korrekt trendform), stresset vol-tertil +28.0%.
Backtest-gjennomgang
Ekstrem konsentrasjon: topp 10 av 314 handler = 93.8% av summert avkastning per handel, topp 20 = 141% (handler 21–314 netto negative).
Backtest-gjennomgang
Kun 6/10 kalenderår positive — nøyaktig på det harde gulvet — og begge de siste årene negative (2025 −10.5%, 2026 −9.9%).
Backtest-gjennomgang
Sharpe 0.664 med sharpe_ci_low 0.0042 og PSR 0.924 (<0.95): allerede marginal før ~225-forsøks-utvelgelsesterskelen.
Backtest-gjennomgang
QA sin bekymring delvis bekreftet: 'normal' vol-tertil forblir negativ (−7.70%, 16.1% DD), information_ratio −0.757, alfa kun +2.4%/år — den underpresterer sammenlignet med å holde BTC, og benchmark_meaningful=true så det underskuddet er reelt.
Backtest-gjennomgang
Parametrene er en out-of-sample-overføring fra et annet børs-/retningssett — ujustert snarere enn overtilpasset, men også utestet her.
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.