Files
PythagorasGoal/docs/diary/2026-06-18-price-ladder-search.md
T
Adriano Dal Pastro 587fbc0f61 feat(analysis): ladder_sltp_study — 3 passi pre-deploy + SL/TP, config finale ladder
I 3 passi: [1] valutazione 2018-INCLUSIVE (il gate IDX2021+ e' cieco al 2018) -> il tail
vero del BTC ladder e' il 2018 (-27.7% regime-gated / -50% none); [2] fill maker 0% vs
taker 0.10% (Deribit = LIMIT = maker) -> maker leggermente MIGLIORE, harness conservativa,
nessun fee-cliff; [3] half-size (la coda 2018 si dimezza sul book). STUDIO SL/TP: sweet spot
sl_buf=0.10/tp_buf=0.03 cappa il 2018 a -23.5% (da -27.7) senza intaccare l'edge (oos 5.06).
Lezione (conferma prior progetto): SL troppo stretto PEGGIORA (redeploy nel coltello = falso
negativo MR), SL da solo senza regime-gate e' erratico -> il regime-gate e' il controllo
PRIMARIO della coda, il SL moderato fine-tuna. Config finale: BTC 1h range1.5 rd0.20 ru0.06
L6 sl0.10 tp0.03 half-size, PROMOSSO (OOS 10.86->11.0, corr 0.195). Unico passo residuo:
shadow ledger reale (operativo). Diario sez. 8.

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

18 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.


7. RE-GATE su DATI PULITI (post clean_feed.py) — quadro onesto finale

Dopo clean_feed.py (254 spike-print riparati con Binance) ho ri-gateato i top candidati con le verifiche che il critico chiedeva (ladder_regate_clean.py): gate PORT06 + stress close_only + DD per anno sulla storia completa.

Candidato DD (gate, 2021+) OOS Sh corr fee2x close_only OOS gate½ DD 2018 (tail vero)
ETH 1h rd0.16 ru0.04 L4 range2 12.4% 4.70 0.29 4.62 0.24 PROMOSSO 52.4%
ETH 1h rd0.16 ru0.06 L4 range2 12.6% 4.25 0.23 4.17 0.20 PROMOSSO 49.9%
BTC 1h rd0.08 ru0.06 L3 none 10.8% 5.90 0.24 5.78 0.60 PROMOSSO 50.3%
BTC 1h rd0.20 ru0.06 L6 range1.5 14.8% 5.58 0.23 5.46 0.89 PROMOSSO 27.7%
BTC 30m rd0.08 ru0.06 L3 none 14.8% 5.47 0.25 5.37 1.07 PROMOSSO 36.6%

Cosa cambia coi dati puliti:

  1. L'obiezione "coda artefatto" CADE. Il 54% del BTC era spike-print 2024: ora la DD del gate (2021+) è ~11-15% e tutti i candidati restano PROMOSSO a half-size, corr 0.22-0.29, reggono fee2x. Sono candidati veri, non artefatti.
  2. 🔴 Emerge il tail VERO: il 2018 (44/52% standalone), che il gate NON VEDE perché l'IDX del progetto parte dal 2021-01-01. Una griglia long-only sarebbe stata sventrata nel bear 2018 (BTC 84% sull'anno). È il nuovo rischio portante — e una lacuna metodologica generale: tutte le metriche "FULL" del progetto escludono il 2018. Mitigante reale: il regime-gate stretto (BTC rd0.20 L6 range1.5) dimezza il tail 2018 a 27.7% (vs 50% senza gate) → il gate-di-regime fa il suo lavoro contro i bear sostenuti.
  3. 🟡 L'edge dipende dai fill INTRABAR. close_only (fill solo sul close) fa crollare l'OOS (4.7→0.24 ETH, 5.9→0.6 BTC). Per ordini LIMIT i fill intrabar sono legittimi (close_only è troppo severo come stress), ma il gap segnala forte sensibilità all'ipotesi di fill → il ledger shadow reale è indispensabile prima di fidarsi.
  4. 🟡 Restano: corr 0.22-0.29 (moderata), guadagno OOS ai limiti del rumore al peso deployabile (~2.7% half), OOS singolo regime calmo.

Verdetto finale (clean data): la pulizia ha rimosso l'obiezione FALSA (coda artefatto) e promosso i candidati a genuini, ma ha anche scoperto il tail REALE (2018, gate-cieco) e confermato due cautele (fill intrabar, OOS rumoroso). Il candidato più sensato è ora BTC 1h rd0.20 ru0.06 L6 regime=range trend_max1.5: PROMOSSO, corr 0.23, e la miglior coda 2018 (27.7%) grazie al regime-gate. Prima di QUALSIASI deploy: (1) backtest che INCLUDA il 2018 nel gate (non solo IDX 2021+), (2) ledger shadow reale per i fill intrabar/maker, (3) half-size. La pulizia del feed resta il guadagno trasversale più grande (irrobustisce ogni backtest del progetto).


8. I 3 PASSI PRE-DEPLOY + STUDIO SL/TP (ladder_sltp_study.py)

[1] Valutazione 2018-INCLUSIVE (standalone, tutta la storia; il gate IDX2021+ è cieco al 2018):

Candidato (sl0.12/tp0.05) full_sh full_dd oos_sh DD 2018 DD 2021
BTC 1h L6 range1.5 3.18 27.7% 4.95 27.7% 14.8%
BTC 1h L3 none 2.93 60.2% 5.51 50.3% 10.8%

Il regime-gate già dimezza il tail vero (2018: 50%→−27.7%). Senza gate la griglia long-only è insostenibile (60%).

Studio SL/TP (sweep sl_buf × tp_buf sul candidato regime-gated, full 2018+):

  • Sweet spot: sl_buf=0.10, tp_buf=0.03 → DD 2018 23.5% (da 27.7%), oos_sh 5.06, full_sh 2.92. Migliora il tail SENZA intaccare l'edge.
  • Lezione (conferma il prior del progetto): un SL troppo stretto PEGGIORA (sl 0.06 → 33/35%): stoppa e rideploya più in basso nel coltello che cade = la trappola del falso-negativo mean-reversion. Un SL troppo largo (0.20) idem (29/31%, oos più basso). Il bene sta in mezzo (0.10).
  • Il SL da solo (senza regime-gate) è ERRATICO (tabella L3 none non-monotona: 20% → 52% → 43% al variare di pochi punti): è il regime-gate il controllo primario della coda; il SL moderato fine-tuna. Catastrophe-control = "non deployare nel bear" (regime) + "cappa l'episodio" (SL 0.10), NON uno stop stretto.

[2] Fill maker vs taker (Deribit: i livelli sono LIMIT → maker):

fee oos_sh DD 2018 gate½
taker 0.10% RT (harness) 5.06 23.5% PROMOSSO (OOS 10.86→11.0, corr 0.195)
maker 0% (Deribit reale) 5.18 22.7% PROMOSSO (OOS→11.0, corr 0.194)

Il maker è leggermente MIGLIORE → la harness taker è conservativa, nessun fee-cliff. (La parte live = shadow ledger reale resta il passo operativo finale.)

[3] Half-size: il gate "half" è già a metà size e PROMOSSO; la coda 2018 standalone 23.5% si dimezza sul book (~12% in un 2018-repeat a half-size) = reale ma gestibile.

CONFIG FINALE raccomandata (con SL/TP aggiunti)

BTC 1h · regime=range trend_max 1.5 · rd 0.20 / ru 0.06 / 6 livelli · sl_buf 0.10 / tp_buf 0.03 · HALF-size.

  • Tail 2018-inclusive: 23.5% standalone (~12% sul book a half) — reale ma controllato dal regime-gate + SL moderato.
  • Gate PORT06: PROMOSSO (OOS 10.86→11.0, corr 0.195); maker Deribit lo migliora; nessun fee-cliff.
  • Unico passo residuo: shadow ledger reale (fill intrabar/maker su Deribit) — operativo, non backtestabile.

Caveat onesti residui: l'OOS gain al peso deployabile è modesto (10.86→11.0); il tail 2018 non è zero (12% a half); l'edge dipende dai fill intrabar (per i LIMIT è legittimo, ma lo shadow lo deve confermare).