Punto 9 roadmap sweep. DIP01 era l'unico sleeve BTC con esecuzione reale round-trip ancora sul branch SL intrabar wick-sensitive. Gate dip01_exit16_impact.py (parita' canonica 1.00000; engine GAP-AWARE: orig filla lo SL a worse(livello, open) per rimuovere il bias pro-stop-intrabar dell'engine canonico sui gap-through): - grid 3x3x2 BTC: EXIT-16 >= orig in 36/36 (train E oos), OOS Sharpe ~2-4x (canonica 1.47->3.48); ETH 35/36 (robustezza). - plateau buffer piatto 0.4-1.0 (OOS DD 6.4% identico) -> 0.5 come le fade. - PORT06: FULL Sh 6.43->6.61 DD 3.96->3.58 | OOS Sh 8.58->8.77 DD 1.36->1.34. 5a conferma del principio EXIT-16 (wick-stop = falsi negativi per mean-reversion). hurst_max non valutato (ridondante-dannoso post-EXIT-16, gate trendmax). Deploy: "sl_confirm_atr": 0.5 nei params DIP01_BTC (il worker legge gia'). Trappola di metodo documentata: la prima parita' falliva per l'ancora bfill di _daily_equity (la serie a punti-trade reindexata su IDX aggancia il primo valore al PRIMO trade in finestra, non al capitale portato avanti) — replicata per parita'; finding aperto perche' tocca le metriche canoniche di tutti gli sleeve a punti-trade. Diario docs/diary/2026-06-07-dip01-exit16.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.8 KiB
2026-06-07 — DIP01 EXIT-16: PROMOSSO (gate gap-aware, il più netto della serie)
Punto 9 della roadmap sweep: DIP01 era l'unico sleeve BTC con esecuzione REALE round-trip e girava ancora sul branch SL intrabar wick-sensitive. EXIT-16 era validato SOLO sulle fade: estensione a una strategia honest dietro doppio gate (grid proprio di DIP01 + PORT06), con engine GAP-AWARE come da lezione exit-lab.
Metodo (scripts/analysis/dip01_exit16_impact.py)
- Parità con la equity canonica: corr 1.00000, ret +322% identico.
- Engine gap-aware: nel ramo orig lo SL filla a
worse(livello, open[j])— l'engine canonico filla "al livello" anche su gap-through (54% dei casi per stop tight) e regalerebbe al ramo intrabar un vantaggio fittizio. - Grid 3×3×2 (z_in × sl_atr × max_bars) su BTC (deployato) ed ETH (robustezza); train (pre 2024-10-12) e OOS separati. Buffer plateau {0.4, 0.5, 0.75, 1.0}.
- NB
hurst_maxNON valutato su DIP01: il gate trendmax dello stesso giorno ha mostrato che è ridondante-dannoso post-EXIT-16.
Trappola di metodo trovata: l'ancora bfill di _daily_equity
La prima parità falliva (corr 0.9956, −16pp) con engine identici (662 trade,
stessi return, stesso capitale finale). Causa: la convenzione canonica
_daily_equity (serie a punti trade-exit → reindex(IDX).ffill().bfill())
ancora il primo valore della finestra al PRIMO trade dentro IDX (es. 942.54
dopo le perdite di gennaio 2021), non al capitale portato avanti dall'ultimo trade
del 2020 (979.23). Il mio replay hourly era più "corretto" ma per parità va
replicata la convenzione. Finding aperto: questo bias tocca le metriche
canoniche di TUTTI gli sleeve a punti-trade (honest/pairs/tsm) — l'ancoraggio
distorce leggermente il punto di partenza della finestra. Da valutare a parte se
correggerlo OVUNQUE in un colpo solo (cambierebbe i numeri canonici di riferimento).
Risultati
- Grid BTC: 36/36 (EXIT-16 ≥ orig gap-aware in train E OOS in tutte le 18 celle). OOS Sharpe ~2-4x (cella canonica 1.47→3.48), DD giù in 14/18 celle.
- Grid ETH: 35/36 (unica eccezione la cella estrema z3.0/sl3.0/mb48, marginale).
- Plateau buffer piatto: OOS DD 6.4% identico da 0.4 a 1.0; scelto 0.5 (== fade).
- PORT06: FULL Sharpe 6.43→6.61, DD 3.96→3.58 | OOS Sharpe 8.58→8.77, DD 1.36→1.34. Migliora tutto. PROMOSSO.
È la 5ª conferma indipendente del principio EXIT-16: gli stop intrabar da wick sono falsi negativi per le strategie mean-reversion — l'overshoot che buca lo stop è il movimento che si sta comprando.
Deploy
_defs.py: "sl_confirm_atr": 0.5 nei params DIP01_BTC (il worker legge già il
param — zero codice). Live path: TP intrabar invariato, SL solo su close confermato,
disaster-bracket on-book già attivo per gli outage.