Files
PythagorasGoal/Old/docs/diary/2026-06-08-mr02eth-replace-search.md
T
Adriano Dal Pastro 14522262e6 chore(reset): v2.0.0 — storico certificato Deribit mainnet, ripartenza pulita
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>
2026-06-19 15:20:59 +00:00

8.7 KiB
Raw Blame History

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.

Deploy della miglioria (2026-06-09): MR02/ETH stop-largo sl_atr 3.0

Nessun SOSTITUTO batte il live; la MIGLIORIA deployabile e' allargare lo stop EXIT-16. Gate stop-width (EXIT-16 close-confirm, swap solo MR02_ETH):

sl_atr FULL Sh FULL DD OOS Sh OOS DD worst-trade
2.0 (LIVE) 6.73 3.67 8.80 1.23 -48%
3.0 6.77 3.30 8.82 1.23 -50%
4.0 6.78 3.49 8.82 1.23 -62%
no-SL (sl=0) 6.76 3.68 8.87 1.23 -65% (vietato)
sl_atr=3.0 domina il live (FULL DD -0.37pp, Sh +0.04/+0.02) e cattura il beneficio del no-SL
(gli stop di meta'-discesa sono falsi negativi) MANTENENDO lo stop di catastrofe (worst -50%, non
-65%) -> regola "mai sl=0" rispettata; 4.0 inizia a perdere la coda. Plateau 2.5-4.0 (tutti > live
su Sharpe). Override SCOPED a MR02/ETH in _defs.py (_fade_params); gli altri 5 fade non
ri-gateati -> invariati. 93/93 test passano. Deploy: ./scripts/deploy.sh (cambio live).

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.