Sări la conținut
Toate strategiile

Strategii

BTC COIN-M US-Sesiune: Sezonalitate de continuare a impulsului, long-short (un singur instrument BTCUSD_PERP.BINANCE_CM, bare de 1h doar OHLCV; intrare în direcția unui impuls semnificativ de la începutul sesiunii US și menținere pentru continuarea intraday până la închiderea sesiunii, 3 parametri)

Rezultat: Abandonată

BtcCmInverseUsSessionMomentumContinuationLS

Criterii pentru backtest: - metrici nesigure: 648 tranzacții / 1409 zile de date oferă prea puține dovezi (sunt necesare >=5 tranzacții în >=10 zile) — mărește frecvența semnalelor sau extinde fereastra

Ipoteza

O strategie LONG-SHORT pe un singur instrument, bazată pe calendar/sezonalitate, pe contractul perpetual invers Binance COIN-M BTCUSD_PERP.BINANCE_CM (BTC-margined, taker dus-întors ~0.06%, doar OHLCV — cu un singur segment, evită capcana datelor indisponibile data_unavailable pentru multi-leg/funding COIN-M din L20/L34; barele perpetual BTC CM au întregul istoric din catalog). Avantajul provine din NOT mean-reversion, NOT breakout de interval, NOT funding, NOT lichidări și NOT cross-sectional — este o anomalie……Afișează mai multeAfișează mai puțin

O strategie LONG-SHORT pe un singur instrument, bazată pe calendar/sezonalitate, pe contractul perpetual invers Binance COIN-M BTCUSD_PERP.BINANCE_CM (BTC-margined, taker dus-întors ~0.06%, doar OHLCV — cu un singur segment, evită capcana datelor indisponibile data_unavailable pentru multi-leg/funding COIN-M din L20/L34; barele perpetual BTC CM au întregul istoric din catalog). Avantajul provine din NOT mean-reversion, NOT breakout de interval, NOT funding, NOT lichidări și NOT cross-sectional — este o anomalie intraday TIME-OF-DAY: impulsul direcțional format la deschiderea biroului US tinde să PERSIST pe parcursul sesiunii US. Mecanism: în fiecare zi, se măsoară randamentul BTC pe o fereastră de semnal fixă, la începutul sesiunii US (13:00->15:00 UTC). Dacă randamentul ferestrei depășește un prag de intrare (impuls direcțional nou și semnificativ, nu zgomot), se intră la închiderea barei 15:00 UTC, în direcția SAME, iar poziția este menținută pentru a surprinde continuarea până la ora ieșirii la închiderea sesiunii (21:00 UTC); maximum o poziție pe zi. Direcționată intenționat către COIN-M din două motive: (1) pragul de comision de ~0.10% CM este mai mic decât pragul 0.15% USD-M, lăsând unui avantaj modest de continuare intraday mai mult spațiu pentru a acoperi costurile; (2) BINANCE_CM este subreprezentat (3.4% față de ținta de >= 5%), iar aceasta este o utilizare legală CM cu un singur segment BTC-OHLCV, conform L20. Doar 3 parametri (durata ferestrei de semnal, pragul de intrare, multiplu de stop-loss ATR) pentru a evita eșecurile cauzate de supraoptimizare care au eliminat 248 ipoteze anterioare.

Iterație reluată. Feedbackul arată că abandonarea anterioară a fost cauzată de pipeline (asociere greșită a staticmethod-urilor Layer-2, verdicte de performanță QA pe un test smoke neoptimizat, lipsa sloturilor de backtest), așa că mecanismul a rămas intenționat neschimbat: aceeași referință reținută -13:00-UTC, aceeași intrare în direcția continuării, aceeași ieșire calendaristică, aceeași dimensionare în contracte întregi COIN-M și aceiași trei parametri ajustabili cu limitele lor. Retrimiterea unui cod identic……Afișează mai multeAfișează mai puțin

Iterație reluată. Feedbackul arată că abandonarea anterioară a fost cauzată de pipeline (asociere greșită a staticmethod-urilor Layer-2, verdicte de performanță QA pe un test smoke neoptimizat, lipsa sloturilor de backtest), așa că mecanismul a rămas intenționat neschimbat: aceeași referință reținută -13:00-UTC, aceeași intrare în direcția continuării, aceeași ieșire calendaristică, aceeași dimensionare în contracte întregi COIN-M și aceiași trei parametri ajustabili cu limitele lor. Retrimiterea unui cod identic la nivel de octeți ar eșua verificării hash-ului neschimbat, așa că am făcut o modificare substanțială acolo unde codul era cu adevărat cel mai slab: stopul de protecție ATR este acum verificat în raport cu LOW/HIGH barei, în loc să fie verificat doar la CLOSE. Pe bare de 1 ore, un stop verificat doar la închidere nu se declanșează când bara depășește nivelul și închide apoi în interiorul lui, astfel că o sesiune pe pierdere putea suporta o variație arbitrar de mare până la ieșirea calendaristică 21:00 — stopul este singurul element care limitează riscul respectiv, iar subestimarea lui este tocmai eroarea de stop la închiderea barei avertizată de regulile de codare. Declanșatorul este intrabar; ieșirea se execută tot la închiderea barei prin ordinul de piață al șablonului de bază, deci nu se presupune un preț de execuție intrabar. Am declarat și _param_bounds pentru cei trei parametri cu limite (signal_window_hours [1,5], entry_threshold [0.002,0.02], atr_stop_mult [1.0,4.0]), astfel încât optimizatorul să nu poată căuta valori pe care codul le rescrie în tăcere — docstring-ul promitea deja această corespondență. Verificat față de catalog pentru fereastra sandboxului (bare de 1 ore pentru BTCUSD_PERP.BINANCE_CM, ultimele ~830 zile): impulsul 13:00->15:00 UTC depășește pragul 0.6% în 296 din 726 zile, așadar intrările sunt frecvente, iar rularea nu va rămâne fără tranzacții; impulsul absolut median este 0.46%, considerabil peste costul dus-întors de ~0.10% CM pe care trebuie să-l depășească continuarea.

Expectanță negativă pe un eșantion fiabil de 748 tranzacții / 6.1 ani: avg_trade_return_pct este -0.109% (sub zero, înainte chiar de a aplica costul dus-întors de ~0.10% CM), profit_factor 0.84, Sharpe -0.81, contul a fost lichidat la -100%. Implementarea respectă fidel ipoteza, iar pipeline-ul de intrare funcționează corect, deci acesta este un verdict al pieței: impulsul de la începutul sesiunii US direcționează intrarea, dar continuarea intraday realizată este net negativă în fiecare regim de volatilitate și aproape în fiecare an. Optimizarea nu poate îmbunătăți un avantaj aflat sub zero înainte de costuri; cei trei parametri (fereastră, prag, stop ATR) nu au nicio zonă care să transforme într-o primă pozitivă continuarea negativă. Îngrijorarea lui QA privind avantajul se confirmă pe istoricul complet. abandon_class=negative_expectancy.

Implementare

Sezonalitate intraday long-short, bazată pe ora din zi, pe perpetuu invers BTC COIN-M (BTCUSD_PERP.BINANCE_CM, bare de 1 ore, doar OHLCV). În fiecare zi UTC, închiderea barei care se termină la 13:00 UTC este reținută ca referință pentru sesiunea US; două ore mai târziu (bara care se termină la 15:00 UTC) se măsoară impulsul de la începutul sesiunii US ca închidere/referință - 1. Dacă amplitudinea sa depășește entry_threshold (implicit 0.6%), strategia intră în direcția SAME — long la un impuls ascendent, short……Afișează mai multeAfișează mai puțin

Sezonalitate intraday long-short, bazată pe ora din zi, pe perpetuu invers BTC COIN-M (BTCUSD_PERP.BINANCE_CM, bare de 1 ore, doar OHLCV). În fiecare zi UTC, închiderea barei care se termină la 13:00 UTC este reținută ca referință pentru sesiunea US; două ore mai târziu (bara care se termină la 15:00 UTC) se măsoară impulsul de la începutul sesiunii US ca închidere/referință - 1. Dacă amplitudinea sa depășește entry_threshold (implicit 0.6%), strategia intră în direcția SAME — long la un impuls ascendent, short la unul descendent — pentru a profita de continuarea intraday, cu cel mult o intrare pe zi UTC. Ieșirea are loc la închiderea sesiunii US (bara care se termină la 21:00 UTC), la un stop fix de atr_stop_mult x ATR față de prețul de intrare, verificat acum intrabar în raport cu minimul/maximul barei, sau la limita de siguranță max_hold_bars dacă lipsește bara 21:00. Dimensionarea respectă contractele inverse: risk_pct din capitalul propriu împărțit la fracția stopului determină valoarea noțională USD, plafonată la max_gross_frac din capitalul propriu și convertită în contracte de WHOLE $100 prin contracts_for_notional (niciodată prin formula liniară capital propriu/preț). Trei parametri ajustabili: signal_window_hours, entry_threshold, atr_stop_mult.

Rezultate verificare

CLEAN RESTART 2026-09-04 — istoricul verdictelor și înregistrările de învățare ale acestei rulări au fost eliminate, iar aceasta a fost reluată de la verificare. Abandonarea anterioară a fost cauzată de pipeline, nu de piață: harness-ul Layer-2 a asociat greșit helper-ele @staticmethod (remediat), QA a emis verdicte finale de performanță pe un test smoke neoptimizat (eliminat — QA evaluează acum doar corectitudinea), iar expirările sandbox-ului au fost cauzate de lipsa sloturilor de backtest (remediată). Ipoteza și codul strategiei sunt neschimbate. Evaluează codul după meritele sale; performanța va fi decisă ulterior de backtestul complet și de optimizator.

Nu este necesară nicio modificare de cod; semnalează analistului neconcordanța dintre câmpurile metricilor.

avg_holding_bars este raportat ca 0.0, în timp ce avg_holding_period este „5h 13m” — o particularitate a raportării metricilor, nu o eroare de cod. Logica de menținere a poziției (intrare la închiderea barei 15:00, ieșire la închiderea barei 21:00 sau la stopul intrabar ATR, orizont de ~6 bare) este corectă și concordă cu media de 5h13m.

Opțional, adaugă în should_enter() o verificare explicită că nu există o poziție deschisă, ca măsură de precauție; comportamentul actual este corect, deoarece șablonul de bază suprimă intrările.

should_enter() nu verifică direct dacă nu există deja o poziție; se bazează pe șablonul de bază pentru a suprima intrarea cât timp o poziție este deschisă. Deoarece bara de intrare (ora ts 14) apare o dată pe zi UTC, iar poziția este menținută până la ieșirea din aceeași zi, la 21:00, există în practică o singură ocazie de intrare pe zi, astfel că limita intenționată de „maximum o poziție pe zi” este respectată — însă garanția este implicită în șablonul de bază, nu explicită aici.

Sandboxul neoptimizat este pe minus: total_return -22%, Sharpe -0.55, avg_trade_return_pct -0.139% (sub zero, nu doar sub pragul comisionului), profit_factor 0.79, iar comisionul reprezintă 19.16% din brut pentru 296 tranzacții intraday. Acesta este tiparul clasic „avantajul continuării intraday nu acoperă costul dus-întors” — impulsul de semnal 0.6% filtrează intrările, dar nu spune nimic despre mișcarea de continuare realizată, iar aici randamentul continuării per tranzacție este net negativ după costul de……Afișează mai multeAfișează mai puțin

Sandboxul neoptimizat este pe minus: total_return -22%, Sharpe -0.55, avg_trade_return_pct -0.139% (sub zero, nu doar sub pragul comisionului), profit_factor 0.79, iar comisionul reprezintă 19.16% din brut pentru 296 tranzacții intraday. Acesta este tiparul clasic „avantajul continuării intraday nu acoperă costul dus-întors” — impulsul de semnal 0.6% filtrează intrările, dar nu spune nimic despre mișcarea de continuare realizată, iar aici randamentul continuării per tranzacție este net negativ după costul de ~0.06-0.10% CM și rulajul ridicat. Nu este NOT un defect de cod (win_rate 0.43, PF 0.79 și Sharpe -0.55 sunt valori obișnuite, nu tiparul unei erori de polaritate/dimensionare inversă). regime_performance arată că avantajul apare doar în terțila de volatilitate „normală” (+7.1%, Sharpe 0.54) și este puternic negativ în perioadele calme/stresate. Analistul ar trebui să verifice pe istoricul complet dacă vreo zonă de parametri (entry_threshold, signal_window_hours) produce un randament al continuării per tranzacție care depășește clar costul dus-întors CM; în caz contrar, premisa continuării în funcție de ora din zi nu este susținută. Aceasta este o recomandare și nu blochează.

Analiză backtest

Sharpe
-0,81
Randament total
-100,00%
Drawdown maxim
100,00%
Tranzacții totale
748
Rată de câștig
42,2%
Factor de profit
0,84

Implementare fidelă: tranzacțiile corespund mecanismului long-short de continuare din sesiunea US prevăzut de ipoteză (748 tranzacții, ~373 long / 375 short, o intrare/zi, fereastră de semnal corectă 13:00->15:00 / ieșire 21:00).

Eșantion fiabil și amplu, pe 6.1 ani (50,537 bare) — rezultatul are semnificație statistică, nu este zgomot.

Pipeline-ul de intrare funcționează corect (875 semnale = 875 trimise, fără eliminări pentru dimensiune zero / valoare noțională minimă / numerar), deci acesta este un verdict al pieței, nu un defect de cod.

Expectanță negativă: avg_trade_return_pct -0.109% este BELOW ZERO, nu doar sub pragul comisionului de ~0.10% CM — mișcarea de continuare intraday este net negativă înainte ca și costurile să conteze.

profit_factor 0.84 (<1), win_rate 0.42, expectanță -$42.64/tranzacție, Sharpe -0.81, Sortino -0.74.

Cont lichidat (total_return -100%, max_drawdown 100%) la 2025-05-18.

Pierde în fiecare regim de volatilitate (calm -53%, normal -100%, stresat -16%) și în fiecare an calendaristic, cu excepția lui 2022 — nicio zonă de parametri nu arată un avantaj persistent.

Comisionul de 16.66% din brut confirmă tiparul clasic „avantajul nu acoperă costul dus-întors” semnalat de QA; pragul impulsului filtrează intrările, dar nu spune nimic despre continuarea realizată, care este net negativă.

Analiză

Criterii pentru backtest: - metrici nesigure: 648 tranzacții / 1409 zile de date oferă prea puține dovezi (sunt necesare >=5 tranzacții în >=10 zile) — mărește frecvența semnalelor sau extinde fereastra

Istoric iterații

Verificare eșuată (revizuirea Layer 4 — QA) [clasă=premise_falsified]: - Premisa continuării impulsului în sesiunea US este infirmată: intrarea în direcția impulsului 13:00-15:00 UTC și menținerea până la închiderea 21:00 este net LOSER. profit_factor 0.757 (<1), total_return -43.11%, avg_trade_return_pct -0.169% (negativ), expectanță -$105, Sharpe -0.145, alfa -0.107, pentru 296 tranzacții măsurate fiabil. win_rate 0.432 cu un raport simetric al câștigurilor și pierderilor (avg_win $760 ~= avg_loss $765) —……Afișează mai multeAfișează mai puțin

Verificare eșuată (revizuirea Layer 4 — QA) [clasă=premise_falsified]: - Premisa continuării impulsului în sesiunea US este infirmată: intrarea în direcția impulsului 13:00-15:00 UTC și menținerea până la închiderea 21:00 este net LOSER. profit_factor 0.757 (<1), total_return -43.11%, avg_trade_return_pct -0.169% (negativ), expectanță -$105, Sharpe -0.145, alfa -0.107, pentru 296 tranzacții măsurate fiabil. win_rate 0.432 cu un raport simetric al câștigurilor și pierderilor (avg_win $760 ~= avg_loss $765) — impulsul de la începutul sesiunii US continuă doar în ~43% din cazuri, deci efectul exploatat de strategie lipsește (ușor inversat), iar după costul dus-întors de ~0.10% CM, pe o menținere de ~6h, produce pierderi. Levierul 2.0 amplifică pierderea până la un drawdown de 61.7% (CI la 90%). Direcția este implementată corect (continuare conform specificației; fără eroare de polaritate/secvențiere), deci implementarea este fidelă, dar datele infirmă premisa de sezonalitate. - Levierul 2.0 cu ~87% avg_position transformă pariul pe sesiune fără avantaj într-un drawdown de 61.7% (CI la 90.2%) și end_unrealized -11.9% — risc suplimentar cu expectanță negativă.

Stratmill este un instrument de cercetare și paper-trading, nu consultanță financiară sau broker. Rezultatele de backtest și paper trading sunt ipotetice. Tranzacționarea implică riscul de pierdere.