research(mr02eth): ricerca sostituto + integrazione dati opzioni cerbero-bite

Ricerca sostituto/miglioria a MR02/ETH (127 strategie + 18 overlay opzioni,
verifica avversariale, gate PORT06). Esito: miglioria = no-SL (gia' ~catturata
da EXIT-16 live); tail-hedge opzioni NO-GO empirico su prezzi reali.

Infrastruttura opzioni REALE (muro ARGO/GEX caduto):
- options_fetcher.py: importa lo storico per-strike + market_snapshots da
  cerbero-bite -> data/options/ (chain bid/ask/IV/greche/OI + pannello regime
  con net-GEX dealer/gamma-flip/VRP/funding/liquidation).
- options_chain.py: loader + skew_curve/premium_levels (aggregati reali) +
  quote() causale + load_market() (pannello regime).
- option_overlay_lab.py: overlay opzioni BS su DVOL (pricing sintetico).
- mr02eth_port06_gate.py / eth_collar_gate.py: gate swap-sleeve e collar.
- mr02eth_search/options.workflow.js: i 2 workflow.

Numeri reali: skew put 10%OTM ~1.1 (liquido), premio ~1.0%/mese; niente strike
10%OTM a 24h (overlay per-trade infattibile); collar standing paga nei crash ma
net-negativo a PORT06 (alza OOS DD). Diario + CLAUDE.md aggiornati.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Adriano Dal Pastro
2026-06-09 07:05:00 +00:00
parent cff40283f4
commit df8bfbceaa
10 changed files with 1516 additions and 1 deletions
@@ -0,0 +1,115 @@
# 2026-06-08 — Ricerca sostituto/miglioria a MR02/ETH (127 strategie + opzioni)
## Contesto
MR02/ETH è lo sleeve a DD più alto della famiglia fade ed è il maggior drag
dell'esecuzione reale (testnet: 19€ su 7 trade, 0 win, faded un downtrend 14%
in long poi shortato il rimbalzo — whipsaw classico). Obiettivo: trovare un
sostituto o una miglioria con ≥100 agenti su strategie differenti, metodologia
onesta (ingresso eseguibile, fee 0.10% RT, OOS, gate PORT06).
## Cosa è stato fatto
- **Workflow 1 — 109 strategie ETH distinte** (`mr02eth_search.workflow.js`):
gated-fade, mean-reversion alternative, exit, trend-following, volatilità,
cross-asset, ML/shape, microstruttura, statistico-robusto. Harness onesto
`explore_lab`. Poi **verifica avversariale** dei top-24 (audit look-ahead +
re-implementazione indipendente + robustezza). → 26 survivor, **6 confermati**.
- **Workflow 2 — 18 overlay di OPZIONI** (`mr02eth_options.workflow.js`) +
sintesi con audit crash reali. Harness nuovo `option_overlay_lab.py`: opzioni
prezzate Black-Scholes sulla **DVOL** reale di Deribit (storica/gratuita,
`data/regime/eth_dvol.parquet`), premio dedotto, ipotesi **conservative**
(skew_mult sui comprati, uscita anticipata solo a intrinseco).
- **Gate PORT06** (`mr02eth_port06_gate.py`): swap di MR02_ETH col candidato,
equity giornaliera su IDX 2021-2026, ri-misura FULL+OOS Sharpe/DD (cap
weighting). Sanity check: MR02 ricostruito col mio engine == canonico (Δ 0.00).
## Risultato (gate PORT06; baseline canonico FULL 6.43/3.96, OOS 8.58/1.36)
| variante (swap MR02/ETH) | FULL Sh | FULL DD | OOS Sh | OOS DD |
|---|---|---|---|---|
| EXIT-16 (config LIVE) | 6.73 | 3.67 | 8.80 | 1.23 |
| no-SL nudo | 6.76 | 3.68 | 8.87 | 1.23 |
| no-SL + put/call 10% OTM | 6.78 | 3.64 | 8.86 | 1.23 |
| varratio_gate (PROMOSSO vs canonico) | 6.41 | 3.73 | 8.53 | 1.36 |
| choppiness_donch | 6.37 | 3.35 | 8.47 | 1.32 |
| vrp_neg_dvol_low | 6.36 | 3.22 | 8.37 | 1.43 |
## MIGLIORIA TROVATA (gate vs LIVE EXIT-16, non vs canonico)
Riferimento onesto = config LIVE EXIT-16 (FULL 6.73/3.67 — OOS 8.80/1.23), non
l'intrabar-SL canonico che nessuno gira.
| sleeve ETH | ΔFULL Sh | ΔFULL DD | ΔOOS Sh | ΔOOS DD | esito |
|---|---|---|---|---|---|
| **no-SL + put/call 10% OTM** | **+0.05** | **0.03** | **+0.06** | 0.00 | ✅ MIGLIORIA deployabile |
| no-SL nudo | +0.04 | +0.02 | +0.07 | 0.00 | ✅ migliora ma sl=0 NON deployabile |
| EXIT16 + put10 | 0.01 | +0.03 | 0.00 | 0.00 | = pari (assicurazione gratis) |
| varratio / vrp / chop / blend | negativi | | | | peggiorano vs EXIT-16 |
**La miglioria = MR02/ETH no-SL + floor a opzioni 10% OTM** (put sui long, call
sugli short). Batte il live EXIT-16 in modo PARETO su 3/4 metriche PORT06 (4ª
piatta). Meccanismo: **rimuovere lo stop** (intrabar/close-confirm su una fade
mean-reverting sono falsi negativi — overshoot che rientra) e dare la funzione
dello stop (cap della catastrofe) a un'**opzione comprata** = protezione a
rischio-definito SENZA il costo whipsaw/falso-stop. Standalone il salto è grande
(Sharpe 8.45→12.14, OOS DD 13%→7%); a portafoglio è modesto (+0.05/+0.06 Sharpe)
perché è 1 sleeve su 17, ma è un miglioramento MISURATO e verificato (soglia
gate +0.03, ottenuto +0.05/+0.06), non rumore.
## Conclusioni (oneste)
1. **Sostituti/blend: tutti peggiorano vs il live EXIT-16.** I candidati gated
(varratio/vrp/choppiness) e i blend within-sleeve battono solo lo strawman
canonico, non il live; le loro basse esposizioni diluiscono il motore di
ritorno (Sharpe 0.08/0.44). Lo Sharpe ~20 nell'harness era artefatto di
`sqrt(N_trade)` (onesto ~4.3). → **non sostituire né blendare.**
2. **L'unica miglioria è la coppia no-SL + opzione.** Il no-SL recupera il drag
dello stop; l'opzione cappa la coda da **gap-through** che EXIT-16 NON protegge
(esce al close DOPO il buco → prende la perdita piena). Audit crash: FTX nov-22
48%→−30%, LUNA-era 2022-09 63%→−31%, 2018/19 65%→−30%. Premio ~break-even
(paga 156% / incassa 149%). È ciò che rende deployabile il no-SL.
## Azione raccomandata
- **Deployare MR02/ETH come no-SL + floor a opzioni 10% OTM** (put long / call
short, per-trade o settimanale ammortizzato). Batte il live su 3/4 metriche +
cappa esplicitamente la coda. **Prima del capitale**: validare prezzi/liquidità/
skew per-strike REALI su Deribit testnet (qui pricing BS sintetico sulla DVOL =
ATM-IV; stress skew ×1.5 gonfia il premio FULL ma l'OOS regge). Stesso muro
non-backtestabile di ARGO/GEX sul per-strike, aggirato col proxy DVOL.
- Step intermedio a costo zero: **aggiungere subito il floor opzione all'EXIT-16
live** (= "pari" sui numeri, ma assicurazione gratis sul gap-through) mentre si
valida la transizione a no-SL.
## Addendum 2026-06-09 — validazione su PREZZI REALI + integrazione cerbero-bite
- Probe live Deribit mainnet (singolo snapshot): sembrava skew ×1.6 e liquidità
pessima sul 10% OTM a 1g → l'overlay per-trade pareva bocciato.
- **cerbero-bite** (container accanto) ha però **lo storico per-strike reale** in
`option_chain_snapshots` (SQLite, dal 2026-05-01, ~110k righe/asset, bid/ask/IV/
greche/OI, cadenza ~12min). Importato in `data/options/` via `options_fetcher.py`;
loader `options_chain.py` (skew_curve/premium_levels/quote causale).
- **Correzione dai dati reali (5.5 settimane):** skew put 10% OTM = **×1.1** (liquido,
spread ~7%) — il ×1.6 del probe era un artefatto del deep-OTM a 1g illiquido. Premio
reale 10% OTM ≈ **1.0%/mese**. → la miglioria no-SL+opzione **regge** sui prezzi veri.
- **MA vincolo strutturale reale:** gli strike **10% OTM a 24h NON esistono** (n=0 in 5.5
settimane; Deribit lista solo near-ATM sui tenor corti). L'overlay **per-trade a 24h è
infattibile**; l'unica struttura eseguibile è una **put settimanale/mensile standing**
(catastrofe-cap di sleeve), da gateare a parte coi premi reali.
- **Infrastruttura sbloccata:** il muro ARGO/GEX ("opzioni non-backtestabili") è caduto
per il periodo recente — d'ora in poi le tesi opzioni si validano su prezzi VERI.
Importato anche il pannello `market_snapshots` (spot/VRP/funding/**net-GEX dealer**/
gamma-flip/liquidation, dal 2026-03-26) → `data/options/`, loader `options_chain.load_market`.
## Addendum 2 — gate del COLLAR standing (catastrophe-cap auto-finanziato) — NO-GO
Premi reali → collar = put 13% (1.0%/m) finanziata da call +10% (1.05%/m) ≈ premio netto 0.
Gate PORT06 (`eth_collar_gate.py`, BS calibrato skew_put 1.12 / skew_call 1.0, sweep OTM/hedge_frac):
- Il collar **PAGA nei crash** (ETH 40% dic-21 → +6.1%, 30% feb-25 → +6.6%): protezione reale.
- MA **net-negativo a portafoglio**: taglia il FULL DD (0.2/0.3pp) ma **costa Sharpe** (FULL e OOS)
e **ALZA l'OOS DD** (+0.18/+0.28pp) — nell'OOS (no crash profondo, qualche rally) la call corta
perde e il premio erode. Peggiora il DD che doveva ridurre.
- **Verdetto: il tail-hedge a opzioni NON conviene a PORT06** (né per-trade né collar). Strutturale:
lo sleeve ETH pesa 6.5% → la **diversificazione è già la protezione di coda** (trade 65% =
4% aggregato). La cap auto-finanziata era giusta sul *costo* (~break-even) ma la protezione non
vale il costo Sharpe/OOS-DD. Le opzioni si chiudono come **NO-GO empirico su prezzi reali**.
## Artefatti riusabili
- `scripts/analysis/option_overlay_lab.py` — overlay opzioni (pricing BS sintetico su DVOL).
- `scripts/analysis/options_fetcher.py` — import storico opzioni reale da cerbero-bite → data/options/.
- `scripts/analysis/options_chain.py` — loader + skew/premi reali + lookup causale (`OptionChain`).
- `scripts/analysis/mr02eth_port06_gate.py` — gate swap-sleeve PORT06.
- `scripts/analysis/mr02eth_search.workflow.js`, `mr02eth_options.workflow.js`.