Strategie
Mean reversion su bande di volatilità in regime laterale, long-short (singolo strumento ETHUSDT Binance USD-M, barre 1H, strategia contrarian sugli scostamenti estremi ONLY quando un filtro di trend conferma l’assenza di trend — correzione documentata al fallimento della reversal sui mercati principali in trend, pochi parametri)
Esito: Abbandonato
EthRangingRegimeVolBandMeanReversionLS1H
Riepilogo esito
Ipotesi
Correzione dell’iterazione 3 per il timeout di Layer-3: la versione precedente ricostruiva array numpy dalla cronologia crescente delle barre ENTIRE e la scorreva con cicli Python ADX a ogni barra, con un costo totale O(n^2) che superava il limite di 300s del test rapido su dati 1H di più anni. La modifica chirurgica minima limita self._bars a una coda di lunghezza fissa (self._calc_window = max(band_period, 5*adx_period)+10 = 80 barre) prima di creare gli array: il lavoro per barra è così O(1) e il costo totale O(n). Tutta la logica di segnale, ingresso, uscita e dimensionamento è identica byte per byte al codice che aveva già superato i Layer 1-2, quindi nessun controllo precedente regredisce. La finestra copre ampiamente il warmup Wilder di ADX (2*adx_period+1) e il periodo della banda SMA.
Implementazione
Strategia di mean reversion long-short su 1H per ETHUSDT USD-M perp. Vende gli scostamenti estremi dello z-score da una banda SMA di 24 barre, ma ONLY quando ADX(14) < 25 (regime senza trend/laterale). Resta fuori nei regimi di trend ed esce se il trend si attiva durante l’operazione. Uscite con stop-loss e al ritorno alla media. Il calcolo per barra è limitato a una finestra recente fissa, così il backtest richiede tempo O(n).
Risultati di verifica
Verifica non superata (Layer 3 — backtest in sandbox): il test rapido ha superato il limite di 300s. Quasi sempre significa che il lavoro per barra cresce con la cronologia, per esempio scandendo di nuovo l’intera serie dei funding/dati supplementari o ricostruendo una lista e chiamando min()/sorted() dentro calculate_signal()/on_bar() a ogni barra. Precalcola gli array ordinati di timestamp ONCE in __init__ e usa bisect, oppure memorizza i risultati delle ricerche con il timestamp come chiave, così il costo per barra è O(log n) anziché O(n).
Revisione Backtest
- Sharpe
- -1,94
- Rendimento totale
- -85,70%
- Drawdown massimo
- 86,79%
- Operazioni totali
- 1388
- Tasso di successo
- 52,9%
- Profit Factor
- 0,72
Implementazione pulita e fedele: il filtro di regime ADX, la strategia z-score contrarian e la logica di stop/uscita esprimono correttamente l’ipotesi dichiarata (nessun artefatto, nessun errore contabile, vol 20.6% plausibile e nessuna giornata impossibile).
Campione e infrastruttura solidi: 1,388 operazioni in oltre 6 anni, molte operazioni, un solo strumento liquido, costo per barra O(1) — il backtest è affidabile.
Il risultato negativo è di per sé informativo: conferma chiaramente, con un campione ampio e statisticamente significativo, l’ipotesi che non vi sia reversal sulle principali criptovalute.
Vantaggio costantemente negativo nell’arco di EVERY anno (2020 -13%, 2021 -52%, 2022 -32%, 2023 -2.8%, 2024 -5.8%, 2025 -25.6%, 2026 -18.4%) e in ogni regime — total_return -85.7%, max_drawdown 86.8%.
Metriche corrette per il rischio nettamente negative, senza ambiguità: Sharpe -1.94 (intero CI negativo, ci_high -1.14), Sortino -2.46, PSR 0.0, profit_factor 0.72, information_ratio -1.01, valore atteso -$60.76/operazione su 1,388 operazioni.
Geometria dei payoff invertita rispetto a quanto l’ipotesi intendeva evitare: exit_z=0.3 (vincita minima) contro stop a 4% dà avg_win $290 < avg_loss $455 con un tasso di vincita del 53%; le commissioni assorbono 16% del lordo — ma anche una geometria corretta non può salvare un segnale senza valore predittivo nell’arco di 6 anni.
Cronologia iterazioni
Verifica non superata (Layer 2 — scenari sintetici): Parametri usati: ['exit_z', 'entry_z', 'risk_frac', 'adx_period', 'band_period', 'min_notional', 'adx_threshold', 'stop_loss_pct'] Controlla che __init__ imposti tutti gli attributi usando self.parameters.get(). - steady_uptrend: TypeError: 'float' object is not callable (timestamp della barra: 1735691580000) - steady_downtrend: TypeError: 'float' object is not callable (timestamp della barra: 1735691580000) - flat_ranging: TypeError: 'float' object is not callable (timestamp della barra: 1735691580000) - volatility_spike: TypeError: 'float' object is not callable (timestamp della barra: 1735691580000) - zero_volume: TypeError: 'float' object is not callable (timestamp della barra: 1735691580000) - price_gap: TypeError: 'float' object is not callable (timestamp della barra: 1735691580000)
Riepilogo esito
La reversal di breve periodo non ha un vantaggio positivo sulle principali criptovalute liquide, nemmeno limitandola a un regime senza trend ADX; quindi, anche su ETH, la strategia perde in tutti gli anni e regimi quando vende le estensioni eccessive.
L’analista ha emesso un verdetto di «abbandono» alla fase BACKTEST_REVIEW precedente all’ottimizzazione, giudicando la premessa fondamentalmente fallimentare anziché un bug correggibile. Il codice ha attuato fedelmente l’ipotesi e il backtest era pulito e affidabile: non c’era alcun difetto da correggere né leve non tarate da ottimizzare. Non sono state avviate l’ottimizzazione, la successiva revisione dell’analista né la revisione del rischio.
Una strategia di mean reversion long-short su 1H di ETHUSDT Binance USD-M perp, che puntava al rientro degli scostamenti estremi dello z-score da una breve SMA, ma solo quando un filtro di trend ADX (ADX<25) confermava un regime laterale senza trend; restava fuori dal mercato durante i trend per evitare di contrastare il momentum.
Su oltre 1,388 operazioni e più di 6 anni (2019-2026), la strategia ha perso nettamente: rendimento totale -85.7%, Sharpe -1.94 (intero CI negativo, ci_high -1.14), profit factor 0.72, valore atteso -$60.76/operazione e drawdown massimo 86.8% con un tasso di vincita del 52.9%. Risultato negativo in ogni anno e regime, con geometria dei payoff invertita (vincita media $290 < perdita media $455) e circa 16% del lordo assorbito dalle commissioni.
Stratmill è uno strumento di ricerca e paper trading, non una consulenza finanziaria né un broker. I risultati di backtest e paper trading sono ipotetici. Il trading comporta un rischio di perdita.