38c8cdf25b
Harness onesto research_lab.py (serie di posizione causale, fee-aware, null model a rotazione circolare, hold-out 2025+ bloccato; self-test cheat/noise che valida il banco). - Fase 1: triage superstiti (DIP, shape-ML) -> morti net-fee. - Fase 2: esplorazione famiglie (reversal morta; solo trend long-only/MA-cross passa i gate base). - Fase 3: conferma avversariale del trend -> regime-luck del toro, bocciato sul hold-out 2025-26. - Ricerca frattale multi-agente (Workflow, 63 agenti, 52 ipotesi dai due documenti) con guard anti-look-ahead (eval_signal.py) + hold-out + test cross-asset -> 0 edge robusto (l'unico "confermato" su ETH fallisce su BTC con lo stesso codice). - Analisi options: VRP reale +10/+14 vol pt ma finestra 6 sett. regime unico -> non validabile; ruolo solo overlay tail-cap, tenere cerbero-bite ad accumulare. Quinta conferma indipendente: su BTC/ETH-solo-prezzo non c'e' un edge facile. Il processo disciplinato ha evitato un falso "+49% vs -49%" che sul vecchio feed contaminato sarebbe finito in produzione. Diari docs/diary/2026-06-19-research-phase0-1 / -phase2-options / -phase3-confirm / -fractal-multiagent-search. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
59 lines
3.1 KiB
Markdown
59 lines
3.1 KiB
Markdown
# 2026-06-19 — Ricerca v2.0.0: Fase 0 (harness) + Fase 1 (triage superstiti)
|
||
|
||
Primo log di ricerca post-reset. Universo certificato: BTC/ETH, 1h. Hold-out 2025+ BLOCCATO.
|
||
|
||
## Fase 0 — harness onesto (`scripts/analysis/research_lab.py`)
|
||
|
||
Banco di prova causale per costruzione (modello a SERIE DI POSIZIONE: `pos[i]` decisa entro
|
||
`close[i]`, guadagna `close[i]→close[i+1]`, fee sul turnover |Δpos|). Metriche
|
||
Sharpe/CAGR/DD/exposure/turnover, finestra OOS, **null model a rotazione circolare**
|
||
(p-value: il timing batte il caso?), baseline buy&hold, sweep fee.
|
||
|
||
**Self-test del banco (valida l'HARNESS, non una strategia):**
|
||
- buy&hold BTC: Sharpe 0.79 (sanity OK).
|
||
- CHEAT look-ahead (pos = segno del rendimento futuro): Sharpe **58**, p=0.005 → l'engine
|
||
VEDE un edge reale quando esiste.
|
||
- NOISE causale a basso turnover: Sharpe **0.14**, p=0.26 → l'engine NON inventa edge dal
|
||
nulla (niente leak, niente skill spuria).
|
||
|
||
Il banco è affidabile. → ogni numero qui sotto è netto fee e causale.
|
||
|
||
## Fase 1 — triage dei 2 superstiti (`scripts/analysis/phase1_survivors.py`)
|
||
|
||
Sul feed pulito solo SH01 (shape-ML) e frammenti HONEST mostravano segnale residuo. Delle
|
||
HONEST solo **DIP** è testabile su BTC/ETH (TR01/ROT02 richiedono alt esclusi). Re-implementati
|
||
come serie di posizione, passati ai gate onesti.
|
||
|
||
### DIP reversion (long-only) — ☠️ MORTO
|
||
Griglia 3×3 (n, k) **tutta negativa** su entrambi gli asset (nessun plateau). Config centrale
|
||
n50 k2.0: FULL Sharpe −0.17 (BTC) / −0.06 (ETH); a fee 0% appena +0.02/+0.09 (niente edge nemmeno
|
||
lordo). OOS-VAL marginale (+0.36/+0.16) ma **null p=0.84-0.89** (peggio del caso). Rumore.
|
||
|
||
### SH01 shape-ML (walk-forward LogReg) — ☠️ FEE-DEAD
|
||
Pattern coerente su BTC/ETH, long/short e long-only:
|
||
|
||
| Variante | Sh fee0% | Sh fee0.05% | Sh fee0.10% | trade/anno | null p |
|
||
|---|---|---|---|---|---|
|
||
| BTC L/S | +0.32 | −0.70 | −1.71 | 877 | 0.167 |
|
||
| BTC long-only | +0.73 | −0.06 | −0.84 | 555 | 0.072 |
|
||
| ETH L/S | +0.31 | −0.40 | −1.11 | 773 | 0.137 |
|
||
| ETH long-only | +0.46 | −0.04 | −0.53 | 485 | 0.142 |
|
||
|
||
C'è un **sussurro di segnale LORDO** (Sharpe 0.3-0.7 a fee zero) ma il turnover (485-877
|
||
trade/anno) lo divora: a fee reale tutte negative, e **nessuna batte il null** (p>0.05). Net-fee:
|
||
rumore.
|
||
|
||
## VERDETTO Fase 1
|
||
**Né DIP né shape-ML sopravvivono su BTC/ETH certificato net-fee.** Nessuno dà Sharpe netto >0,
|
||
nessuno batte il null (p<0.05), nessuno batte il **buy&hold** (Sharpe 0.79/0.84 — di fatto la
|
||
"strategia" più forte vista finora). Si conferma: i "superstiti" della vecchia libreria erano,
|
||
come il resto, non-edge. Chiusi.
|
||
|
||
## Lead onesto per la Fase 2
|
||
L'unico segnale non-nullo è il **gross shape-ML** (Sharpe 0.3-0.7 a fee zero), ucciso dal
|
||
turnover. Direzione: esprimere quel segnale a **turnover molto più basso** (orizzonte di holding
|
||
lungo, soglia forte, o come GATE di regime invece che flip per-barra) per vedere se il sussurro
|
||
lordo sopravvive alle fee. È un lead, NON un edge. Inoltre: la barra reale da battere è il
|
||
**buy&hold** (Sharpe ~0.8) — una strategia di timing deve fare meglio di "stai sempre long",
|
||
net-fee.
|