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>
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# 2026-06-04 — Exit ladder (80% del TP → esci 80%, runner con stop dinamico): SCARTATO
|
||||
|
||||
## La proposta
|
||||
|
||||
"E se all'80% del TP usciamo con l'80% della posizione, mettiamo uno SL dinamico
|
||||
su quella soglia (profitto lockato) e lasciamo correre il 20% restante?"
|
||||
|
||||
Idea: uscita scalare — bancare prima la maggior parte del profitto (la soglia
|
||||
all'80% viene toccata più spesso del TP pieno) e tenere un runner free-ride con
|
||||
worst-case alla soglia, best-case oltre il TP.
|
||||
|
||||
## Il test (onesto, stessi segnali)
|
||||
|
||||
`scripts/analysis/partial_tp_ladder.py`: replay intrabar degli STESSI segnali
|
||||
delle 3 fade (params live: `trend_max=3.0, ema_long=200, hurst_max=0.55,
|
||||
min_tp_frac=0.0015`), engine identico a `fade_base` (ingresso a `close[i]`,
|
||||
SL pieno prioritario nello stesso bar, fee 0.10% RT × leva 3 — il ladder NON
|
||||
paga fee extra: due uscite ma stesso notional). Convenzioni conservative: se il
|
||||
bar che tocca la soglia chiude oltre (rientro), il runner è stoppato subito.
|
||||
Griglia: base vs ladder (f=0.8 q=0.8 — la proposta —, f=0.8 q=0.5, f=0.5 q=0.5),
|
||||
FULL + OOS (nov 2023→), BTC+ETH.
|
||||
|
||||
## Risultati (proposta f0.8 q0.8)
|
||||
|
||||
| Sleeve | ret% FULL base→ladder | DD% | ret% OOS | win% OOS |
|
||||
|---|---|---|---|---|
|
||||
| MR01 BTC | 92 → 92 | 13.8 → 10.0 | 41 → 39 | 60 → 65 |
|
||||
| MR01 ETH | 194 → 195 | 16.5 → 15.3 | 134 → 147 | 70 → 75 |
|
||||
| MR02 BTC | 129 → 112 | 19.0 → 17.2 | 66 → 54 | 55 → 59 |
|
||||
| **MR02 ETH** | **2135 → 1319** | 16.2 → 12.7 | **893 → 651** | 75 → 80 |
|
||||
| MR07 BTC | 78 → 78 | 6.8 → 5.2 | 43 → 40 | 64 → 66 |
|
||||
| MR07 ETH | 115 → 96 | 10.6 → 10.6 | 68 → 64 | 66 → 70 |
|
||||
|
||||
## Verdetto: NO-GO (gate fallito)
|
||||
|
||||
1. **Il runner non corre.** Su centinaia di trade finisce oltre il TP quasi mai
|
||||
(~3% dei partial; 0-15 casi per sleeve) e viene **stoppato alla soglia nel
|
||||
~60% dei tocchi**. È la fisica mean-reversion: il TP delle fade sta ALLA
|
||||
MEDIA — lì il movimento è esaurito per costruzione. Il runner è un
|
||||
trend-follow della coda, e i breakout rientrano (lezione squeeze).
|
||||
2. **Il costo è concentrato sui winner migliori**: ogni TP pieno ora esce
|
||||
all'80% della strada sulla quota grossa → MR02 ETH (lo sleeve più forte)
|
||||
−38% ret FULL / −27% OOS. Sharpe per-trade ~piatto: non migliora il
|
||||
rischio/rendimento, scambia ritorno con DD.
|
||||
3. **Quello che compra** (win-rate +4-5pp, DD −1-4pp) è lo stesso profilo del
|
||||
**vol-target sizing già scartato** ("abbassa il DD ma sacrifica ritorno");
|
||||
il lavoro anti-DD lo fa già il loss-guard Hurst, che il gate l'ha passato
|
||||
perché taglia SOLO i loser.
|
||||
|
||||
Nota dal grid: `f0.5 q0.5` su MR07 ETH fa Sharpe OOS 6.58 / win 82%, ma
|
||||
distrugge MR02 (2135→531) → nessuna variante robusta su tutti gli sleeve,
|
||||
niente cherry-picking per-sleeve.
|
||||
|
||||
Argomento esecutivo in più: il ladder raddoppierebbe la complessità dello
|
||||
shadow appena deployato (v1.0.7: limit reduce-only al TP) — due resting order
|
||||
per posizione, due riconciliazioni, e lo stop dinamico avrebbe il problema dei
|
||||
trigger Deribit (nuovo order_id al trigger → fill non verificabile per
|
||||
order_id).
|
||||
|
||||
**Conferma della lezione di famiglia:** i tweak d'exit che toccano i winner
|
||||
falliscono il gate (time-stop, vol-target, ADX, vratio… e ora il ladder);
|
||||
l'unico anti-perdite che passa resta il loss-guard Hurst, che riduce
|
||||
l'esposizione nel regime tossico senza toccare le uscite.
|
||||
Reference in New Issue
Block a user