Pāriet uz saturu

Skatīt oriģinālu

BtcSpotDualTimeframeMomentumConfluenceLong

Hipotēzes

BTC Spot Divu-Laika-Periodu Momentum Confluence, LONG-ONLY 1x (BTCUSDT.BINANCE_SPOT, 4H Primārais + 1D Apstiprinājums, Tikai Long, Kad BOTH Laika Periodi Rāda UP, Citādi FLAT uz Skaidru Naudu, ATR-Trailing + Dienas Režīma-Lūzuma Izeja, Saglabāti Avota Optimizētie Parametri)

Hipotēzes

LONG-ONLY, 1x, CASH-konta pārnese labākās veiktspējas veicinātajai stratēģijai no rūpnīcas (BtcDualTimeframeMomentumConfluenceLS, Šarpa rādītājs 1.99, 458 darījumi, +$4,774 pār 29 paper-tirdzniecības dienām) uz BTCUSDT.BINANCE_SPOT, izveidota tieši kā FIRST LIVE-TRADING CANDIDATE, jo dzīvā tirdzniecības vieta ir tikai spot. Mehānisms nemainīgs, tīri OHLCV, viens instruments: FAST kāja = sekojošā 18 sveces ienesīguma zīme uz 4-HOUR svecēm; SLOW kāja = sekojošā 15 sveces ienesīguma zīme uz DAILY svecēm (nolasīta caur on_extra_bar kā konteksta kāja, nekad kā sinhronizācijas barjera). Abām jārāda AGREE. Vienīgā strukturālā izmaiņa, ko liek CASH konts, ir {LONG/FLAT/SHORT} sabrukšana uz {LONG/FLAT}: kur fjūčeru vecāka stratēģija ieiet SHORT pie kopīga krituma confluence, spot versija tur 100% USDT. Viss pārējais saglabāts burtiski: ATR(14) sekojošais stop pie 3.033x ATR no kustīgā ekstrēma, dienas režīma-lūzuma izeja, volatilitātei pielāgota kapitālam relatīva pozīcijas lieluma noteikšana (risk_pct 1.011% / 3.033xATR stop attālums), 49.7% maksimālās nominālvērtības griesti, un tieši tas pats parametru vektors, ko izvēlējās avota optimizācija (fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). Trīs pielāgojami parametri, bez papildu datiem, bez short pozīcijām, bez sviras. Spot-specifiskās koda izmaiņas: BINANCE_SPOT CASH tirdzniecības vieta (bez sviras reizinātāja position_size), size_precision 5 / price_precision 2, min_notional $10, pārdošanas darījumi tiek dimensionēti tikai atbilstoši turētajam bāzes daudzumam. Pārbaudīts, ka dati ir pieejami: BTCUSDT.BINANCE_SPOT 4-HOUR un 1-DAY sveces darbojas nepārtraukti kopš 2017-08-17 (~9 gadi, ~19,800 4H sveces).

Hipotēzes

Vecāka fjūčeru stratēģijas BtcDualTimeframeMomentumConfluenceLS tiešā pārnese uz spot tirdzniecības vietu, jo paredzētā dzīvā tirdzniecības vieta ir tikai spot. Mehānisms saglabāts burtiski: tās pašas divas momentum kājas, tas pats AGREE-vai-flat vārti, tas pats ATR(14) 3.033x sekojošais (trailing) stop no kustīgā ekstrēma, tā pati dienas režīma-lūzuma izeja, tā pati volatilitātei pielāgotā risk_pct / stop-attāluma pozīcijas lieluma noteikšana ar 49.7% nominālvērtības griestiem, un tieši tas pats parametru vektors, ko izvēlējās avota optimizācija (fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). CASH konts liek veikt tieši vienu strukturālu izmaiņu, kā to nosaka hipotēze: {LONG,FLAT,SHORT} sabrūk uz {LONG,FLAT} — should_enter atgriež BUY tikai kopīga pieauguma gadījumā un None citādi, tāpēc kopīgs kritums nozīmē 100% USDT, nevis short pozīciju. Spot-specifiskie labojumi: tirdzniecības vieta BINANCE_SPOT ar sviru 1.0 un bez sviras termiņa position_size, size_precision 5 / price_precision 2 (BTCUSDT spot), min_notional paaugstināts līdz $10, un visas izejas novirzītas caur bāzes veidnes reduce-only close_position, tāpēc SELL var tikai samazināt turēto bāzes daudzumu (nesegts spot short ir neiespējams pēc konstrukcijas, un bāzes _would_open_spot_short aizsargs nekad netiek aktivizēts). calculate_signal katrā svecē atgriež nepārtrauktu 18 sveces 4H ienesīgumu (tas mainās no sveces uz sveci); diskrētie confluence vārti atrodas should_enter, kā tas ir nepieciešams. Izmaksas uz vienu sveci ir O(1): ATR izmanto fiksētu 15 sveču logu, un ātrais ienesīgums ir viena indeksēta uzmeklēšana, tāpēc nav vēstures mēroga darba. Godīgs brīdinājums analītiķim: spot pilna cikla izmaksas ir ~0.20% pretstatā ~0.10% fjūčeru vecāka stratēģijā, tāpēc peļņai uz vienu darījumu jāpārsniedz divkāršs berzes līmenis — trenda sekošanas izejas struktūra (trail + režīma lūzums, bez fiksētas peļņas ņemšanas) ir tas, kas padara vidējo turēšanas laiku pietiekami garu, lai tas būtu ticams, taču tas ir pirmais rādītājs, kas jāseko.

Implementācija

LONG-ONLY 1x BTCUSDT spot (BINANCE_SPOT, CASH) divu-laika-periodu momentum confluence. FAST kāja = sekojošā 18 sveces ienesīguma zīme uz 4-HOUR svecēm (primārā); SLOW kāja = sekojošā 15 sveces ienesīguma zīme uz 1-DAY svecēm, patērēta caur on_extra_bar kā lēnāka laika perioda konteksta kāja (atšķirīgs laika periods, tāpēc bāzes veidnes savstarpējās kājas saskaņošanas barjera nekad neatliek 4H signālu). Abām kājām jārāda UP, lai turētu BTC; kopīgs kritums (kur fjūčeru vecāka stratēģija ieiet short) un nesaskaņa abos gadījumos nozīmē turēt 100% USDT. Izejas: ATR(14) sekojošais stop pie 3.033x ATR zem pozīcijas kustīgā maksimuma, OR dienas kājai pagriežoties uz leju zem long pozīcijas (augstāka laika perioda režīma lūzums). Pozīcijas lielums ir volatilitātei pielāgots un kapitālam relatīvs: equity * 1.011% / (3.033 * ATR), ar griestiem 49.7% no USDT bilances nominālvērtībā, ar NO sviras reizinātāju (CASH konts nevar aizņemties), kvantizēts uz size_precision 5 un noraidīts zem $10 spot minimālās nominālvērtības. Trīs pielāgojami parametri, tīri OHLCV, bez papildu datiem, bez short pozīcijām.

Verifikācijas rezultāti

Vai nu izmantojiet self._atr (pašreizējo) should_exit trail salīdzinājumā, lai precīzi atbilstu vecāka stratēģijai, vai arī aprakstā skaidri norādiet, ka trail ir piesaistīts ieejas-sveces ATR, lai analītiķis nepiedēvētu novirzi no vecāka stratēģijas tirdzniecības vietas maiņai.

Verifikācijas rezultāti

Sekojošā stop (trailing-stop) ATR tiek FROZEN ieejas brīdī (self._entry_atr, uzņemts should_enter / pozīcijas pārņemšanas brīdī) un nekad netiek atjaunots, tāpēc trail attālums ir 3.033 x ATR-ieejas-brīdī, nevis 3.033 x pašreizējais ATR(14). Veicinātā fjūčeru vecāka stratēģija (BtcDualTimeframeMomentumConfluenceLS4H) katrā svecē pievelk savu trail ar CURRENT ATR. Hipotēzes formulējums ('ATR(14) sekojošais stop pie 3.033x ATR no kustīgā ekstrēma') tiek izpildīts jebkurā gadījumā, un, tā kā _extreme ir monotons, stop līmenis joprojām tikai paceļas, tāpēc tas nav pareizības defekts — taču volatilitātes pieauguma gadījumā pēc ieejas efektīvais stop ir stingrāks nekā vecāka stratēģijā, kas ir reāla uzvedības atšķirība no stratēģijas, kuru apgalvots, ka pārnes 'burtiski'.

Verifikācijas rezultāti

Iestatiet darījuma stāvokli no izpildījuma (fill) (on_order_filled / pirmā svece ar atvērtu pozīciju), nevis should_enter iekšienē, vai arī atiestatiet to piesardzīgi calculate_signal sākumā pirms pozīcijas uzmeklēšanas.

Verifikācijas rezultāti

should_enter() maina darījuma stāvokli (_in_long = True, _extreme, _entry_atr) BEFORE, pirms bāzes veidne ir noteikusi pasūtījuma lielumu un piemērojusi minimālās nominālvērtības vārtus. Ja position_size() atgriež 0 vai $10 minimālās nominālvērtības pārbaude noraida ieeju, stratēģija paliek atzīmēta kā in-long ar aktivizētu trail, kamēr faktiski ir flat. Praksē tas pašizlīdzinās nākamajā svecē (calculate_signal redz, ka pozīcija ir None, un atiestata karogus, un should_exit nekad netiek sasniegts, kamēr ir flat), tāpēc nav novērojamas uzvedības kļūdas — taču šis invariants ir trausls, ja izejas ceļš kādreiz tiktu mainīts.

Verifikācijas rezultāti

Pareizības labad labojums nav nepieciešams. Ja nepieciešams precīzs tās pašas sveces patēriņš, pārrēķiniet _slow_dir slinki no self._extra_bars[...] calculate_signal iekšienē, nevis to kešatmiņā glabājot on_extra_bar.

Verifikācijas rezultāti

Vienas sveces aizture (latency) dienas kājā: DAILY svece un pēdējā dienas 4H svece dala vienu un to pašu slēgšanas laika zīmogu. Ja dzinējs vispirms piegādā primāro 4H sveci, _maybe_process_primary() izpildās un iezīmē _last_processed_ts, un dienas sveces _slow_dir atjauninājums (kas pienāk ar to pašu laika zīmogu) tiek patērēts tikai no NEXT 4H sveces. Tas ir konservatīvi (tas var tikai aizkavēt signālu, nekad nenoplūdinot nākotnes datus), taču tas nozīmē, ka dienas režīma-lūzuma izeja var aktivizēties līdz pat 4 stundas pēc dienas slēgšanas aptuveni pusē gadījumu, un atpakaļtesta/paper atbilstība ir atkarīga no piegādes secības stabilitātes.

Verifikācijas rezultāti

Precīza (uzticama) implementācija, taču analītiķim uz pilnas vēstures datiem būtu jāapsver trīs lietas: (1) spot darījuma pilna cikla izmaksas ir ~0.20% salīdzinājumā ar vecāka fjūčeru stratēģijas ~0.10%, tāpēc tā pati bruto priekšrocība neto izteiksmē samazinās aptuveni uz pusi — sandbox jau uzrāda komisijas maksu 10.03% apmērā no bruto; (2) parametru vektors (ātrais 18 / lēnais 15 / trail 3.033) tika izvēlēts, veicot optimizāciju uz DIFFERENT tirdzniecības vietas, laika periodu kombinācijas un virziena kopas (LONG/SHORT fjūčeri), tāpēc šī ir ārpus-izlases (out-of-sample) pārnese, nevis optimizēta konfigurācija — sandbox Šarpa rādītājs ir 0.527 ar sharpe_ci_low -0.233 un information_ratio -0.760 salīdzinājumā ar etalonu, t.i., tikai-long BTC portfelis, kas uzrāda sliktākus rezultātus nekā turēt BTC pārbaudes (smoke) periodā; (3) atmetot short kāju, tiek izņemta aptuveni puse no vecāka stratēģijas darījumu kopas (250 darījumi, visi long, 43.6% pozīcija), tāpēc realizētajam Šarpa rādītājam būtu jābūt ievērojami zemākam par vecāka stratēģijas 1.99, nevis tuvu tam. Pirmais, kas jāpārbauda reālajā atpakaļtestā: avg_trade_return_pct pret 0.25% spot apakšējo robežu (sandbox uzrāda 0.82%, taču šis periods neietver 2017 un ir tikai 2401 dienas) un vai 'normālā' volatilitātes tercile (-8.77% sandbox) paliek negatīva pilnā vēsturē.

Backtesta izvērtēšana

314 slēgti darījumi 3146 dienu laikā (2017-08 → 2026-03), metrics_reliable=true, iesniegti entry_diag 314/314 ienākšanas darījumi, no kuriem 0 noraidīti.

Backtesta izvērtēšana

Darījumi realizē hipotēzi: visi 314 LONG / 0 short (pareiza CASH vecāka stratēģijas LONG/FLAT/SHORT sabrukšana), maksimālā nominālvērtība/kapitāls 0.50 salīdzinājumā ar 0.497 griestiem, vidējais turēšanas laiks 4d8h un 43.6% pozīcija, kas atveido fjūčeru vecāka stratēģiju.

Backtesta izvērtēšana

avg_trade_return_pct 1.20% salīdzinājumā ar ~0.20% BINANCE_SPOT pilnu ciklu; komisijas maksas tikai 8.97% no bruto, ietekme 4.33% — nav robežas jautājums saistībā ar komisijām.

Backtesta izvērtēšana

max_drawdown 10.3% (zem 15% spot noklusējuma), PF 1.41, izmaksa 2.07 pie 40.4% veiksmes rādītāja (pareiza trenda forma), stresa volatilitātes tercile +28.0%.

Backtesta izvērtēšana

Ārkārtēja koncentrācija: augstākie 10 no 314 darījumiem = 93.8% no summētā darījumu ienesīguma, augstākie 20 = 141% (darījumi 21–314 kopumā negatīvi).

Backtesta izvērtēšana

Tikai 6/10 kalendārie gadi pozitīvi — tieši uz stingrās apakšējās robežas — un abi pēdējie gadi negatīvi (2025 −10.5%, 2026 −9.9%).

Backtesta izvērtēšana

Šarpa rādītājs 0.664 ar sharpe_ci_low 0.0042 un PSR 0.924 (<0.95): jau robežvērtība pirms ~225 izmēģinājumu atlases sliekšņa.

Backtesta izvērtēšana

QA bažas daļēji apstiprinājušās: 'normālā' volatilitātes tercile paliek negatīva (−7.70%, 16.1% DD), information_ratio −0.757, alfa tikai +2.4%/gadā — tā uzrāda sliktākus rezultātus nekā turēt BTC, un benchmark_meaningful=true, tāpēc šis atpalicība ir reāla.

Backtesta izvērtēšana

Parametri ir ārpus-izlases (out-of-sample) pārnese no citas tirdzniecības vietas/virziena kopas — nepielāgoti, nevis pārpielāgoti, taču arī šeit nav testēti.
Stratēģijas pārskats

Stratmill ir izpētes un papīra tirdzniecības rīks, nevis finanšu konsultācija vai brokeris. Atpakaļejošās testēšanas un papīra tirdzniecības rezultāti ir hipotētiski. Tirdzniecība ir saistīta ar zaudējumu risku.