bd6232dc00
Crash ETH 2026-06-05: SH01 ETH −15.6% su un trade (exit solo a orizzonte, nessuna protezione). Ricerca con harness dedicato sh01_exit_lab (cache walk-forward, engine fill gap-aware worse(livello,open), parity esatta con explore_lab, train<=2023-11-01): ATR intrabar/close-confirm, %, chandelier, breakeven, giveback, loser-timestop, disaster-cap close+intrabar, swing, vol-regime — NESSUNA passa il gate (ogni stop stretto rompe BTC, ogni stop largo non tocca la coda ETH; nei crash il fill e' al gap). Mitigazione: peso famiglia SHAPE 11.8%->5.9% in PORT06 (FULL 6.47->6.43 DD 4.10->3.96, OOS 8.82->8.58 DD 1.30->1.36) — la prossima coda impatta il conto per meta'. Regression-lock test aggiornato. Diario: docs/diary/2026-06-05-sh01-sl-research.md Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
100 lines
5.6 KiB
Markdown
100 lines
5.6 KiB
Markdown
# Diario — 2026-06-05 — SL su SH01: ricerca multi-agente (verdetto: NO-SL, cap del peso)
|
||
|
||
## Innesco
|
||
|
||
Crash ETH del 2026-06-05 (1742→1546, −11%, con feed testnet FLAT ~2h e gap 1655→1600):
|
||
SH01 ETH si è preso la coda intera, **−15.6% in un trade** (long 1727.8 → time_limit 1594.35,
|
||
leva 2x) — il singolo trade peggiore del portafoglio live. SH01 non ha TP/SL per design
|
||
(exit solo a orizzonte H=12). Domanda: esiste uno SL che taglia le code senza distruggere
|
||
l'edge (win ~50%, edge tutto nell'asimmetria dei winner)?
|
||
|
||
## Numeri storici per anno (config live W24 H12 th0.58, netto fee 0.10% RT, leva 3x)
|
||
|
||
Somma per-trade in pp (leva 3x); equity-level ≈ ×0.15.
|
||
|
||
| Anno | BTC | ETH |
|
||
|---|---:|---:|
|
||
| 2018 | −65.8 | +73.7 |
|
||
| 2019 | +87.7 | −19.3 |
|
||
| 2020 | +194.0 | **−293.1** |
|
||
| 2021 | +301.3 | +67.4 |
|
||
| 2022 | +64.3 | +79.1 |
|
||
| 2023 | +17.4 | +20.6 |
|
||
| 2024 | +110.0 | +108.1 |
|
||
| 2025 | +76.8 | +539.7 |
|
||
| 2026 | +59.0 | −29.5 |
|
||
|
||
BTC = motore robusto (8/9 anni+). ETH = fragile (DD 61%, win 48.8%): la coda non
|
||
protetta è un problema STRUTTURALE di ETH, non solo dell'episodio live.
|
||
|
||
## Infrastruttura (riusabile)
|
||
|
||
`scripts/analysis/sh01_exit_lab.py` — harness onesto stile exit-lab:
|
||
- cache segnali walk-forward (`data/cache/sh01_exit_lab.pkl`, 7248 BTC + 7386 ETH entries);
|
||
- engine intrabar con **fill GAP-AWARE**: stop fillato a `worse(livello, open[j])`, non
|
||
"al livello" — chiude il bias PRO-stop-stretti documentato il 2026-06-04 (54% di fill
|
||
ottimisti) e modella il caso reale del crash (gap 1655→1600 senza scambi intermedi);
|
||
- modalità stop `intrabar` e `close` (close-confirm stile EXIT-16), `after_bar` per
|
||
policy discrezionali, stress `lag_close_exit` (poll in ritardo);
|
||
- parity ESATTA con `explore_lab.simulate` (BTC +218.50%/1531 trade, ETH +80.13%/1257);
|
||
- protocollo: TRAIN fino 2023-11-01 (selezione SOLO lì, plateau ≥3 celle), OOS una volta.
|
||
|
||
Baseline (orizzonte puro): BTC TRAIN +127%/dd23/shrp2.09/worst−5.5 | OOS +41%/8/2.18/−3.1.
|
||
ETH TRAIN **−26%/dd61/shrp−0.16/worst−14.9** | OOS +143%/7/**3.60**/−4.6.
|
||
|
||
## Esito: 11 famiglie testate, 0 sopravvissute
|
||
|
||
Policy in `scripts/analysis/sh01_exit_policies/` (01-10 dagli agenti + 11 dal
|
||
completeness-probe della sintesi):
|
||
|
||
| # | Famiglia | Verdetto |
|
||
|---|---|---|
|
||
| 01 | ATR fisso intrabar (k 1–5) | NO: 0/7 celle migliorative sul train |
|
||
| 02 | ATR fisso close-confirm (k 1–5) | NO: k=4 migliora ETH train (shrp −0.16→+0.62, DD 61→41, worst −8.4) MA ETH-OOS peggiora (shrp 3.60→2.32, worst −6.6) |
|
||
| 03 | % fisso (1–5%, 2 modi) | NO: BTC↓, ETH-OOS ret 52% del baseline |
|
||
| 04 | Chandelier trailing | NO: cella isolata; ETH-OOS tutto peggio (4ª bocciatura della famiglia trailing) |
|
||
| 05 | Breakeven ratchet | NO: 0 celle migliorative |
|
||
| 06 | Giveback (profit-protection) | NO: dormiente sulle code (worst invariato), taglia winner BTC |
|
||
| 07 | Loser time-stop (m,x) | NO: ETH-OOS shrp↓ DD↑, BTC↓ |
|
||
| 08 | Disaster-cap LARGO close-confirm (k 3–6) | NO: k=4 plateau sul train ma ETH-OOS DD 7→11-15%, ret 59-74%; FABBRICA short da stop a −44/−54% |
|
||
| 09 | Swing strutturale | NO: 0/18 celle |
|
||
| 10 | Stop condizionale vol-regime | NO: il migliore dei falliti (ETH-OOS shrp 3.28 vs 3.60) ma BTC train <95% |
|
||
| 11 | Disaster-cap LARGO **intrabar** (k 5–12) | NO: k=10 cella isolata; BTC-OOS shrp 2.18→**0.92**, worst −3.1→−11.4 (il fill gap-aware rende lo stop più tossico del no-stop) |
|
||
|
||
**Pattern (5ª conferma della lezione exit-lab):** ogni stop abbastanza stretto da toccare
|
||
la coda ETH intacca il motore BTC; ogni stop abbastanza largo da risparmiare BTC non
|
||
arriva mai alla coda ETH. Per un segnale win~50% con edge nell'asimmetria dei winner,
|
||
OGNI SL taglia i winner-in-drawdown insieme ai loser. In più il fill gap-aware mostra
|
||
che proprio nei crash (quando lo stop servirebbe) il fill è al gap, non al livello:
|
||
lo stop intrabar largo PEGGIORA la coda OOS di BTC invece di proteggerla.
|
||
|
||
## Decisione
|
||
|
||
- **NO SL su SH01** (né `sl` né `sl_confirm_atr` per SH_BTC/SH_ETH: corretto E sicuro —
|
||
il fallback −2% del worker si applica solo se `sl` è presente).
|
||
- **La leva giusta è il PESO**: cap della famiglia SHAPE nel weighting di PORT06
|
||
(`weighting.py` supporta già `caps` per famiglia, come PAIRS 0.33). Dimezzare la quota
|
||
SHAPE ≈ dimezza l'impatto della prossima coda −15% sul conto, a costo ~nullo di Sharpe
|
||
(SH01 è un diversificatore, corr +0.08 col MASTER).
|
||
- **APPLICATO E DEPLOYATO (stesso giorno):** `caps={"PAIRS": 0.33, "SHAPE": 0.0588}` in
|
||
`_defs.py` (SHAPE 11.8%→5.9%, ≈ mezzo sleeve equal; SH_BTC=SH_ETH=0.0294, somma pesi 1.0,
|
||
verificato). Quantificato sul backtest PORT06:
|
||
|
||
| Config | FULL Sharpe | FULL DD | CAGR | OOS Sharpe | OOS DD |
|
||
|---|---:|---:|---:|---:|---:|
|
||
| precedente (SHAPE 11.8%) | 6.47 | 4.10% | 61.2% | 8.82 | 1.30% |
|
||
| **cap SHAPE 5.9% (scelto)** | 6.43 | 3.96% | 62.1% | 8.58 | 1.36% |
|
||
| SHAPE rimosso | 6.30 | 3.88% | 63.0% | 8.26 | 1.41% |
|
||
|
||
Il costo (−0.24 OOS Sharpe) è il premio dell'assicurazione su una coda che il backtest
|
||
daily NON modella (gap di feed, flat testnet). Rimuovere SHAPE costa troppo (8.26).
|
||
|
||
## Direzioni future (fuori scope SL, annotate dalla sintesi)
|
||
|
||
1. **Liquidity/staleness-gate sull'ENTRY** (skip ingressi dopo finestre di feed flat —
|
||
il flat 2h ha preceduto il gap del 2026-06-05): la direzione più promettente per il
|
||
gap-through specifico, merita uno studio dedicato.
|
||
2. Vol-target sizing per-trade su SH01 (sulle fade fallì, su SH01 mai testato).
|
||
3. SL solo-ETH: scartato anche concettualmente (il beneficio coda ETH è marginale/nullo
|
||
OOS in TUTTE le famiglie — non è un problema di uniformità del meccanismo).
|