# 2026-06-19 — Track C: mean-reversion / range re-examination (HONEST) → DEAD

Obiettivo: stabilire rigorosamente se **un qualunque** edge di mean-reversion / range a
breve orizzonte sopravvive su BTC/ETH **certificati** (Deribit mainnet) con **ingresso
eseguibile onesto**, oppure confermarne definitivamente la morte. Entrambi gli esiti sono
validi; nessun risultato forzato.

Tool: `scripts/research/trackC_meanrev.py` (self-contained, runnable), sopra l'harness
onesto `src/backtest/harness.py` (direzione+prezzo decisi con dati ≤ `close[i]`, fill a
`close[i]`, exit intrabar TP/SL da `i+1`, fee netto). Universo: BTC/ETH × {1h,15m,5m}.

## Cosa è stato testato (5 famiglie, ingresso onesto)

- **ZFADE** — Bollinger/z-score fade: `z(close,lookback)` ≤ −thr → long, ≥ +thr → short.
  TP al mean mobile o a `tp_atr·ATR`; SL a `sl_atr·ATR`. **Entry a close[i]**, NON al tocco
  della banda (era proprio quello l'artefatto storico).
- **RSI2** — RSI(2) oversold/overbought (+ variante con filtro trend SMA200).
- **RETREV** — return reversal: fade del rendimento cumulato estremo (|z| > thr·σ).
- **VWAP** — reversione sulla distanza dal VWAP rolling (in unità di σ della distanza).
- **SESSION** — autocorrelazione next-bar per ora UTC (descrittivo).

Metodologia applicata: OOS 65/35, griglia parametri su **entrambi** gli asset, fee-sweep
{0, 0.5, 1.0, 1.5, 2.0} bps RT, cross-check liquidità (flat-bar O=H=L=C) e time-in-market.

## Sanity liquidità

Flat-bar O=H=L=C: BTC/ETH 1h ≈ 0.01%, 15m 0.09–0.14%. Book vivo → l'eventuale edge NON
potrebbe nascondersi in barre ferme (a differenza degli alt archiviati). Confermato pulito.

## Risultati — tutto negativo, su ogni asse

**PASS 1 (screen 1h, fee 0.10% RT):** ogni famiglia OOS negativa su entrambi gli asset.
Es. ZFADE z2/mean: BTC OOS −85%, ETH OOS −83%. RSI2 10/90: BTC −92%, ETH −96%.
RETREV/VWAP idem. Win-rate spesso "alto" (RSI2 ~63%, VWAP ~64%) ma **perde lo stesso** →
le poche perdite sono enormi, la reversione non paga il rischio + fee.

**PASS 2 (griglia 1h):** ZFADE **0/18** celle con OOS>0 su entrambi; RSI2 **0/36**. La
cella meno-peggio (ZFADE lookback20 z3) resta BTC −40% / ETH −33% OOS. Nessun sopravvissuto.

**PASS 3 (fee-sweep, incl. fee=0 GROSS):** il colpo decisivo. **Anche a fee=0** (lordo)
la z-fade è negativa: BTC full −74% / OOS −46%, ETH full −98% / OOS −48%. Quindi non è
"morte da fee": **la direzione stessa della fade è sbagliata** sul feed pulito. Salendo le
fee degrada monotòno fino a −100%.

**PASS 4 (timeframe 5m/15m/1h):** più veloce = peggio. A 5m full −100% su entrambi
(41.889 / 38.660 trade), €/giorno su 2000 ≈ −0.70/−0.75. Coerente con "molte operazioni =
morte per fee", ma il PASS 3 mostra che il problema è a monte: niente edge nemmeno lordo.

**PASS 5 (sessione UTC):** esiste una **debole** autocorrelazione negativa next-bar in
poche ore (BTC 13h −0.166, 2h −0.154, 21h −0.129; ETH 13h −0.152, 4h −0.117), e una
positiva alle 03h UTC (BTC +0.158, ETH +0.202 = ora "trending"). Struttura reale ma
debolissima (|ρ|≤0.17): non sopravvive a fee + dimensionamento del rischio (lo conferma il
fatto che tutte le versioni *tradate* perdono anche lorde).

## Verdetto

**Nessuna** configurazione MR produce OOS netto>0 su entrambi BTC ed ETH a fee baseline.
Più forte: **a fee zero la fade è già negativa** → l'edge MR storico (+201%/+1238% "OOS")
era un **artefatto del feed contaminato** (wick fantasma testnet + entry su estremi mai
scambiati), non una proprietà del mercato. Sul dato certificato, con ingresso eseguibile,
la mean-reversion a breve orizzonte **non è un edge**: è morta sia lorda che netta.

Coerente con la tesi del reset (`2026-06-19-deribit-history.md`, §3): FADE morto ogni anno.
Track C chiusa come direzione di alpha. La debole struttura intraday-by-hour (PASS 5) è
annotata ma non azionabile da sola; semmai un *filtro* futuro, non una strategia.

## Artefatti

- `scripts/research/trackC_meanrev.py` — riproducibile: `uv run python
  scripts/research/trackC_meanrev.py [--quick]` (~40s quick, ~3min full).
