Files
PythagorasGoal/docs/diary/2026-06-18-price-ladder-search.md
T
Adriano Dal Pastro e631e1b89c docs(diary): price-ladder search 2026-06-18 — verdetto RETTIFICATO (nessun deploy)
Caccia multi-agente (34 agenti, 200 celle) a Price Ladder che passi il gate PORT06 su
Deribit. La sintesi iniziale trovava candidati "deployabili" (ETH 1h range-gated half-size,
OOS 10.86->11.0; BTC half-size OOS->11.34). Il critico + verifica dati ROVESCIANO il verdetto
(sez. 6): (1) la "coda BTC ~54%" e' DATI CORROTTI da spike-print (37 barre >20% intrabar, feb-2024
wick fasullo -23%, min 22.7k/max 104.7k vs BTC reale ~47-57k = stesso problema TP_PHANTOM/feed
testnet di CLAUDE.md) -> BTC non affidabile, lo stress-2022 non toccherebbe la coda vera;
(2) il +0.14 OOS Sharpe e' rumore al peso deployabile (~2.7% half, 592g regime calmo, no
significativita'); (3) il finalista ETH e' corr 0.305 (vicino allo 0.40 che fece bocciare la
griglia originale) e il regime_mask condivide il filtro trend con le fade ETH live; (4) FULL DD
standalone mascherata dal compounding (31x); (5) close_only disponibile ma non girato sui
finalisti. VERDETTO: nessun Price Ladder deployabile dimostrato; il multi-agente+critico ha
evitato un deploy ingiustificato. Config live INVARIATA. Harness validata resta come record.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 14:16:54 +00:00

12 KiB
Raw Blame History

2026-06-18 — Price Ladder (griglia) vs gate PORT06

Branch: price_ladder_research · Harness: scripts/analysis/ladder_search.py (engine grid_mtm: mark-to-market onesto, SL gap-aware, flat-skip, fee 0.10% RT taker). Baseline PORT06: FULL Sharpe 8.13 / DD 2.47% — OOS Sharpe 10.86 / DD 2.09%. Metodo: caccia multi-agente su asset × TF (15m/30m/1h) × regime-gate (none / range trend_max 1.5/2.0/2.5), poi verify avversariale sui finalisti (plateau, fee 2x, corr, FULL DD di portafoglio). Goal di progetto: trovare un Price Ladder che diversifichi (PASSI il gate) senza accendere la coda di trend.


1. Cosa era già noto

Il gioco-griglia precedente aveva trovato una griglia ETH fortissima standalone (Sharpe ~5.61) ma BOCCIATA al gate PORT06: corr ~0.40 con le fade ETH già deployate → ridondante, non un diversificatore. La lezione: lo standalone Sharpe non basta, conta quanto il ladder aggiunge ortogonalmente al portafoglio. Questa ricerca cerca proprio un ladder che PASSI il gate = che abbia corr bassa con gli sleeve esistenti.


2. Risultato NUOVO — i ladder PASSANO il gate

Sì. Su tutti gli asset liquidi (BTC e ETH) e su quasi tutte le combinazioni TF×regime, i ladder migliorano l'OOS Sharpe di portafoglio (10.86 → ~11.011.35) con corr bassa:

  • BTC (15m/30m/1h, range o none): corr 0.150.27, molto più ortogonale della griglia ETH bocciata (0.40). OOS di portafoglio 11.111.35 (il guadagno OOS più grosso).
  • ETH (15m/30m/1h): corr 0.210.57 (15m la peggiore, fino a 0.57; a 1h scende a 0.220.39). OOS di portafoglio ~10.911.1.
  • SOL/LTC: SOL passa solo 2 celle, half-only, edge standalone quasi nullo (full_sh ~0.2); LTC è negativo ovunque (full_sh 0.4…−0.8, bocciato) → solo BTC/ETH liquidi danno un ladder vivo, come atteso.

Il gate misura corr + OOS, e su questi due assi i ladder BTC vincono nettamente.

Migliori candidati (dai verify avversariali)

Asset/TF/regime/struttura OOS base→new FULL DD standalone FULL DD portafoglio (full / half) corr fee2x OOS robust?
ETH 1h range2 rd0.16 ru0.04 L4 10.86→11.00 11.79% 2.70 / 2.52 0.305 4.89
ETH 1h range2 rd0.16 ru0.06 L6 10.86→11.01 12.09% 2.74 / 2.54 0.328 (al filo) 5.05
ETH 1h range2 rd0.16 ru0.06 L4 10.86→10.98 12.64% 2.68 / 2.51 0.249 4.44
ETH 30m range2 rd0.16 ru0.04 L3 10.86→10.93 12.56% 2.48 / 2.41 0.223 4.21
ETH 1h none rd0.20 ru0.06 L6 10.86→11.03 17.89% 2.59 / 2.46 0.271 5.43
ETH 30m none rd0.16 ru0.06 L4 10.86→10.92 18.68% 2.37 / 2.35 0.319 5.42
ETH 1h none rd0.16 ru0.06 L4 10.86→10.96 23.13% 2.40 / 2.37 0.224 4.59
BTC 1h none rd0.08 ru0.06 L3 10.86→11.34 53.69% 3.11 / 2.48 0.216 5.78 ⚠ half-only
BTC 30m range2.5 rd0.08 ru0.06 L3 10.86→11.22 55.33% 3.27 / 2.50 0.265 5.19 ⚠ half-only
BTC 30m none rd0.08 ru0.06 L3 10.86→11.32 55.33% 3.27 / 2.44 0.220 5.37 ⚠ half-only (tail)
BTC 1h range1.5 rd0.20 ru0.06 L6 10.86→11.13 54.43% 3.19 / 2.33 0.161 5.46 ⚠ half-only (tail)

rd = spacing down, ru = spacing up, L = livelli. Tutti i finalisti hanno plateau robusto (47 vicini di struttura restano PROMOSSO) e fee2x ~= OOS standalone.


3. IL NODO — la FULL DD (che il gate IGNORA)

Il gate verdict NON guarda la FULL DD. Misura solo corr + OOS Sharpe/DD. Una griglia long-only ha una coda di trend 2021/22 (viene comprata fino in fondo mentre il prezzo crolla in un trend persistente) → la FULL DD standalone è il vero rischio nascosto. Il filtro onesto è la FULL DD di PORTAFOGLIO (full_full_dd / half_full_dd), con soglia di tail-risk ~+0.8pp sopra il baseline 2.47% (cioè restare sotto ~3.3%).

Due famiglie nette emergono:

  • BTC — FULL DD standalone ~5467% (la coda long-only è devastante, come temuto). Il regime-gate range taglia gli ingressi nei trend ma non immunizza dalle posizioni già aperte → a FULL size la FULL DD di portafoglio sale a 3.16.6% (+0.6/+4.0pp, oltre la soglia tail in quasi tutte le celle). A HALF size invece rientra a 2.332.54% (~baseline) preservando l'OOS ~11.011.3. → BTC deployabile SOLO a half-size, e il guadagno OOS più grosso (11.3+) viene proprio da queste celle a coda alta.

  • ETH — FULL DD standalone molto più bassa del previsto: 1233% (1h range scende a ~12%), NON il ~60% temuto. Lo SL-buffer + flat-skip + il regime-gate range tengono la griglia fuori dai trend estesi. Conseguenza: la FULL DD di portafoglio resta 2.372.74% (+0.0/+0.27pp, sotto soglia anche a FULL size) — in diversi casi scende sotto il baseline (es. ETH 30m none L4 → 2.37%). → ETH è la famiglia tail-safe. Il prezzo è una corr più alta (0.220.33 sui finalisti 1h/30m, fino a 0.57 sul 15m da scartare).

Lettura chiave: il regime-gate abbassa la FULL DD ma su BTC non a sufficienza a full size (la coda 54% è troppo grande); è l'half-size a fare il lavoro. Su ETH la coda è già piccola e il portafoglio l'assorbe. Quindi il discriminante reale è asset (ETH vs BTC) + size, non solo il regime-gate.


4. Vantaggio Deribit — fill MAKER

Un Price Ladder è una griglia di ordini LIMIT ai livelli → su Deribit i fill sono MAKER (~0% fee), non taker. L'harness assume 0.10% RT taker ovunque → è CONSERVATIVA: la stessa griglia live pagherebbe meno fee e potrebbe rendere PIÙ del backtest. Lo confermano i verify: il fee2x (raddoppio fee) lascia l'OOS Sharpe quasi intatto (~98% trattenuto su quasi tutti i finalisti) → nessun fee-cliff, e con i fill maker reali c'è upside, non downside, sul lato costi. (Il rischio resta la coda di trend e lo slippage/fill in esecuzione reale, non le fee.)


5. Verdetto operativo

C'è un Price Ladder deployabile. Il candidato più pulito su tutti gli assi (PROMOSSO + FULL DD di portafoglio controllata a full size + plateau robusto + corr genuina):

ETH 1h, regime=range trend_max 2.0, rd=0.16 / ru=0.04 / 4 livelli, sl_buf 0.12 / tp_buf 0.05, max_bars 720. OOS 10.86→11.00, FULL DD portafoglio 2.70% a full / 2.52% a half (standalone 11.79%), corr 0.305, fee2x OOS 4.89, plateau 4 vicini PROMOSSO. Deploy raccomandato a HALF size (FULL DD +0.05pp, marginale; il caveat slippage live giustifica la prudenza).

Alternative ETH equivalenti (stessa banda di sicurezza, scegliere per corr/coda): ETH 1h range2 rd0.16 ru0.06 L4 (corr 0.249, la più bassa) e ETH 30m range2 rd0.16 ru0.04 L3 (FULL DD portafoglio 2.48, ~baseline). Tutte ETH 1h/30m range-gated rd≥0.16 → NON scendere sotto rd 0.16 (rd 0.12 fa risalire la corr verso 0.38 = ricomincia a somigliare alle fade ETH; il 15m ha corr 0.430.57 = troppo ridondante, scartare).

I BTC NON a full size. Danno il guadagno OOS più grande (fino a 11.34) e la corr più bassa (0.160.22 = la diversificazione migliore), MA la FULL DD standalone ~54% li rende tail-risky a full size (FULL DD portafoglio 3.16.6%, oltre soglia). Deployabili SOLO a half-size (FULL DD portafoglio 2.332.50), dove restano un diversificatore eccellente. Il migliore BTC half-size è BTC 1h range1.5 rd0.20 ru0.06 L6 (corr 0.161, FULL DD portafoglio half 2.33).

BLOCCO prima di qualsiasi deploy: il gate PORT06 (corr + OOS) è necessario ma non sufficiente — non controlla la FULL DD, e l'OOS held-out è un regime calmo (202425). La coda di trend 2021/22 è reale e standalone è enorme su BTC. Nessun deploy senza un gate stressato sul 2022 (verificare la FULL DD di portafoglio attraverso il trend duro, non solo l'OOS calmo) e una conferma su ledger reale shadow per slippage/fill maker. Il verdetto del gate va sempre incrociato con la FULL DD di portafoglio (filtro vero) + fattibilità feed live + regime recente — la stessa lezione del timing-sweep pairs/honest (2026-06-14).

Sintesi: ETH 1h/30m range-gated rd≥0.16 a half-size è il deploy-candidate sano e tail-safe; BTC è il diversificatore migliore ma solo a half-size per la coda di trend. Prossimo passo obbligatorio: stress-test 2022 + shadow ledger reale (i fill maker possono solo migliorare il risultato sul lato fee).


6. ⚠️ RETTIFICA CRITICA — il verdetto §5 è ROVESCIATO (critico + verifica dati)

Il critico di completezza + una verifica diretta dei dati ribaltano la raccomandazione di deploy della §5. Messo a verbale: la §5 è SUPERATA da quanto segue.

(1) I risultati BTC poggiano su DATI CORROTTI (spike-print), verificato. La "coda di trend BTC 54%" su cui ruota la §3 NON è un crollo di mercato: è feed sporco. Misurato su btc_1h: 37 barre con range intrabar >20%, concentrate a feb-2024 (es. 2024-02-13: low=38.580 con close49.968 = wick fasullo 23% che rimbalza nella stessa barra), con min 22.706 / max 104.688 in un trimestre dove BTC stava ~4757k. È lo stesso spike-print testnet documentato ovunque in CLAUDE.md (TP_PHANTOM / feed congelato). L'engine SL-gap-aware filla su questi wick fantasma e la griglia "compra" i dip fasulli → la coda BTC ~54% e parte dell'edge OOS sono artefatto, non mercato. Conseguenza: i candidati BTC NON sono affidabili, e lo "stress 2022" proposto NON toccherebbe la coda vera (che è a feb-2024, da dati sporchi). Serve close_only + pulizia feed.

(2) Il guadagno OOS è RUMORE al peso deployabile. +0.14 OOS Sharpe su base 10.86, con il ladder che pesa ~5.3% full / ~2.7% half in un portafoglio già a Sharpe ~11, su 592 giorni di un solo regime calmo (2024-10→2026-05, niente 2022). Nessun test di significatività (block-bootstrap). A half-size il contributo è quasi inerte (a volte l'OOS DD migliora): è dentro l'errore di campionamento, non un edge dimostrato.

(3) La diversificazione ETH è più sottile di quanto venduto. Il finalista ETH "raccomandato" è corr 0.305 (non 0.150.20: quella è BTC half-only non deployabile), già vicino allo 0.40 che fece bocciare la griglia ETH originale. Peggio: il regime_mask usa lo stesso filtro trend-distance (|closeEMA200|/ATR) delle fade ETH già live → la "diversificazione" è in parte illusoria (gate e sleeve condividono il filtro). La corr misurata è daily in regime calmo, NON co-tail: una griglia long-only e una fade reversion possono co-crollare in un trend (entrambe "comprano il calo") — la metrica che conterebbe (co-movimento nella coda) non è calcolata.

(4) La FULL DD standalone è mascherata dal compounding. Il finalista ETH compone a ~31x (+3.1M%) in 5.4 anni: una "FULL DD 11.79%" accanto a un ritorno di milioni-% è artefatto di notional reinvestito, e il daily-resample nasconde l'inventory-risk intrabar che il docstring di grid_game_gate.py (righe 57) avverte esplicitamente di non vedere.

(5) Stress disponibile NON usato. ladder_search/grid_mtm hanno close_only=True (filla solo sul close, neutralizza gli spike-print): NON è stato girato sui finalisti — proprio il test che smonterebbe la coda BTC fasulla.

Verdetto rettificato

NON c'è un Price Ladder deployabile dimostrato. La ricerca ha prodotto (a) una harness onesta e validata (ladder_search.py + regime-gate, riproduce esatto il gate noto), (b) un risultato negativo/guardingo robusto: ogni candidato o è ridondante (ETH, corr→0.40), o poggia su dati sporchi (BTC spike-print), o è rumore al peso deployabile. Il multi-agente + critico ha evitato un deploy ingiustificato — esattamente la lezione anti-squeeze del progetto.

Prima di riconsiderare QUALSIASI ladder servono, in ordine: (1) pulire il feed BTC dagli spike-print + girare close_only sui finalisti; (2) test di significatività del delta OOS (block-bootstrap) al peso reale; (3) co-tail / corr nei crash (2022), non corr daily calma; (4) isolare e spiegare l'evento feb-2024. Config live invariata.