Reset del progetto su fondamenta verificate dopo la scoperta che l'intera libreria "validata OOS" era artefatto di feed contaminato (print fantasma del feed Cerbero TESTNET + storico Binance/USDT). - Storico ricostruito da Deribit MAINNET (ccxt pubblico, tokenless) e CERTIFICATO (certify_feed.py): BTC/ETH puliti su TUTTA la storia (mediana 2-6 bps vs Coinbase USD), integrita' OHLC + coerenza resample (maxΔ 0.00) + cross-venue OK. Alt esclusi (illiquidi/divergenti: LTC/DOGE 50-82% barre flat; XRP/BNB non certificabili). - Verdetto sul feed pulito: FADE / PAIRS / XS01 / TSM01 morti (ogni portafoglio Sharpe -2.3..-3.0, DD ~40%); solo SH01 e frammenti HONEST con segnale residuo, da ri-validare in isolamento. - Cleanup "restart pulito": strategie, stack live (src/live, src/portfolio, runner/executor, yml, docker), ~100 script ricerca/gate, waste/games/ portfolios, dati non certificati + cache e 60+ diari -> archiviati in Old/ (preservati, non cancellati). Diario consolidato in un unico documento. - Skeleton ricerca tenuto: Strategy ABC + indicatori + src/fractal + src/backtest/engine + load_data; tool dati certificati (rebuild_history, certify_feed, audit_feed, multi_source_check). - Universo dati ATTIVO: solo BTC/ETH (5m/15m/1h); guardrail fisico (load_data su alt -> FileNotFoundError). Esecuzione DISABILITATA, conto flat. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.8 KiB
2026-05-31 — Studio sugli EXIT delle fade: scalping, TP dinamico, TP-ATR
Innescato da una domanda operativa ("un TP è stato raggiunto, non si poteva scalpare / fare un TP dinamico?"). Studio fee-aware su MR02 (Donchian fade, segnali invariati
n=20 sl_atr=2.0 max_bars=24, fee 0.10% RT, leva 3x). Tre alternative di uscita misurate contro il baseline attuale (TP = centro del canale). Verdetto: il design attuale è già ottimale; nessuna alternativa lo batte.
1. "Scalping" = timeframe più veloce (15m vs 1h)
A fee 0.10% il 15m rende di più in lordo (~4× più trade), MA è molto più fragile:
| trade | PnL @0% | @0.10% | @0.20% | DD @0.10% | |
|---|---|---|---|---|---|
| BTC 1h | 2041 | +22.768 | +16.645 | +10.522 | 29% |
| BTC 15m | 8251 | +65.286 | +40.533 | +15.780 | 29% |
| ETH 15m | 9388 | +120.103 | +91.939 | +63.775 | 62% |
Da 0% a 0.20% il 15m perde ~76% del profitto (vs 54% del 1h) e il DD esplode (ETH 15m → 93% a 0.20%). 4× più trade = 4× più fee + slippage (non modellato, ma peggiore su book sottili). L'1h è scelto per il margine di sicurezza, non per il PnL lordo. Lo scalping vero (<0.3% target) è in pieno territorio "morte da fee".
2. TP dinamico / trailing ("lascia correre il vincitore")
Stessi segnali, exit per trailing a k·ATR dal massimo favorevole invece del TP fisso:
| policy | BTC win% | ETH win% | equity |
|---|---|---|---|
| FIXED (centro, attuale) | 48% | 49% | 🟢 di gran lunga il migliore |
| TRAIL (lascia correre) | 36% | 36% | 🔴 azzerato |
| MID+TRAIL | 47% | 47% | 🔴 peggio |
Il win-rate crolla 48%→36%: i trade che avrebbero incassato il TP fanno andata-e-ritorno e stoppano fuori. Concettuale: l'edge della fade è la reversione fino alla media; una volta toccata, l'edge è esaurito. Lasciar correre oltre = scommettere sulla continuazione, che sui perp crypto NON ha edge (rientra). È la stessa logica per cui SMA/ORB/WR (continuazione) hanno fallito: let-it-run = trend = il lato perdente.
3. TP scalato all'ATR (TP = entry + dir·m·ATR, SL fisso 2 ATR → R:R = m/2)
| Config | win% | avg %/trade | Sharpe | sumRet% |
|---|---|---|---|---|
| BTC MID (attuale) | 48% | 0.816 | 3.8 | 1664 |
| BTC ATR m=0.5 (RR0.25) | 77% | −0.081 | −1.0 | −217 |
| BTC ATR m=1.0 | 67% | 0.192 | 1.6 | 465 |
| BTC ATR m=2.0 | 53% | 0.563 | 3.0 | 1199 |
| BTC ATR m=3.0 | 46% | 0.679 | 3.0 | 1331 |
| ETH MID (attuale) | 49% | 1.738 | 7.5 | 4169 |
| ETH ATR m=0.5 | 77% | 0.041 | 0.5 | 134 |
| ETH ATR m=3.0 | 46% | 1.082 | 4.7 | 2515 |
OOS (ultimo 30%) identico: MID batte ogni m (BTC MID avg 1.14/Sh 3.2; ETH MID avg
4.43/Sh 10.9). Due lezioni:
- TP stretto (m=0.5) = trappola dello scalping quantificata: win-rate 77% ma edge zero/negativo (BTC −0.08%/trade). I rari stop a 2 ATR spazzano via le micro-vincite, la fee mangia il resto. Win-rate alto ≠ edge.
- Nessun multiplo ATR fisso batte il centro del canale, su avg/trade E Sharpe, FULL e OOS, entrambi gli asset.
Verdetto unificato
Il TP al centro del canale è ottimale perché è un target adattivo alla struttura: un multiplo fisso di ATR misura solo quanta vol c'è, ma ignora dove sta la media; il centro adatta al punto reale di reversione ed è già scalato alla volatilità (il canale si allarga in regime volatile). Per una mean-reversion il punto giusto dove chiudere è la media — niente prima, niente dopo. Tre alternative escluse coi numeri (15m, trailing, TP-ATR) → la scelta di design corrente è blindata.
Nota metodologica ricorrente: diffidare del win-rate alto. Il segnale vero è rendimento-medio-per-trade × Sharpe; un TP stretto regala win-rate e nasconde l'assenza di edge. (Stesso tranello dei guru: backtest cherry-picked ad alta % di vincite.)