Siirry sisältöön

Näytä alkuperäinen

BtcSpotDualTimeframeMomentumConfluenceLong

Hypoteesit

BTC Spot Dual-Timeframe Momentum Confluence, LONG-ONLY 1x (BTCUSDT.BINANCE_SPOT, 4H Ensisijainen + 1D Vahvistus, Vain Pitkä Kun BOTH Aikaväliä Osoittaa UP, Muuten FLAT Käteiseen, ATR-Trailing + Päivittäinen Regiimimurtuma-Poistuminen, Lähteen Optimoidut Parametrit Säilytetty)

Hypoteesit

LONG-ONLY, 1x, CASH-tilisiirto tehtaan parhaiten menestyneestä ylennetystä strategiasta (BtcDualTimeframeMomentumConfluenceLS, Sharpe 1.99, 458 kauppaa, +$4,774 29 paperikaupankäyntipäivän aikana) välityspaikalle BTCUSDT.BINANCE_SPOT, luotu nimenomaan FIRST:ksi LIVE-TRADING CANDIDATE, koska live-välityspaikka on pelkkä spot. Mekanismi muuttumaton, puhdas OHLCV, yksi instrumentti: FAST-jalka = juoksevan 18-barin tuoton merkki 4-HOUR-bareilla; SLOW-jalka = juoksevan 15-barin tuoton merkki DAILY-bareilla (luettu kautta on_extra_bar konteksti-jalkana, ei koskaan synkronointiesteenä). Molempien on AGREE. Ainoa rakenteellinen muutos, jonka CASH-tili pakottaa, on supistaa {LONG/FLAT/SHORT} muotoon {LONG/FLAT}: siinä missä futuuriemo menee SHORT yhteisessä laskukonfluenssissa, spot-versio pitää 100% USDT. Kaikki muu on säilytetty sanatarkasti: ATR(14) trailing-stop tasolla 3.033x ATR juoksevasta ääriarvosta, päivittäiseen regiimimurtumaan perustuva poistuminen, volatiliteettiskaalattu pääomasuhteinen mitoitus (risk_pct 1.011% / 3.033xATR-stop-etäisyys), 49.7%-nimellisarvokatto, ja täsmälleen sama parametrivektori jonka lähdeoptimointi valitsi (fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). Kolme viritettävää parametria, ei täydentävää dataa, ei lyhyitä positioita, ei vipuvaikutusta. Spot-kohtaiset koodimuutokset: BINANCE_SPOT CASH-välityspaikka (ei vipuvaikutuskerrointa kohdassa position_size), size_precision 5 / price_precision 2, min_notional $10, myynnit mitoitettu vain hallussa olevaan peruskappalemäärään. Datan läsnäolo varmistettu: BTCUSDT.BINANCE_SPOT 4-HOUR ja 1-DAY -barit kulkevat jatkuvasti alkaen 2017-08-17 (~9 vuotta, ~19,800 4H-baria).

Hypoteesit

Suora siirto ylennetystä futuuriemosta BtcDualTimeframeMomentumConfluenceLS spot-välityspaikalle, koska aiottu live-välityspaikka on pelkkä spot. Mekanismi säilytetty sanatarkasti: samat kaksi momentum-jalkaa, sama AGREE-tai-neutraali-portti, sama ATR(14) 3.033x trailing-stop juoksevasta ääriarvosta, sama päivittäiseen regiimimurtumaan perustuva poistuminen, sama volatiliteettiskaalattu risk_pct / stop-etäisyys -mitoitus 49.7%-nimellisarvokatolla, ja täsmälleen sama parametrivektori jonka lähdeoptimointi valitsi (fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). CASH-tili pakottaa täsmälleen yhden rakenteellisen muutoksen, kuten hypoteesi määrittää: {LONG,FLAT,SHORT} supistuu muotoon {LONG,FLAT} — should_enter palauttaa BUY vain yhteisessä nousussa ja muutoin None:n, joten yhteinen lasku tarkoittaa 100% USDT eikä lyhyttä positiota. Spot-kohtaiset muutokset: välityspaikka BINANCE_SPOT vipuvaikutuksella 1.0 ilman vipuvaikutustermiä kohdassa position_size, size_precision 5 / price_precision 2 (BTCUSDT spot), min_notional nostettu arvoon $10, ja kaikki poistumiset reititetty perustemplaatin only-reduce-close_position:n kautta, joten SELL voi vain vähentää hallussa olevaa peruskappalemäärää (alaston spot-lyhyeksimyynti on rakenteellisesti mahdoton, eikä perustan _would_open_spot_short-vartija koskaan laukea). calculate_signal palauttaa jatkuvan 18-barin 4H-tuoton jokaisella barilla (se vaihtelee barilta toiselle); diskreetti konfluenssi-portti sijaitsee kohdassa should_enter, kuten vaadittu. Barikohtainen kustannus on O(1): ATR käyttää kiinteää 15-barin ikkunaa ja nopea tuotto on yksittäinen indeksoitu haku, joten historian mukaan skaalautuvaa työtä ei ole. Rehellinen varoitus analyytikolle: spot-edestakaisen kaupan kustannus on ~0.20% verrattuna futuuriemon ~0.10%:aan, joten kauppakohtaisen edun on ylitettävä kaksinkertainen kitka — trendiseurantaan perustuva poistumisrakenne (trail + regiimimurtuma, ei kiinteää voitonottoa) on se, mikä tekee keskimääräisestä pitoajasta riittävän pitkän, jotta tämä olisi uskottavaa, mutta se on ensimmäinen seurattava mittari.

Toteutus

LONG-ONLY 1x BTCUSDT spot (BINANCE_SPOT, CASH) dual-timeframe momentum -konfluenssi. FAST-jalka = juoksevan 18-barin tuoton merkki 4-HOUR-bareilla (ensisijainen); SLOW-jalka = juoksevan 15-barin tuoton merkki 1-DAY-bareilla, kulutettu kautta on_extra_bar hitaamman aikavälin konteksti-jalkana (eri aikaväli, joten perustemplaatin jalkojen välinen kohdistuseste ei koskaan viivästytä 4H-signaalia). Molempien jalkojen on osoitettava UP pitkän position pitämiseksi BTC; yhteinen lasku (jossa futuuriemo menee lyhyeksi) ja erimielisyys tarkoittavat molemmat 100% USDT pitämistä. Poistumiset: ATR(14) trailing stop tasolla 3.033x ATR position juoksevan huipun alapuolella, OR päivittäisen jalan kääntyessä alaspäin pitkän position alla (korkeamman aikavälin regiimimurtuma). Mitoitus on volatiliteettiskaalattu ja pääomasuhteinen: equity * 1.011% / (3.033 * ATR), katolla 49.7% USDT-saldosta nimellisarvona, NO vipuvaikutuskertoimella (CASH-tili ei voi lainata), kvantisoitu size_precision 5:aan ja hylätty alle $10 spot-minimin nimellisarvon. Kolme viritettävää parametria, puhdas OHLCV, ei täydentävää dataa, ei lyhyitä positioita.

Varmennuksen tulokset

Käytä joko self._atr:ää (nykyinen) kohdan should_exit trail-vertailussa vastaamaan emoa täsmälleen, tai mainitse kuvauksessa selkeästi, että trail on ankkuroitu sisääntulobarin ATR:ään, jotta analyytikko ei virheellisesti pidä poikkeamaa emosta välityspaikan vaihdon aiheuttamana.

Varmennuksen tulokset

Trailing-stopin ATR FROZEN sisääntulohetkellä (self._entry_atr, tallennettu kohdassa should_enter / position omaksumisen yhteydessä) eikä koskaan päivity, joten trail-etäisyys perustuu 3.033 x ATR-sisääntulohetkellä sen sijaan, että se perustuisi 3.033 x nykyiseen ATR(14). Ylennetty futuuriemo (BtcDualTimeframeMomentumConfluenceLS4H) kiristää trailiaan CURRENT ATR:lla joka bari. Hypoteesin sanamuoto ('ATR(14) trailing stop tasolla 3.033x ATR juoksevasta ääriarvosta') täyttyy kummassakin tapauksessa, ja koska _extreme on monotoninen, stop-taso silti vain kiristyy ylöspäin, joten tämä ei ole oikeellisuusvirhe — mutta volatiliteetin laajentuessa sisääntulon jälkeen efektiivinen stop on tiukempi kuin emolla, mikä on todellinen käytöksellinen ero strategiaan, jonka väitetään siirretyn 'sanatarkasti'.

Varmennuksen tulokset

Aseta kaupan tila täytön perusteella (on_order_filled / ensimmäinen bari, jolla on avoin positio) sen sijaan, että se asetettaisiin kohdassa should_enter, tai nollaa se suojaavasti kohdan calculate_signal alussa ennen position hakua.

Varmennuksen tulokset

should_enter() muuttaa kaupan tilaa (_in_long = True, _extreme, _entry_atr) BEFORE perustemplaatti on mitoittanut toimeksiannon ja soveltanut minimi-nimellisarvo-porttia. Jos position_size() palauttaa 0 tai $10:n minimi-nimellisarvotarkistus pudottaa sisääntulon, strategia jää merkityksi pitkäksi ja trail on viritetty vaikka positio on neutraali. Käytännössä tämä korjautuu itsestään seuraavalla barilla (calculate_signal näkee, että positio on None, ja nollaa liput, eikä should_exit:aan koskaan päästä neutraalina), joten havaittavaa käytösvikaa ei ole — mutta invariantti on hauras, jos poistumispolkua joskus muutetaan.

Varmennuksen tulokset

Korjausta ei tarvita oikeellisuuden kannalta. Jos halutaan täsmälleen saman barin kulutus, laske _slow_dir uudelleen laiskasti muuttujasta self._extra_bars[...] kohdan calculate_signal sisällä sen sijaan, että se välimuistitettaisiin kohdassa on_extra_bar.

Varmennuksen tulokset

Yhden barin viive päivittäisessä jalassa: DAILY-bari ja päivän viimeinen 4H-bari jakavat saman sulkeutumisaikaleiman. Jos moottori toimittaa ensisijaisen 4H-barin ensin, _maybe_process_primary() suoritetaan ja leimaa _last_processed_ts:n, ja päivittäisen barin _slow_dir-päivitys (joka saapuu samalla aikaleimalla) kulutetaan vasta NEXT 4H-barista. Tämä on konservatiivista (se voi vain viivästyttää signaalia, ei koskaan vuotaa tulevaa dataa), mutta se tarkoittaa, että päivittäiseen regiimimurtumaan perustuva poistuminen voi laueta jopa 4 tuntia päivän sulkeutumisen jälkeen noin puolessa tapauksista, ja backtest/paperikaupankäynnin yhtäpitävyys riippuu siitä, että toimitusjärjestys pysyy vakaana.

Varmennuksen tulokset

Uskollinen toteutus, mutta kolme asiaa analyytikon tulisi punnita koko historian osalta: (1) spot-edestakainen kauppa on ~0.20% vs futuuriemon ~0.10%, joten sama bruttoetu jää nettona suunnilleen puoleen — hiekkalaatikko näyttää jo komission olevan 10.03% bruttosta; (2) parametrivektori (nopea 18 / hidas 15 / trail 3.033) valittiin optimointiajolla, joka tehtiin DIFFERENT-välityspaikalla, aikaväliyhdistelmällä ja suuntajoukolla (LONG/SHORT futuureja), joten kyse on otoksen ulkopuolisesta siirrosta, ei optimoidusta konfiguraatiosta — hiekkalaatikon Sharpe on 0.527, jossa sharpe_ci_low -0.233 ja information_ratio -0.760 verrattuna vertailuarvoon, eli kyseessä on vain pitkiä positioita käyttävä BTC-salkku, joka jää jälkeen BTC:n hallussapidosta savutestin aikaikkunassa; (3) lyhyen jalan pudottaminen poistaa noin puolet emon kauppapopulaatiosta (250 kauppaa, kaikki pitkiä, 43.6% altistus), joten toteutuneen Sharpen odotetaan jäävän selvästi emon 1.99:aa alemmaksi eikä lähelle sitä. Ensimmäinen asia tarkistettavaksi todellisessa backtestissä: avg_trade_return_pct verrattuna 0.25% spot-alarajaan (hiekkalaatikko näyttää 0.82%, mutta tuo ikkuna ei sisällä 2017:aa ja kestää vain 2401 päivää) sekä pysyykö 'normaali' volatiliteettiterttiili (-8.77% hiekkalaatikossa) negatiivisena koko historian ajan.

Backtestin arviointi

314 suljettua kauppaa 3146 päivän aikana (2017-08 → 2026-03), metrics_reliable=true, entry_diag 314/314 toimeksiantoa lähetetty, joista 0 hylättiin.

Backtestin arviointi

Kaupat toteuttavat hypoteesin: kaikki 314 LONG / 0 lyhyttä (oikea CASH supistus emon LONG/FLAT/SHORT:sta), maksimi nimellisarvo/pääoma 0.50 verrattuna 0.497-kattoon, keskimääräinen pitoaika 4pv8h ja 43.6% altistus toistaen futuuriemon.

Backtestin arviointi

avg_trade_return_pct 1.20% verrattuna ~0.20% BINANCE_SPOT edestakaiseen kauppaan; komissiot vain 8.97% bruttosta, vaikutus 4.33% — ei kulumarginaalinen.

Backtestin arviointi

max_drawdown 10.3% (15% spot-oletuksen alapuolella), PF 1.41, tuottoprofiili 2.07 osumistarkkuudella 40.4% (oikea trendimuoto), stressattu volatiliteettiterttiili +28.0%.

Backtestin arviointi

Äärimmäinen keskittyminen: top 10 kauppaa 314 kaupasta = 93.8% kauppakohtaisten tuottojen summasta, top 20 = 141% (kaupat 21–314 nettona negatiivisia).

Backtestin arviointi

Vain 6/10 kalenterivuotta positiivisia — juuri ehdottomalla alarajalla — ja molemmat viimeisimmät vuodet negatiivisia (2025 −10.5%, 2026 −9.9%).

Backtestin arviointi

Sharpe 0.664, jossa sharpe_ci_low 0.0042 ja PSR 0.924 (<0.95): jo rajatapaus ennen ~225-yrityksen valintarajaa.

Backtestin arviointi

QA:n huoli osittain vahvistui: 'normaali' volatiliteettiterttiili pysyy negatiivisena (−7.70%, 16.1% DD), information_ratio −0.757, alfa vain +2.4%/vuosi — se jää jälkeen BTC:n hallussapidosta, ja benchmark_meaningful=true, joten tämä alijäämä on todellinen.

Backtestin arviointi

Parametrit ovat otoksen ulkopuolinen siirto toiselta välityspaikalta/suuntajoukolta — virittämättömiä pikemminkin kuin ylisovitettuja, mutta myös testaamattomia tässä yhteydessä.
Strategiaraportti

Stratmill on tutkimus- ja paperikaupankäyntityökalu, ei sijoitusneuvontaa tai välittäjä. Takaisintestaus- ja paperikaupankäyntitulokset ovat hypoteettisia. Kaupankäyntiin liittyy tappion riski.