BtcSpotDualTimeframeMomentumConfluenceLong
Hipotézisek
BTC Spot Kettős Időkeret Momentum Konfluencia, LONG-ONLY 1x (BTCUSDT.BINANCE_SPOT, 4H Elsődleges + 1D Megerősítés, Csak Long, Ha BOTH Időkeret UP Irányba Mutat, Egyébként FLAT Készpénzre, ATR-Trailing + Napi Rezsimtörés-Kilépés, Forrás-Optimalizált Paraméterek Megtartva)
Hipotézisek
A gyár legjobban teljesítő promótált stratégiájának (BtcDualTimeframeMomentumConfluenceLS, Sharpe 1.99, 458 kötés, +$4,774 29 nap paper trading alatt) egy LONG-ONLY, 1x, CASH-számlás portolása erre: BTCUSDT.BINANCE_SPOT, kifejezetten a FIRST LIVE-TRADING CANDIDATE céljával létrehozva, mivel az élő venue csak spot. A mechanizmus változatlan, tiszta-OHLCV, egyetlen instrumentumos: FAST láb = a futó 18-báros hozam előjele 4-HOUR bárokon; SLOW láb = a futó 15-báros hozam előjele DAILY bárokon (a on_extra_bar-on keresztül olvasva, kontextus lábként, soha nem szinkronizációs korlátként). Mindkettőnek AGREE-nak kell lennie. Az egyetlen strukturális változtatás, amelyet a CASH számla kikényszerít, hogy {LONG/FLAT/SHORT} összeomlik erre: {LONG/FLAT}: ahol a határidős szülő SHORT-ba megy együttes lefelé konfluenciánál, a spot verzió 100% USDT-t tart. Minden más szó szerint megőrzött: ATR(14) trailing stop 3.033x ATR a futó extrémtől, napi rezsimtörés-kilépés, volatilitás-skálázott, tőkéhez viszonyított méretezés (risk_pct 1.011% / 3.033xATR stop-távolság), 49.7% maximum névérték korlát, és pontosan az a paraméter-vektor, amelyet a forrás optimalizálás kiválasztott (fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). Három hangolható paraméter, nincs kiegészítő adat, nincs short, nincs tőkeáttétel. Spot-specifikus kódmódosítások: BINANCE_SPOT CASH venue (nincs tőkeáttétel-szorzó position_size-ben), size_precision 5 / price_precision 2, min_notional $10, az eladások csak a tartott bázismennyiséghez méretezettek. Az adatok jelenléte ellenőrizve: BTCUSDT.BINANCE_SPOT 4-HOUR és 1-DAY bárok folyamatosan futnak 2017-08-17 óta (~9 év, ~19,800 4H bár).
Hipotézisek
A promótált határidős szülő, a BtcDualTimeframeMomentumConfluenceLS közvetlen portolása a spot venue-ra, mivel a tervezett élő venue csak spot. A mechanizmus szó szerint megőrzött: ugyanaz a két momentum láb, ugyanaz a AGREE-vagy-flat kapu, ugyanaz a ATR(14) 3.033x trailing stop a futó extrémtől, ugyanaz a napi rezsimtörés-kilépés, ugyanaz a volatilitás-skálázott risk_pct / stop-távolság méretezés 49.7% névértékű felső korláttal, és pontosan az a paraméter-vektor, amelyet a forrás optimalizálás kiválasztott (fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). A CASH számla pontosan egy strukturális változtatást kényszerít ki, ahogy a hipotézis is előírja: {LONG,FLAT,SHORT} összeomlik erre: {LONG,FLAT} — should_enter csak együttes felfelé mozgásnál ad vissza BUY-t, egyébként None-t, tehát az együttes lefelé mozgás 100% USDT, nem short. Spot-specifikus módosítások: venue BINANCE_SPOT, tőkeáttétel 1.0 és nincs tőkeáttétel-tag position_size-ben, size_precision 5 / price_precision 2 (BTCUSDT spot), min_notional felemelve $10-ra, és minden kilépés az alapsablon reduce-only close_position-én keresztül van irányítva, így egy SELL csak a tartott bázismennyiséget csökkentheti (egy meztelen spot short a konstrukcióból adódóan lehetetlen, és az alap _would_open_spot_short őre soha nem lép működésbe). calculate_signal minden bárnál a folyamatos 18-báros 4H hozamot adja vissza (bárról bárra változik); a diszkrét konfluencia-kapu should_enter-ben található, ahogy azt előírták. A báronkénti költség O(1): a ATR egy fix 15-báros ablakot használ, a gyors hozam pedig egyetlen indexelt lekérdezés, tehát nincs historikus adattal skálázódó munka. Egy őszinte figyelmeztetés az elemzőnek: a spot fordulós költség ~0.20%, míg a határidős szülőé ~0.10%, tehát a kötésenkénti előnynek kétszer akkora súrlódást kell fedeznie — a trendkövető kilépési struktúra (trailing + rezsimtörés, nincs fix take-profit) teszi valószínűvé, hogy az átlagos tartási idő elég hosszú ehhez, de ez az a mutató, amit elsőként érdemes figyelni.
Megvalósítás
LONG-ONLY 1x BTCUSDT spot (BINANCE_SPOT, CASH) kettős időkeret momentum konfluencia. FAST láb = a futó 18-báros hozam előjele 4-HOUR bárokon (elsődleges); SLOW láb = a futó 15-báros hozam előjele 1-DAY bárokon, a on_extra_bar-on keresztül felhasználva, lassabb időkeretű kontextus lábként (eltérő időkeret, tehát az alapsablon kereszt-láb igazítási korlátja soha nem halasztja el a 4H jelzést). Mindkét lábnak UP irányba kell mutatnia a BTC tartásához; az együttes lefelé mozgás (ahol a határidős szülő short-ol) és az eltérés is 100% USDT tartását jelenti. Kilépések: ATR(14) trailing stop 3.033x ATR-vel a pozíció futó csúcsa alatt, OR a napi láb lefelé fordulása a long alatt (magasabb időkeretű rezsimtörés). A méretezés volatilitás-skálázott és tőkéhez viszonyított: equity * 1.011% / (3.033 * ATR), a USDT egyenleg 49.7%-ára korlátozva névértékben, NO tőkeáttétel-szorzóval (CASH számla nem hitelezhet), size_precision 5-re kvantálva, és elutasítva a $10 spot minimum névérték alatt. Három hangolható paraméter, tiszta OHLCV, nincs kiegészítő adat, nincs short.
Ellenőrzési eredmények
Vagy használja a self._atr-t (aktuális) should_exit trailing összehasonlításában, hogy pontosan megegyezzen a szülővel, vagy jelezze kifejezetten a leírásban, hogy a trailing a belépési bár ATR-hez van rögzítve, hogy az elemző ne tulajdonítsa a szülőtől való eltérést a venue-váltásnak.
Ellenőrzési eredmények
A trailing stop ATR FROZEN-nál belépéskor rögzített (self._entry_atr, should_enter-ben vagy pozíció átvételekor rögzítve), és soha nem frissül, tehát a trailing-távolság a 3.033 x belépéskori ATR-ra vonatkozik, nem 3.033 x aktuális ATR(14)-ra. A promótált határidős szülő (BtcDualTimeframeMomentumConfluenceLS4H) a CURRENT ATR-jét minden bárnál újraszámolva ratchet-eli a trailing-jét. A hipotézis megfogalmazása ('ATR(14) trailing stop 3.033x ATR-nál a futó extrémtől') mindkét esetben teljesül, és mivel az _extreme monoton, a stop szint továbbra is csak felfelé ratchet-el, tehát ez nem korrektségi hiba — de egy belépés utáni volatilitás-expanzió esetén az effektív stop szorosabb, mint a szülőé, ami valós viselkedésbeli eltérés attól a stratégiától, amelyet ez a leírás 'szó szerinti' portolásnak állít.
Ellenőrzési eredmények
Állítsa be a kötés állapotát a végrehajtás alapján (on_order_filled / az első bár nyitott pozícióval) should_enter helyett, vagy állítsa vissza védekezően calculate_signal elején, a pozíció-lekérdezés előtt.
Ellenőrzési eredmények
should_enter() módosítja a kötés állapotát (_in_long = True, _extreme, _entry_atr), BEFORE az alapsablon már méretezte a megbízást és alkalmazta a minimum-névérték kaput. Ha position_size() 0-t ad vissza, vagy a $10 minimum-névérték ellenőrzés elutasítja a belépést, a stratégia in-long állapotúként marad megjelölve, egy felfegyverzett trailinggel, miközben flat. A gyakorlatban ez önmagát gyógyítja a következő báron (calculate_signal látja, hogy a pozíció None, és visszaállítja a jelzőket, és should_exit soha nem érhető el flat állapotban), tehát nincs megfigyelhető viselkedésbeli hiba — de az invariáns törékeny, ha a kilépési útvonal valaha is megváltozik.
Ellenőrzési eredmények
Helyesbítés nem szükséges. Ha pontosan az azonos báron belüli felhasználás a cél, számítsa újra lazán a _slow_dir-t a self._extra_bars[...]-ból calculate_signal-en belül, ahelyett hogy on_extra_bar-ben gyorsítótárazná.
Ellenőrzési eredmények
Egybáros késleltetés a napi lábon: a DAILY bár és a nap utolsó 4H bárja ugyanazt a záró időbélyeget osztja meg. Ha a motor először a fő 4H bárt szállítja, a _maybe_process_primary() lefut és lebélyegzi a _last_processed_ts-t, a napi bár _slow_dir frissítése (amely ugyanazzal a ts-sel érkezik) pedig csak a NEXT 4H bárból kerül felhasználásra. Ez konzervatív (csak késleltetheti a jelzést, soha nem szivárogtathat jövőbeli adatot), de azt jelenti, hogy a napi rezsimtörés-kilépés az esetek kb. felében akár 4 órával a napi zárás után is elsülhet, és a backtest/paper konzisztencia a szállítási sorrend stabilitásán múlik.
Ellenőrzési eredmények
Hűséges implementáció, de három dolgot érdemes mérlegelnie az elemzőnek a teljes historikus adaton: (1) a spot fordulós költség kb. 0.20% a határidős szülő ~0.10%-hez képest, így ugyanaz a bruttó előny nagyjából a felére csökken nettóban — a homokozó máris 10.03%-os jutalékot mutat a bruttóhoz képest; (2) a paraméter-vektort (gyors 18 / lassú 15 / trailing 3.033) egy DIFFERENT venue-n, időkeret-kombináción és irány-készleten (LONG/SHORT határidős) végzett optimalizálási futtatás választotta ki, tehát ez egy mintán kívüli (out-of-sample) átvitel, nem optimalizált konfiguráció — a homokozó Sharpe-ja 0.527, sharpe_ci_low -0.233 és information_ratio -0.760 a benchmarkhoz képest, azaz egy csak-long BTC könyv, amely alulteljesíti a BTC tartását a smoke-teszt ablakban; (3) a short láb elhagyása nagyjából a szülő kötésállományának felét eltávolítja (250 kötés, mind long, 43.6% kitettség), így a realizált Sharpe-nak jóval a szülő 1.99 értéke alatt kell lennie, nem pedig annak közelében. Az első dolog, amit a valós backteszten érdemes ellenőrizni: avg_trade_return_pct a 0.25% spot minimumhoz képest (a homokozó 0.82%-t mutat, de ez az ablak kizárja 2017-t és mindössze 2401 napos), valamint hogy a 'normál' volatilitási tercilis (-8.77% a homokozóban) negatív marad-e a teljes historikus adaton.
Backteszt-értékelés
314 lezárt kötés 3146 nap alatt (2017-08 → 2026-03), metrics_reliable=igaz, entry_diag 314/314 bevitel beküldve, 0 elutasítva.
Backteszt-értékelés
A kötések megvalósítják a hipotézist: minden 314 LONG / 0 short (a szülő LONG/FLAT/SHORT-jének helyes CASH összeomlása), a maximum névérték/tőke arány 0.50 a 0.497 korláthoz képest, átlagos tartási idő 4d8ó, és a 43.6% kitettség reprodukálja a határidős szülőt.
Backteszt-értékelés
avg_trade_return_pct 1.20% egy ~0.20% BINANCE_SPOT-os fordulós költséghez képest; a jutalékok csak a bruttó 8.97%-a, a hatás 4.33% — nem díjmarginális.
Backteszt-értékelés
max_drawdown 10.3% (a 15% spot alapérték mellett), PF 1.41, a kifizetés 2.07 egy 40.4%-os találati arány mellett (helyes trend-alak), stresszelt volatilitási tercilis +28.0%.
Backteszt-értékelés
Extrém koncentráció: a legjobb 10/314 kötés = az összesített, kötésenkénti hozam 93.8%-a, a legjobb 20 = 141% (a 21–314 kötések nettó negatívak).
Backteszt-értékelés
Csak 6/10 naptári év pozitív — pontosan a szigorú küszöbön — és mindkét legutóbbi év negatív (2025 −10.5%, 2026 −9.9%).
Backteszt-értékelés
Sharpe 0.664, sharpe_ci_low 0.0042 és PSR 0.924 (<0.95): már a kb. 225-próbás kiválasztási küszöb előtt is marginális.
Backteszt-értékelés
QA aggálya részben megerősítést nyert: a 'normál' volatilitási tercilis továbbra is negatív (−7.70%, 16.1% DD), information_ratio −0.757, az alfa mindössze +2.4%/év — alulteljesíti a BTC tartását, és benchmark_meaningful=igaz, tehát ez a lemaradás valós.
Backteszt-értékelés
A paraméterek egy másik venue-ről/irány-készletről történő mintán kívüli átvitelből származnak — nem túlillesztettek, de nem is tesztelték őket itt.
A Stratmill egy kutatási és papíralapú kereskedési eszköz, nem befektetési tanácsadás vagy bróker. A backteszt- és papírkereskedési eredmények hipotetikusak. A kereskedés veszteség kockázatával jár.