# Diario — 2026-05-29 — Pattern del segnale per FORMA (analog/shape forecasting) ## Obiettivo Verificare se la **forma** del segnale (la morfologia recente del prezzo) permette di prevedere l'andamento successivo, e ricavarne edge verso il target €1000 → €50/giorno. Esplorazione onesta (no look-ahead, netto fee, OOS) con **agenti paralleli**, ognuno su una famiglia di forma indipendente, tutti sullo stesso harness shape (`scripts/analysis/ shape_lab.py`, che riusa l'engine netto-fee+OOS di `explore_lab.py`). Branch `shape_patterns`. ## Harness `shape_lab.py` — analog forecasting causale: a ogni barra `i` si guarda la forma recente `W` (closes z-normalizzati fino a `close[i]`), si cercano nel passato le `K` finestre più simili **il cui esito a `H` barre era già noto prima di `i`** (KDTree ricostruito ogni `rebuild` barre → niente O(N²)), si prevede la direzione = segno del rendimento medio degli analoghi. **No-look-ahead verificato** (perturbare il futuro non cambia la forma a `i`, max diff 0.0). Baseline forma grezza: marginale e **muore sulle fee** (W24H12K50: FULL +112% / OOS +48% ma a 0.20% RT → −72%; troppi trade, exp 74%, win 49.5%). ## Famiglie esplorate (5) ed esito onesto | Famiglia | Esito | Note | |---|---|---| | Analog kNN (forma grezza, selettività) | ❌ RUMORE | Solo BTC-overfit, non robusto ≥2 asset | | Encoding candele (UP/DOWN/DOJI + body/shadow) | ❌ RUMORE | Hit-rate condizionale ~50%, segno incoerente fra asset | | DTW + template geometrici (M/W, testa-spalle, V, U) | ❌ RUMORE | DTW *peggiora* l'euclidea; template overfit (FULL ok, OOS crolla) | | PIP / pivot / zig-zag (geometria svolte) | ❌ RUMORE | 0/48 config robuste; le rotture S/R rientrano (riconferma MR) | | **Feature-vector + ML walk-forward** | ✅ **EDGE REALE** | LogisticRegression sulla forma, fee-robusto | 4 famiglie su 5 sono rumore: riconfermano che la forma grezza non contiene edge direzionale eseguibile e che l'unico edge "classico" resta la mean-reversion (fade/pairs). ## L'edge: SH01 — Shape-ML Una **LogisticRegression** legge 17 feature di forma (body/shadow ratio, rendimenti, pendenza/curvatura del path, posizione di max/min, RSI, estensione) e predice il segno del rendimento a `H` barre. **Walk-forward rigoroso**: scaler+modello fittati solo sul passato con esito noto, poi predicono il blocco corrente; si entra a `close[i]` se la probabilità ≥ soglia. Causalità verificata con check espliciti (feature e predizioni invarianti al futuro). Il GradientBoosting dà edge equivalente ma è ~60× più lento → si usa il logit. A differenza della famiglia squeeze (che moriva anche a fee zero), **questo edge sopravvive a fee 0.20% RT**. Win-rate ~50% → l'edge è nell'**asimmetria** (quando indovina la direzione i moti sono più grandi), non nella frequenza. ### Validazione dura (config W24 H12 th0.58, netto fee, leva 3x, pos 0.15, OOS 30%) - **Multi-asset expanding**: robusti **BTC** (FULL +219% / OOS +42% / Sharpe 2.72 / DD 23% / 8-9 anni+ / accOOS 56%), **ETH** (+80% / +144% / Sharpe 1.21, più volatile), **ADA** (+707% / +57% / Sharpe 3.22). Scartati LTC/SOL/XRP (perdono netti). - **Walk-forward rolling (train fisso 2 anni)**: regge **solo BTC** (+166% / +96% / Sharpe 2.05). L'edge si appoggia in parte alla memoria lunga → BTC è il più solido. - **Stress leva 2x + slippage doppio (0.20% RT)**: BTC OK (+40% / +17% / Sharpe 1.24), ETH marginale (+7% / +73% / Sharpe 0.37). - **Griglia (W,H,thresh) su BTC**: **5/27 celle robuste**, su una **cresta** stretta (W24, H8-12), non altopiano largo → rischio overfit moderato. Per prudenza si sceglie la config robusta sul maggior numero di test (W24 H12 th0.58), non il PnL massimo (W24 H8 rende di più ma accOOS ~49% = più drift che segnale). ### Il valore vero: diversificatore di portafoglio Correlazione daily col MASTER **+0.08** (quasi scorrelato). Aggiungere lo sleeve shape (BTC+ETH) al MASTER migliora l'OOS: **Sharpe 4.33 → 5.10, DD 4.7% → 4.2%** (FULL: Sharpe 4.23 → 4.37, DD 5.2% → 4.3%). Non è un motore standalone (per-asset troppo stretto fuori da BTC), ma un **free-lunch** da aggiungere al paniere. ## Artefatti - `scripts/analysis/shape_lab.py` — harness analog/forma causale. - `scripts/analysis/shape_{analog,candle,template,pivot,ml}_research.py` — le 5 ricerche. - `scripts/analysis/shape_ml_validate.py` — validazione dura del candidato ML. - `scripts/strategies/SH01_shape_ml.py` — la strategia (Strategy + run() riproducibile). - Aggiunta a `MODULE_MAP` (caricabile per backtest). ## Conclusione e prossimi passi La forma del segnale **non** predice in modo grezzo (4/5 famiglie rumore), ma un modello lineare sulle feature di forma in walk-forward onesto **sì**, soprattutto su BTC, e vale come diversificatore quasi-scorrelato del MASTER. Da fare prima del live: 1. **Worker con retraining periodico** (lo StrategyWorker attuale è a regola fissa; SH01 riallena il modello → serve un loop tipo legacy signal_engine). 2. Validazione live-path (replay worker == backtest) come fatto per i pairs. 3. Decidere il peso nel MASTER-esteso (cap, leva) col paper trader.