Files
PythagorasGoal/docs/research/RESULTS-0822.md
T

6.2 KiB

ONDATA 2026-08-22 — esiti per filone (aggiornato man mano)

Regola di lettura: SCARTATO con un meccanismo misurato vale quanto un LEAD — chiude un filone e smette di farlo pagare alle ondate successive. CANDIDATO richiede marginal ADDS + DSR>=0.95 + null de-levering superato + eseguibilita' al capitale dichiarato.

# filone verdetto in una riga
9 ADAPTIVE-HORIZON SCARTATO il "vincitore adattivo" ha lookback incollato al bordo il 100% del tempo = TSMOM costante a 20g (corr 1.000, dSh 0.00 in 8/8 anni e 0/12 ancore); isolando le celle davvero adattive -> NEUTRAL, corr→TP01 0.90 = TP01 travestito
2 GROWTH-POLICY LEAD (condizione, non data) il libro gira al 7% di Kelly e raccoglie il 15% della crescita massima in log; il gradino eseguibile 1.00x->1.25-1.50x vale 14.7a -> 12.9-11.6a al muro. Ma un solo giorno -10% all'anno porta k* da ~10x a 2x: non si decide su un conto vero con la lente close-only

Note che sopravvivono ai singoli filoni

9 — ADAPTIVE-HORIZON (r0822_adaptive_horizon.py, 112 trial dichiarati)

  • Sanity: il baseline dell'agente riproduce TP01 canonico a max|diff| = 0.0 (n=2719).
  • Il controllo giusto NON era TP01 ma il miglior lookback COSTANTE: senza quel controllo il null confonde "adattare paga" con "un orizzonte piu' corto paga su questo campione". L'agente se l'e' costruito da solo dopo aver visto l'argmax incollato al bordo, e ha dichiarato i trial in piu'.
  • ⚠️ Segnalazione, NON proposta: 30/90/180 e' rango 18/24 in-sample nella propria famiglia di orizzonti (10/24 sull'hold-out), ma la superficie di L e' un crinale di rumore — il salto di Sharpe fra L ADIACENTI e' +0.18, cioe' il 47-67% dell'intero vantaggio del vincitore su TP01, ed estendere la griglia ha spostato l'argmax da L=20 a L=15. "Piu' corto e' meglio" e' un max-of-k su una superficie frastagliata. Nessun cambio a TP01.
  • Riaprirebbe il filone: un rilevatore il cui L si muove DAVVERO che batta il miglior L costante (non TP01) in >=6/8 anni appaiati con corr→TP01 < 0.6 — es. BOCPD/PELT vero, non provato.

4 — DEALER-GAMMA (r0822_dealer_gamma.py, 136 statistiche dichiarate)

⚠️ DIFETTO DI DATO, il risultato piu' riusabile del filone: dealer_net_gamma e' il GEX col SEGNO INVERTITO — corr -0.95 BTC / -0.89 ETH contro la ricostruzione da manuale sulla catena (962/1116 snapshot, ~280-316 strike), fit dng ~ -0.7*GEX. Chi lo usasse col nome che porta leggerebbe ogni regime al contrario. Spiega anche la contraddizione interna del file (corr fra dng>0 e spot>flip = -0.28 / -0.92). ⚠️ Il file dichiara piu' di quel che ha: cadenza 15 min solo dal 2026-05-01; i 37 giorni prima sono un punto al giorno -> 90 giorni, non 4 mesi. liquidation_long_risk e liquidation_short_risk sono COSTANTI ('low' in 17.229 righe su 17.229 non nulle) = zero informazione. gamma_flip_level congelato nel 61% dei passi su BTC.

  • Gate: null de-levering FALLITO (baseline x0.6 stesso maxDD con Sharpe migliore); DSR 0.440 su 64 trial, e nel modo piu' netto — la cella migliore (+4.98 lordo) sta sotto il massimo atteso dal puro rumore (+5.12). marginal_vs_tp01 inutilizzabile: su 90 giorni full e hold-out COINCIDONO (n_hold_days == n_days == 90).
  • Null location-matched (aggiunto dall'agente): gamma_flip_level bocciato — 96% di accordo con spot > SMA(720h) su ETH; su BTC la SMA nuda da' uno spread MAGGIORE.
  • Ampiezza effettiva: 73/59 episodi di regime ma 6-8 coprono il 78-86% del tempo -> n_eff 53 (BTC) / 24 (ETH) ore su 2.130. Il regime coincide col MESE (maggio long, giugno short, luglio long).
  • Ricostruibile oggi dalla NOSTRA catena, meglio dell'originale (518 ore dal 01/08, ~209-262 strike/ora, quote_status ok ~100%, segno giusto) — ma la soglia non e' portabile (dng=0 corrisponde a GEX=+5.8e6 su BTC): ricalibrarla sui 90 giorni sarebbe la selezione che il progetto rifiuta. Riapertura non prima di ~30-40 episodi di regime = ~2 anni (meta' 2028).

2 — GROWTH-POLICY (r0822_growth_policy.py, 241 celle dichiarate)

Controllo di replica superato: il motore riproduce r0807_piano_netto §2 al numero pubblicato (EUR250/m -> 19,8a / P 52%; EUR500/m -> 14,7a / P 99%) con path diversi. 📌 Il risultato strutturale: ogni gate del progetto e' INVARIANTE ALLA SCALA. Lo Sharpe misura 1,31 a OGNI cella del knob di leva -> deflated_sharpe e marginal_vs_tp01 non falliscono, non vedono la variabile. E' per questo che la leva e' l'unica leva del libro mai esaminata in 2 mesi.

  • Serie de-luckata x0,89: drift 17,11%/a, vol 11,37%, Sharpe 1,51, peggior giorno -3,95%. Netto fee E netto fisco d'accumulo (33% + carry 4a + patrimoniale 0,2%).
  • k* empirico ~10-14x (banda 10x a 1500 path / 14x a 2500: la POSIZIONE non e' risolta), Kelly gaussiano 13,2x. Libro a k=1 -> g 17,0%/a, maxDD mediano 18,1%, P(DD>30%) 1,4%.
  • Fragilita' che decide il verdetto: k* e' lineare nell'errore del drift (stimato su 7,4 anni) — -1 SE -> 10x, -2 SE -> 7x, drift dimezzato -> 7x, drift zero -> 0,5x. E allo stress di coda un giorno -10% all'anno porta k* a 2x, -15%/anno a 1x.
  • ⚠️ Controllo di plausibilita' FALLITO dall'agente sul proprio output (e riportato): capitale mediano $4,4e12 da $600 a k=14x -> il modello assume ritorno indipendente dalla size. A k>2 i numeri sono aritmetica, non previsioni.
  • Gate pre-registrato (condizione, non data): nessuna proposta di k>1 prima di rifare la curva con la lente WICK ACCOPPIATA (r0725_prop_coupled) — a leva il breach si valuta sul MINIMO, e la lente close-only usata qui e' quella misurata cieca il 25/07 (raddoppia i breach da daily-loss).
  • 📌 Sottoprodotto da verificare (tocca un'etichetta del libro live): a target_vol=20% la vol realizzata di TP01 e' 12,14% — il target vale sulla posizione quando c'e', e TP01 e' long-flat. L'etichetta sovrastima il rischio preso di ~40%.