1c0549080c
Domanda dell'operatore: "possiamo usare quanto conosciamo del pavimento per studiare una strategia". L'inverso di COLLAR01: non "quanto DD mi risparmia il pavimento a taglia fissa" (perdeva contro il de-levering) ma "quanta TAGLIA mi autorizza a DD fisso" — l'unica cosa che il de-levering non puo' comprare (cambia la FORMA, non la proporzione), e la grandezza su cui vive il tetto di leva del progetto (n·frac·scala·sl <= 0,50 => 1,67x). RISULTATO: 0/16. La sola put a premio reale PEGGIORA il maxDD in 16/16 celle (FORTE 51,83% -> 55,4-75,8%; LARGO 71,94% -> 74,8-81,7%), quindi k_f = 1,000 ovunque: niente da licenziare. Monotono nella protezione: piu' la put e' vicina, peggio va — il bleed del premio E' il drawdown. 🚨 CORREGGE §71 (stesso giorno). Stamattina A1 diceva "il pavimento funziona davvero". E' il COLLAR a ridurre il DD, non il pavimento: a premio zero la put lo riduce (51,83 -> 36,76, il controllo), a premio reale lo peggiora => tutto il beneficio e' mangiato dal premio, e oltre. Nel collar la riduzione viene dal TETTO: il suo premio compensa il bleed, e cappare l'upside abbassa il picco da cui il DD si misura — un picco piu' basso, non protezione. Premio di pareggio: 36-79% del reale; il DVOL sta 1,32x sopra la RV, quindi un prezzo equo (~76%) sfiora il pareggio nelle celle migliori e lo manca nelle altre. Il motivo di §46 (beta) non si applica — a beta 1,0 la put paga davvero — ma il verdetto di §46, "il maxDD SALE", si riproduce per un motivo diverso. Corretti il diario di §71 (titolo e A1), RESULTS, memoria. IL MECCANISMO (B2), trasferibile: i drawdown di BTC sono GRIND. maxDD FORTE 2021-07-20 -> 2022-05-06 = 290 giorni; LARGO fino al 2023-10-16 = 818. Una put a 7-14g copre UNA finestra; il DD che conta dura 20-60 finestre; la put scade OTM ogni settimana (para nel 0-9% dei cicli) mentre il premio sanguina. Non protegge nemmeno la finestra peggiore: 14g FORTE -22,9% nudo -> -23,6% col pavimento. Su BTC il pavimento compra protezione contro la cosa sbagliata. LA LICENZA DEL DISASTER-SL E' DI CARTA (B3), scritto prima che sia comodo: con la put a 5d/14g a 21,9% dallo spot, sostituire sl con quella distanza darebbe 2,28x. Ma l'invariante limita UN episodio, la put limita UNA finestra, e il massimo su finestre consecutive non e' limitato da nulla: 1 finestra -23,6% (coperta), 8 finestre -33,6% (non coperte) => a 2,28x un grind di 112 giorni costerebbe il 77% dell'equity. disaster_sl_pct NON si sostituisce con la distanza di un pavimento. Aggiunto a CLAUDE.md §3. GATED SULL'IV (B4) — la copertura dinamica che §46 non aveva provato: put ON solo sotto il 25°/50° pctl di DVOL/RV. Migliora molto (FORTE +3,8% -> +8,4%) ma resta sotto la base (+10,04%) e il DD resta >=. L'incollatura ignora lo spread delle transizioni A FAVORE del gated: perde a maggior ragione. Quattro attese a priori (B1-B4) scritte prima, tutte confermate. NON MISURATO, dichiarato: nessun DSR (cade al primo gate); nessuna lente reale; nessun pavimento a scadenza lunga (30-90g, che coprirebbe piu' finestre di grind) perche' l'operatore ha vincolato a <=15 giorni — e' l'unica variante che B2 lascia aperta, e sta fuori dal vincolo. Libro, pesi, cron, config INVARIATI. Nessun ordine. Test 25/25 sui filoni. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1524 lines
135 KiB
Markdown
1524 lines
135 KiB
Markdown
# Ondate di ricerca e scartati
|
||
|
||
> Estratto **verbatim** da `CLAUDE.md` il 2026-08-25 durante la compattazione.
|
||
> 69 filoni, 0 candidati promossi. Ogni bullet dice **perche'** e' morto:
|
||
chi lo riapre deve battere il motivo, non ripetere l'esperimento.
|
||
> Il testo non e' stato riscritto: e' la memoria originale, spostata.
|
||
|
||
---
|
||
|
||
- **Lead OPZIONI VRP (income short-vol) — quantificato, NON deploy** — `scripts/research/options_vrp_*.py`.
|
||
Vendita put settimanali che incassa il volatility risk premium (IV>RV), scorrelato al trend (~0.07).
|
||
Premio prezzato BS su DVOL reale (`fetch_dvol.py`) + calibrato su quote REALI cerbero-bite mainnet
|
||
(`options_vrp_calibrate.py`): **f reale ≈ 1.0** (non 1.29) → Sharpe ~0.71, DD 33%, coda severa
|
||
(settimane −15..−26% su LUNA/FTX). Diversificatore DEBOLE a premio reale, e short-vol da modello.
|
||
**Regola: niente short-vol da modello in deploy.** Rivalutare quando cerbero-bite cattura un crash
|
||
(per il f di stress reale). Diari `2026-06-19-options-vrp-lab` / `-eval-crypto-backtest-options`.
|
||
|
||
- **Edge deboli/scartati:** ML walk-forward BTC (Sh ~0.57), trend 1h L/S (~1.0), RV ETH/BTC (Sh 0.27,
|
||
regime-luck), calendar/seasonality (buy&hold travestito), volume/vol e momentum-reversal (negativi).
|
||
|
||
- **MORTO/confermato artefatto:** mean-reversion / fade (negativo anche a fee zero — la vecchia
|
||
libreria +201%/+1238% era contaminazione); trend 5m/15m (fee).
|
||
|
||
- **GAMMA SCALPING (long-vol) "scalping BTC/ETH con copertura in opzioni" — SCARTATO (2026-06-26)** —
|
||
`scripts/research/options_gamma_scalp.py`, test `tests/test_gamma_scalp.py`. È lo **specchio
|
||
esatto del VRP01** (long straddle ATM + delta-hedge: incassa **RV−IV**, dove VRP01 incassa IV−RV).
|
||
Perde **ogni anno, ogni variante, ogni frequenza** (Sharpe −3 a −6; nudo/cheap-gated/rich-skip;
|
||
rehedge 1d e 1h). Diagnostica strutturale: a 1d IV≈o>RV (BTC +4.9pp) → paghi il VRP; a 1h RV>IV
|
||
gross ma (a) gonfiata da microstruttura, (b) il rehedge orario paga **24× la fee di hedge** →
|
||
variante *peggiore* (−6). Marginale vs TP01 = **DILUTES**, non è nemmeno hedge (perde sia TP01-up
|
||
sia TP01-down). Muro eseguibilità: opzione BTC min $5.968 ≫ $600. Schiacciato tra due muri:
|
||
rehedge lento = premio, veloce = fee → **nessuna frequenza vince.** Regola gemella del VRP:
|
||
*niente long-vol scalp da modello in deploy*. Il VRP01 (lato short, gated) resta l'unico edge
|
||
opzioni — funziona perché sta sul lato *giusto* dello stesso premio. Diario `2026-06-26-gamma-scalp-options.md`.
|
||
|
||
- **CASH-AND-CARRY (basis trade) "CC01" — premio REALE, Sharpe ARTEFATTO, NON deployabile (2026-06-26)** —
|
||
`scripts/research/cash_carry_hl.py`, test `tests/test_cash_carry.py`. Diverso da FC01 (funding
|
||
cross-sectional, già scartato): qui delta-neutral long-spot/short-perp sullo *stesso* asset →
|
||
ritorno ≈ **+funding** (zero esposizione prezzo). Il premio di funding è **reale** (~+8-14%/anno
|
||
aggregato, positivo ogni anno in-sample, ortogonale a TP01 corr ~0.05). MA lo **Sharpe modellato
|
||
11-13 (DD 0.3%) è un ARTEFATTO**: il modello cattura solo il cashflow liscio del funding e i
|
||
rischi di coda sono **strutturalmente fuori dal dataset** — (1) storico funding dal 2023-05 →
|
||
**manca il 2022** (deleveraging, funding −, basis blow-out); (2) **procyclico** (carry +23% toro
|
||
2024 → +1.7% bear 2026, si comprime quando servirebbe); (3) liquidazione short/slippage non
|
||
modellati. Il mark-to-market della base (`premium` col → r=funding−Δpremium) sgonfia lo Sharpe
|
||
solo 13→11 → il basis-from-data NON è il rischio vero. Sharpe reale di un basis-trade ~1-3 con
|
||
code brusche. **NON eseguibile a $600** (spot+perp = 4-38 gambe, funding HL non Deribit) → STAT-MODE.
|
||
**LEAD da rivedere a scala (~20k+ e venue con funding eseguibile), non uno sleeve.** Sottoprodotto:
|
||
CC01 passa OGNI gate del marginal scorer → **punto cieco** (manca un gate "Sharpe implausibile →
|
||
rischio nascosto"; prossima indurita raccomandata). Diario `2026-06-26-cash-carry-hl.md`.
|
||
|
||
- **TP01 × DVOL vol-targeting — NON migliora (2026-06-26)** — `scripts/research/tp01_dvol_overlay.py`,
|
||
test `tests/test_tp01_dvol_overlay.py`. Angolo ESEGUIBILE (tocca il book live, non STAT-MODE):
|
||
usare il DVOL (vol implicita forward-looking) come denominatore del vol-target di TP01 invece
|
||
della vol realizzata. Su finestra comune 2021-2026: le varianti DVOL abbassano il DD (12.3%→9.2%)
|
||
ma anche Sharpe FULL (0.75→0.70) e CAGR (8%→6%). **Controllo decisivo:** il realized a target_vol
|
||
RIDOTTO (15%) eguaglia quel DD (9.4%) a Sharpe **più alto** (0.75) → il taglio di DD del DVOL è
|
||
solo **de-levering**, replicabile meglio con un semplice target_vol più basso. L'unico residuo
|
||
(hold-out +0.06) è single-window (storia DVOL <5 anni) → sotto la soglia multi-cut. Il gate
|
||
DVOL-spike de-risk è **ridondante col trend** (TP01 già flat nei crash, Δ 0.00). **Lezione: per meno
|
||
DD sul live la leva è `target_vol`, non un overlay DVOL** (20% resta canonico). Diario `2026-06-26-tp01-dvol-overlay.md`.
|
||
|
||
- **Filoni 2026-06-29 (1ª ondata) — tutti scartati/forward.** (A) **DVOL-DIREZIONALE** standalone BTC/ETH
|
||
(buy-the-fear / IV-RV come segnale di livello): l'unico edge è un **HEDGE** (is_hedge=True, paga solo
|
||
quando TP01 è debole), non alpha → earns_slot=False, forward-monitor come DD-dampener (diario
|
||
`2026-06-29-dvol-directional.md`). (B) **INTRADAY ERM** (efficiency-ratio regime momentum sub-daily):
|
||
**falso positivo da selezione-sull'hold-out** → SCARTATO (vedi gate SELECTION-ON-HOLDOUT;
|
||
`2026-06-29-intraday-regime.md`). (C) **XSEC-V2 NON-MOMENTUM** su HL (reversal/idio-reversal/low-vol/BAB):
|
||
solo LOWVOL 19-major regge standalone (FULL/HOLD 1.07) ma deflated-Sharpe 0.13 + storia 2.5a → **DEBOLE/
|
||
forward STAT-MODE** (`2026-06-29-xsec-v2-nonmom.md`). (D) **MACRO regime-gate** (equity/credito/oro/tassi →
|
||
de-risk crypto): **RIDONDANTE col trend** (corr→TP01 0.989; il gate lavora solo nel 2-3% dei giorni, TP01
|
||
già flat nei crash) → SCARTATO (`2026-06-29-macro-regime-gate.md`).
|
||
|
||
- **Sweep strategie a 5 thread (2026-06-29) — 0 nuovi sleeve, 1 LEAD che rompe 2 muri su 3.** Ricerca
|
||
parallela onesta su aree inesplorate (harness `altlib`+`xsec_v2_nonmom`, tutti i gate incl. il nuovo
|
||
`study_family_honest`): (1) low-risk cross-sectional, (2) momentum-structure vs XS01, (3) meta-allocazione
|
||
dinamica, (4) segnali ortogonali ETH/BTC, (5) 1-gamba a segnale. Esito: soffitto ~1.3 riconfermato; ogni
|
||
candidato ucciso dal gate giusto (deflated-Sharpe, is_hedge, selection-on-holdout, sostituzione-XS01,
|
||
multi-cut). Niente batte/diversifica XS01 (varianti = REDUNDANT); meta-allocazione < pesi fissi (i 4
|
||
sleeve già quasi-risk-parity); 1-gamba a segnale = TP01 travestito (trend) o hedge a DSR<0.95.
|
||
**LEAD forward-monitor:** **STATARB-RESID** (relative-MOMENTUM del residuo ETH−β·BTC, β OLS rolling, 2 gambe,
|
||
cella vincente **sgn=+1**: le dislocazioni ETH-vs-BTC CONTINUANO a 1d, la MR pura sgn=−1 perde) — primo
|
||
stream **insieme ortogonale (corr→book 0.027, β-mkt 0.013) ED eseguibile a $600** (haircut ~0, NON
|
||
STAT-MODE come XS01/opzioni): marginal ADDS, robust_oos, fee-survive 0.30%/gamba; resta sotto soglia solo
|
||
sull'**edge** (Sharpe 0.84, DSR 0.929 same-sign <0.95). **CABLATO in forward-monitor PAPER:**
|
||
`scripts/live/paper_statarb.py` (W=45/sgn=+1 congelati, doppio libro MODELED/REAL-$600), nel cron
|
||
giornaliero accanto a `paper_prevday`; test `tests/test_paper_statarb.py`. Se la finestra forward conferma
|
||
l'edge è *deployabile* (2 gambe BTC/ETH perp). Altri LEAD: IVOL (idio-vol XS, STAT-MODE), DVOLSPREAD
|
||
(storia DVOL corta). Diario `2026-06-29-strategy-search-5threads.md`. Script
|
||
`scripts/research/{xsec_v3_lowrisk,xsec_v3_momstruct,meta_allocation,orthogonal_signals,signal_inout_1leg}.py`.
|
||
|
||
- **Ondata 2026-07-01 (6 filoni multi-agente + scettico) — 0 edge nuovi dai filoni, 1 gate nuovo,
|
||
e 1 sleeve promosso DALL'ARCHIVIO (GTAA01, sotto nel bullet portafoglio).** Filoni su angoli non coperti dalle ondate precedenti: (1) **funding time-series**
|
||
BTC/ETH (posizionamento) = SCARTATO — FOLLOW è trend-beta ritardato, FADE shorta il toro, il gate è
|
||
TP01 travestito (DSR 0.215); **il filone funding è chiuso su 3 lati** (FC01 carry, price-clock, TS).
|
||
(2) **breadth/internals alt** (51 HL) = SCARTATO ma unico NON-ridondante col trend (corr→TP01 0.40);
|
||
muore su jackknife (uplift su 1 mese) + DSR 0.433 con ~8 mesi IS → **rivisitabile tra 1-2 anni di
|
||
storia HL nativa**. (3) **residual momentum XS** (β-hedged, 19 major) = REDUNDANT — cross-section la
|
||
residualizzazione è un no-op (lo z-score di XS01 rimuove già il mercato); l'edge resta solo nella
|
||
coppia ETH/BTC (STATARB-RESID). (4) **ri-ottimizzazione pesi + guardia-DD**: il candidato EW-STR
|
||
(TP30/XS25/VRP15/SKH30, HOLD 2.21→2.35) **refutato dallo scettico come selezione-sull'hold-out di 2°
|
||
ORDINE** — SKH01/XS01 furono ammessi/affinati *perché* forti su quell'hold-out; pre-2025 ΔSh −0.05,
|
||
finestre disgiunte −0.12/+0.06/+0.14, percentile 94-100° fra 500 tilt casuali ≈ firma best-of-15.
|
||
Guardia-DD 5%/0.5: inerte OOS (la diversificazione fa già il lavoro; solo circuit-breaker d'emergenza).
|
||
(5) **affinamento VRP01** = NON MIGLIORA (l'alpha è tutto nel gate binario IV-rank; gate TP01 =
|
||
trappola in-sample; **3° fallimento → filone "VRP dentro il modello" esaurito** fino a f di stress
|
||
reale). (6) **stagionalità cross-sectional HL** = morta allo step statistico (null permutato).
|
||
**GATE nuovo codificato: `weights_tilt_null`** in `src/portfolio/portfolio.py` (+ `combine_outer`
|
||
riusabile): ogni proposta di CAMBIO PESI si giudica vs il null dei tilt casuali cap-respecting —
|
||
gate_pass solo se delta_insample≥0 E percentile < firma best-of-k (necessario, non sufficiente);
|
||
test `tests/test_weights_tilt_null.py`. ⚠️ Lezione tecnica: `DatetimeIndex.view("int64")` su indici
|
||
tz-aware non-ns (pandas 2.x) → scala sbagliata → `merge_asof` broadcasta = **look-ahead che
|
||
`causality_ok` non vede**; usare epoca esplicita in ms (altlib verificato pulito). Diario di sintesi
|
||
`2026-07-01-strategy-wave-6threads.md` + 6 diari di filone; script `scripts/research/r0701_*.py`.
|
||
|
||
- **Ondata 2026-07-02 (TIMING + CRT, 8 filoni multi-agente + scettico) — 0 nuovi sleeve, 1 finding
|
||
strutturale (anchor timing-luck di TP01, vedi ⚠️ nel bullet TP01).** Goal: "strategie con timing
|
||
differenti". (1) **Event-clock bars** (volume/vol/range da 5m, TSMOM/Donchian/EWMA in tempo-informazione):
|
||
batte il wall-clock a pari segnale/frequenza solo in 4/45 coppie; cella best IS 1.45 → HOLD −0.46,
|
||
NEUTRAL (corr 0.74 = trend travestito) → SCARTATO: il clock non è dove vive l'edge. (2) **Calendario
|
||
scadenze Deribit** (expiry weekly/monthly/quarterly ven 08:00 UTC): 0/24 celle a Bonferroni; il drift
|
||
post-expiry monthly fallisce placebo-weekday e permutation e si INVERTE sul quarterly (dove l'OI massimo
|
||
dovrebbe amplificarlo); unico pattern robusto = gio→ven negativo, ma è day-of-week (SEA morta) a Sharpe
|
||
netto ~0 → SCARTATO. (3) **Anchor timing-luck TP01 + tranching**: finding confermato (dettagli nel
|
||
bullet TP01); tranching K=2/4 = sola riduzione della varianza della STIMA (ΔSharpe n.s., ΔDD ~0.5pt),
|
||
NO deploy a $600 (il min-order lo degenera in K=1; serve feed intraday fuori path certificato) —
|
||
rivalutare a ≥5-10k. **Audit d'ancora ESEGUITO su XS01 e SKH01 (stesso giorno): il finding si
|
||
replica su 3/3 sleeve ancorati** — vedi ⚠️ nei rispettivi bullet e la stima de-luckata del book
|
||
nel bullet portafoglio; diario `2026-07-02-anchor-audit-xs01-skh01.md`.
|
||
(4) **Clock lenti (2-7g) + bande isteresi**: fee drag di TP01 = ~0.4%/anno = tetto di ogni risparmio;
|
||
il lag costa più del risparmio (HOLD ensemble 0.34→0.11 da N=2 a 7); a $600 **il min-order $5 è GIÀ la
|
||
banda ottimale** (ordini −74% a costo ~0) → nessun cambio al book. (5) **Velocità trend
|
||
regime-condizionata** (pesi tra orizzonti 30/90/180g vs percentile vol RV/DVOL): pctl 0.71 vs null
|
||
pesi-statici-casuali = tilt-30d statico travestito (trappola EW-STR); pesi canonici 1/3 confermati →
|
||
SCARTATO. (6-8) **CRT "Candle Range Theory"** (sweep-and-reclaim 3 candele, mai coperto da MRV/MIC):
|
||
base 864 trial DSR 0.000 + anchor-flip + short "smart-money" negativo perfino in-sample; multi-TF
|
||
(4h→15m, 1h→5m, ~10k trade) expectancy negativa ovunque anche a fee zero, e **il ritest è informazione
|
||
negativa** (pattern con-ritest −40bps vs senza +52bps: aspettarlo seleziona i peggiori); contesto
|
||
(FVG/equal-highs/sessioni, 22 trial) non salva il fade, cella "Asia" = artefatto anchor-flip →
|
||
SCARTATO 3/3. Sottoprodotto: sugli stessi livelli prior-day **FOLLOW > FADE ogni anno 2019-26**
|
||
(conferma indipendente del lead prevday in forward-monitor). Lezione: il timing-luck d'ancora è
|
||
multiple-testing che il deflated-Sharpe NON conta (candidato gate futuro `anchor_luck_band`).
|
||
Diario `2026-07-02-timing-crt-wave.md`; script `scripts/research/r0702_*.py` (9 file).
|
||
|
||
- **Ondata 2026-07-02-bis ("video claims": Elliott 3 filoni + Albimarini 2 + capital scaling) — 0 nuovi
|
||
sleeve, 0 forward-monitor, 1 azione config pendente sul deposito.** Meccanizzazione onesta di claim da
|
||
video didattici: (1) **Elliott range-cycle** (onda1 compressa→onda3 ampia): rumore, 0/24 celle a
|
||
Bonferroni, nessuna cella weekly regge a tutte le 7 ancore → SCARTATO. (2) **Confluenza Fibonacci**:
|
||
vs null ingenui sembra buona (pctl 0.82-1.00), vs null **location-matched** (Fib±jitter: "0.618 vs
|
||
0.58?") crolla a 0.39-0.68 = l'apparente edge è la POSIZIONE dei livelli, non i numeri; confluenza
|
||
FAIL 4/4 → SCARTATO (il null location-matched è IL test per ogni claim su livelli "speciali").
|
||
(3) **Tecnica del canale Elliott**: Donchian travestito — non batte il Donchian a pari geometria
|
||
(corr 0.43-0.53), DSR 0.685, cella in-sample collassa in hold-out (1.40→−0.87), target 1.618 = caso
|
||
(5/6 celle), anchor-luck di nuovo (4h banda hold [0.35,1.54], 00:00 la migliore) → SCARTATO.
|
||
(4) **Albimarini double-diagonal** (short T + long T+1, deep OTM, via motore DVOL di VRP01): il
|
||
condor stessa-scadenza la batte a ogni f (la long T+1 = assicurazione di coda +12/33bps nel tail,
|
||
~1bps costo medio, non dominanza); senza gate IV-rank TUTTE le strutture perdono (3ª conferma:
|
||
l'alpha del VRP è il gate); su Deribit fee-negativa a QUALSIASI size (fee 8 gambe = 194-221% del
|
||
theta); celle deep-OTM 0-perdite/142 trade = 2° caso "Sharpe implausibile" dopo CC01 → gate
|
||
`implausible_sharpe` raccomandato con più forza. VRP01 resta superiore su tutta la banda skew →
|
||
nessun LEAD. (5) **Audit claims** (28 trade, 82% win, PF 5.16, "420%/anno"): consistente con ZERO
|
||
skill (P=20-45%; il 78.6% delle finestre 6-mesi 1996-2026 lo produce); replay con code reali =
|
||
rovina 1998/2002/2020 col sizing dichiarato; la diagonale lascia passare il 12-40% della perdita
|
||
naked. (6) **Capital scaling 600→2-5k** (`r0702_capital_scaling.py`): l'unico vincolo binding è
|
||
`max_notional_per_asset_usd=300` (a 5k il book live girerebbe al 49% del target) → **al deposito
|
||
alzare il cap a equity/2** ($1000/$1750/$2500 a 2k/3.5k/5k); min_order $5 da LASCIARE; tranching
|
||
K=2 non cablare (blocco feed intraday); opzioni ETH eseguibili da ~2.6k ma la regola no-short-vol-
|
||
da-modello non decade col capitale; XS01 ~20k confermata, CC01 fuori per struttura. Aspettativa
|
||
onesta col CAGR de-luckato (10-15%): 2k ≈ €0.6-0.8/g, 5k ≈ €1.4-2/g (€50/g resta ≈130k).
|
||
⚠️ Lezione pandas: `resample("7D", origin=...)` IGNORA origin (pandas 2.x, solo RuntimeWarning) →
|
||
bande d'ancora weekly finte; usare `"168h"`. Diario `2026-07-02-elliott-albimarini-capital.md`;
|
||
script `scripts/research/r0702_{ell_*,alb_*,capital_scaling}.py` (6 file).
|
||
|
||
- **Video-claim "CRT top-down multi-TF, 74% win rate" — SCARTATO (2026-07-07): il 74% è un KNOB, non
|
||
un edge.** `scripts/research/r0707_crt_topdown.py`. Metodo ICT/SMC top-down (H1 setup CRT → M15
|
||
struttura/FVG → M5 conferma → M1 entry) con uscita parziale-70/80%-a-1.5R + break-even + runner verso
|
||
prev-daily high/low. Il setup H1 CRT è **già triplo-refutato** (onda 2026-07-02: base DSR 0.000, MTF
|
||
expectancy neg. ovunque "il ritest è informazione negativa", contesto/FVG peggiora, fade<follow) →
|
||
qui testato l'UNICO angolo nuovo: la **gestione d'uscita** e il **claim 74%**. Su BTC/ETH certificati
|
||
(H1→5m/15m; M1 non nel feed): **WR reale 30–37%** a RR 1.5–2 (SOTTO il null gambler's-ruin 40% =
|
||
P(+1.5R prima di −1R)=1/(1+1.5) → il ritest tocca il target MENO di una moneta), **expectancy R
|
||
negativa a ogni schema/fee/finestra/asset** (−1.2…−3.3R netto). **Il 74% si fabbrica avvicinando il
|
||
target**: sweep rr1 0.5→2.0 mostra WR salire (51→32%) con expectancy R INVARIANTE (WR alto = target
|
||
vicino, non direzione). DSR 0.000 (48 trial); a **fee 0** expR −0.10/Sh −0.63 → **non è morte-per-fee,
|
||
l'edge lordo non c'è** (residuo = beta di trend dei time-exit); parziale+BE+runner = 3-4 ordini/trade,
|
||
alcuni sub-min-order a $600. **Regola candidata:** il win-rate di uno schema parziale+BE non è merito
|
||
(≈1/(1+rr1)); convertire ogni claim "WR X%" in **expectancy R netto fee** prima di crederci (helper
|
||
`winrate_is_a_knob()`). Diario `2026-07-07-crt-topdown-74winrate.md`. Book/pesi INVARIATI.
|
||
|
||
- **Ondata WEEKEND ven→lun (2026-07-17, 4 agenti) — SCARTATO 4/4; famiglia CALENDARIO dichiarata
|
||
SATURA; 1 fatto strutturale difensivo sul book.** Goal "strategie che lavorino solo ven→lun a
|
||
timing diversi". (1) **WK-DRIFT** (144 trial, griglia ore ven×lun × L/S × asset): il drift weekend
|
||
è **beta B&H a esposizione ridotta** — null weekday: Fri = 71° pctl, sotto Mon e Sun (nessuna
|
||
specialità); DSR 0.001; hold-out negativo **anche a fee zero**; boundary ARTIFACT-RISK. (2)
|
||
**WK-COND** (5 gate causali × 9 timing = 99 combo): 5/5 earns_slot=False, boundary ARTIFACT-RISK
|
||
5/5; il gate TSMOM è TP01-in-weekend (β 0.67, re-timing del trend); FOLLOW-del-venerdì si inverte
|
||
OOS (il lead prevday NON si trasferisce al weekend); l'unica variante HOLD+ (vol HIGH70) non è
|
||
selezionabile in-sample = trappola selection-on-holdout. (3) **WK-INTRA** (132 celle 1h/15m:
|
||
Donchian weekend, gap "CME" dom22, magnete-livelli-venerdì): ~50% celle LORDE positive = **moneta
|
||
simmetrica** (diagnostica nuova di famiglia-rumore); il claim CME-gap è morto **anche lordo**;
|
||
magnete del venerdì inesistente; FOLLOW>FADE riconfermato (3ª volta); a $600 l'esecuzione non è
|
||
il vincolo. (4) **WK-OVERLAY** (lato eseguibile): **il weekend porta il 38% del gross di TP01 nel
|
||
31% del tempo** (positivo ogni anno) → TP01-weekend-flat è **attivamente dannoso** (ΔSh −0.46,
|
||
P(danno)=1.000 bootstrap, banda 6/6 negativa, non-fee); half = de-levering pagato con fee
|
||
(k=0.755 lo domina); boost ×1.5 n.s. → **regola: non de-esporre il weekend del book; ogni futura
|
||
proposta "risk-off weekend" parte REFUTED** salvo null de-levering superato. Chiusura di famiglia:
|
||
SEA + expiry + event-clock + 375 trial weekend ⇒ su BTC/ETH nessun edge di calendario/finestra
|
||
oraria; riaprire solo con meccanismo non-calendario. Book/pesi INVARIATI. Diario
|
||
`2026-07-17-weekend-window.md`; script `scripts/research/r0717_wk_{drift,cond,intra,overlay}.py`.
|
||
|
||
- **Ondata 2026-07-25 (MAT01 + generalizzazione STATARB) — 0 sleeve nuovi, 1 DIFETTO DI DATO sul
|
||
libro live trovato e riparato.** Diario `2026-07-25-mat01-statarb-generalization.md`.
|
||
(1) **MAT01** (`r0725_mat01_multiasset_trend.py`, `r0725_mat01b_regime.py`): allargare il trend
|
||
difensivo da 6 a **18 ETF multi-asset-class** (i 12 su disco dal 22/06, mai usati per un trend)
|
||
a meccanismo GTAA CONGELATO = **SCARTATO**. MAT18 perde 3/4 finestre disgiunte; **a PARI VOL il
|
||
suo minor DD si inverte** (−20.6% vs −15.4%) → era solo de-levering (**3ª occorrenza del null
|
||
de-levering** dopo VRP-DD e TP01×DVOL: e' il primo test da fare su ogni claim "meno drawdown");
|
||
corr→crypto invariata (0.110 vs 0.116) → zero guadagno di diversificazione; book 2.22→2.19.
|
||
**Risultato positivo da conservare:** la curva d'ampiezza e' monotona (mediana OOS 0.44 a k=1 →
|
||
**0.80 a k=18**, DD −16.0%→−6.9%, satura a k≈10-12) — l'ampiezza E' un meccanismo reale, ma
|
||
**GTAA6 sta gia' al 95° pctl dei 6-subset casuali** (e non e' cherry-picked: contiene TLT, il
|
||
peggiore dei 18) → **niente piu' ampiezza da raccogliere su questo sleeve**.
|
||
(2) **STATARB-MULTI** (`r0725_statarb_multi.py`): meccanismo congelato (W=45, sgn=+1) su tutte le
|
||
**50 coppie alt/BTC** HL, out-of-pair-sample. REGGE: 82% Sharpe>0 (media 0.38), **0/50 degeneri**
|
||
(mono 53% → non e' la statica short-alt travestita), perm p<0.05 nel 18% (atteso 5%), paniere
|
||
Sharpe 0.82 / DD −6.0% / corr XS01 0.207. **E ETH/BTC e' al rango 22/50 (58° pctl): la coppia
|
||
scopritrice NON e' un outlier** → per il gate 27/09 l'ipotesi "fortuna di una coppia" e' refutata.
|
||
NON e' uno sleeve: ampiezza **effettiva ~4.5** (corr media 0.204, gamba BTC condivisa), paniere
|
||
**IC95% [−0.12,1.72], t 1.31** (non distinguibile da zero a 2.6 anni), uplift −0.11 vs il null
|
||
a priori "sempre short alt vs BTC", 51 gambe = STAT-MODE. ⚠ Errore di metodo corretto in-sessione:
|
||
il primo null statico usava `sign(mean(segnale))` sull'intero campione = **look-ahead**; rifatto
|
||
causale (media espandente) + a priori.
|
||
(3) **STATARB-EQ** (`r0725_statarb_eq.py`): stesso meccanismo su **12 coppie ETF a priori,
|
||
28.5 anni, ampiezza effettiva 9.9** = **SCARTATO**. Paniere Sharpe **−1.00** (IC95% [−1.36,−0.64],
|
||
t −5.33), negativo in **4/4 decadi**, 0% coppie a perm p<0.05. **Ma la lettura sta nel LORDO
|
||
(−0.17, non −1.00): due terzi sono drag di turnover (0.40/g)** → **non esiste strategia specchio**
|
||
(sgn=−1 sarebbe lorda +0.17, netta −0.16). Il segno lordo dice che **sulle azioni il residuo
|
||
REVERTE debolmente mentre sul crypto CONTINUA** → il meccanismo e' plausibilmente crypto-specifico.
|
||
Inferenza onesta: non prova che il crypto sia falso, ma il gate 27/09 **non puo' appoggiarsi**
|
||
all'argomento "fenomeno universale".
|
||
(4) **Addendum PRE-REGISTRATO al gate STATARB** (registrato a forward-day 26/90, 64g prima della
|
||
decisione): `r0724_statarb_deploy_gate.py` riporta ora anche lo Sharpe della **statica sempre-short
|
||
a pari vol-target sulla stessa finestra**. **Soglie del 24/07 NON toccate** (diagnostica non
|
||
binding; renderla binding e' decisione dell'operatore). Lettura odierna (26 barre): STATARB +5.70
|
||
vs benchmark **−4.98**, e la posizione corrente e' LONG lo spread = opposta alla statica → la
|
||
finestra forward non e' spiegata dal beta di regime.
|
||
|
||
- **Ondata 2026-07-26-bis (TP01 su barra parziale + i 2 gate mai costruiti) — 0 sleeve nuovi,
|
||
1 audit sul libro live, 2 gate codificati, 1 falso positivo MIO su uno sleeve in produzione.**
|
||
Script `r0726_tp01_partial_day.py` + `r0726_gates_retro.py`, test
|
||
`tests/test_gates_implausible_anchor.py` (13), diario `2026-07-26-wave-tp01-partial-gates.md`.
|
||
**Book/pesi/cron/config INVARIATI.**
|
||
(1) **T1 — anche TP01 legge una barra giornaliera PARZIALE nel live, ma non conta.** Stesso fatto
|
||
strutturale di SKH01: `resample_tf` non scarta il giorno in corso e `current_target` prende `[-1]`;
|
||
il feed si ricostruisce alle 00:30 UTC → tutto il giorno il book vede oggi come **1 barra oraria
|
||
su 24** (verificato `barre1h=1/24`). Docstring "ultima barra CHIUSA" **falso**, corretto (3ª volta
|
||
in 2 giorni che un docstring di produzione dichiara una causalita' che il codice non ha).
|
||
Tre path a un grado di liberta' per volta, 24 ancore, **differenze appaiate**: *barra parziale*
|
||
ΔFULL **−0.031** (pos. 7/24) / ΔHOLD **+0.118** (pos. 19/24); *ritardo d'esecuzione 1h* **−0.004**
|
||
(11/24 = moneta); leva gonfiata **+0.4%**. → **trascurabile, nessun cambio al live.**
|
||
⚠️ All'ancora canonica sembra peggio del vero: a offset 0 la parziale costa **−0.230** di hold-out
|
||
= **il minimo dell'intera banda** (mediana +0.118) → guardando solo l'ancora canonica avrei
|
||
concluso "il live degrada TP01": speculare alla lezione del 26/07 (li' l'ancora canonica
|
||
*nascondeva* un vantaggio, qui *inventa* un danno).
|
||
**REGOLA NUOVA (il risultato trasferibile):** la parzialita' dell'ultima barra conta **in
|
||
proporzione a quanto il segnale pesa la barra piu' recente**. SKH01 = Donchian breakout su 230m,
|
||
la barra corrente E' il segnale → **+0.38**; TP01 = TSMOM 30/90/180g, l'ora mancante e' 1/24 di
|
||
UNA osservazione su 30-180 → **±0.03**. **La conclusione non si trasferisce fra sleeve.**
|
||
(2) **T2 — `implausible_sharpe` e `anchor_luck_band` CODIFICATI in `altlib.py`** (debito
|
||
raccomandato 3 volte — 26/06 CC01, 02/07 Albimarini "con piu' forza" — e mai scritto).
|
||
`implausible_sharpe`: Sharpe>3, perdite/attive<2%, Calmar>20 o maxDD~0, **regola del tre**
|
||
(0 perdite su N → tasso vero fino a 3/N: e' perche' "0/142" non si legge "senza rischio").
|
||
`anchor_luck_band`: la griglia d'ancore NON e' una griglia di parametri → **il deflated-Sharpe non
|
||
la conta**; riporta stima onesta = **mediana della banda** e fortuna = canonica − mediana.
|
||
`anchor_luck_delta`: **mediana delle differenze appaiate** (codifica l'errore del 26/07).
|
||
⚠️ **Il gate ha segnalato VRP01 e il difetto era MIO:** perdite contate su TUTTE le barre, ma
|
||
VRP01 e' settimanale su griglia giornaliera = **94.2% di zeri** → "0.96%, coda assente" su uno
|
||
sleeve **in produzione**; sulle barre **ATTIVE** e' **16.5%**, la forma giusta di un credit spread
|
||
a rischio definito. **E la lezione era gia' cablata il giorno prima** nel monitor DVOLSPREAD
|
||
("barre attive, non giorni di calendario") — imparata in un contesto, non applicata nell'altro.
|
||
Zeri per sleeve: VRP01 94.2 / SKH01 87.6 / XS01 39.6 / GTAA01 31.9 / TP01 30.7%.
|
||
**Applicazione retroattiva 7/7 — tutti ok:** TP01 1.29, XS01 1.36, VRP01 1.08, SKH01 1.45,
|
||
GTAA01 1.01, **XSR01 1.79 (DD 2.5% ma 47.8% di barre attive in perdita → il DD basso e' vol bassa
|
||
+ dollar-neutrality, NON una coda mancante: per il gate del 23/10 il rischio #1 resta lo slippage)**,
|
||
DVOLSPREAD 0.68. Controlli positivi obbligatori superati (firme CC01 e deep-OTM segnalate, rumore
|
||
Sh 0.62 no) — *un gate che non segnala nulla puo' essere semplicemente rotto*.
|
||
✅ **Replica indipendente del finding d'ancora del 02/07:** il gate applicato alla cieca a TP01
|
||
ritrova canonica **+0.237 = 92° pctl** delle 24, **mediana onesta +0.056**, banda [−0.087,+0.247],
|
||
fortuna +0.182 — contro mediana 0.04 / banda [−0.13,+0.30] misurate il 02/07 con implementazione
|
||
SEPARATA. **L'hold-out onesto di TP01 e' ~+0.05, non 0.31** (il valore del sleeve resta il taglio
|
||
del DD ~6× vs buy&hold, che non e' ancorato).
|
||
(3) ~~**NON fatto e perche':** il book sul path live e' bloccato da una **incompatibilita' di
|
||
lenti** — il simulatore SKH01 compone per-trade a nozionale unitario, lo sleeve e' vol-targeted.
|
||
Follow-up dichiarato: serve la versione vol-targeted del path live di SKH01.~~
|
||
✅ **CHIUSO 2026-07-26 — E IL BLOCCO NON ESISTEVA: la premessa era FALSA.** Lo sleeve SKH01
|
||
**non e' vol-targeted** (`backtest_signals(..., leverage=1.0, position_size=1.0)`, nessun
|
||
`target_vol` nel sorgente, e `sim_equity(canonical)` riproduce `backtest_signals` a
|
||
**max|diff| = 0.0**): le due lenti erano gia' la stessa cosa. Il 20.7% di vol realizzata dello
|
||
sleeve — probabilmente cio' che aveva suggerito "vol-target 20%" — e' un **prodotto** della
|
||
strategia (uscite % asimmetriche + poco tempo a mercato), non un parametro; **SKH01 e' l'unica
|
||
delle 5 a NON essere vol-targeted**, il contrario di quanto si credeva. Vedi bullet dedicato
|
||
in fondo e diario `2026-07-26-skh-live-book-deluck.md`. **REGOLA: un blocco dichiarato e'
|
||
un'ipotesi, non un fatto — si ri-verifica prima di costruirci sopra o di rimandare** (qui: tre
|
||
sessioni di follow-up rimandato contro due minuti di verifica).
|
||
|
||
- ⚠️ **LEAVE-ONE-OUT DEL BOOK DE-LUCKATO (2026-07-26, 3° filone del giorno) — la classifica dei
|
||
contributi si RIBALTA su 2 metriche su 3, e la stima de-luckata del book era ottimista.**
|
||
Domanda: *"quale sleeve terrei?"*. Script `scripts/research/r0726_loo_deluck.py`, test
|
||
`tests/test_loo_deluck.py` (9), diario `2026-07-26-loo-deluck.md`. **Book/pesi/cron/config
|
||
INVARIATI** (non è un gate sui pesi: quello resta `weights_tilt_null`).
|
||
(1) **Il metodo:** un leave-one-out **è un Δ**, quindi eredita la fortuna d'ancora come ogni Δ
|
||
(lezione 26/07). Con 4 sleeve su 5 ancorati il problema è congiunto → 2000 estrazioni uniformi
|
||
indipendenti sullo spazio 24×10×7×23×5, book completo + 5 LOO **alla stessa configurazione**,
|
||
statistica = **mediana delle differenze appaiate**. Sanity bit-exact 5/5 (`max|dif| = 0.0`) sulle
|
||
repliche ancorate — quattro riusate dagli audit 02/07-03/07, solo la fase di GTAA01 è nuova.
|
||
(2) **Contributi de-luckati** (mediana, e **frazione di estrazioni positive** — che conta più
|
||
della mediana): **TP01 +0.390 FULL (100%)** = quasi 3× il secondo, e il canonico lo
|
||
**SOTTOSTIMAVA** (+0.280 al 5.8° pctl); SKH01 +0.142 (91%), XS01 +0.125 (99.9%), VRP01 +0.122
|
||
(100%), GTAA01 +0.115 (100%).
|
||
(3) **Due giudizi ribaltati rispetto alla lente canonica.** **SKH01 non è il motore del book**:
|
||
l'ancora regala **2/3 del FULL** (+0.43→+0.14), **70% dell'hold-out** (+0.65→+0.19), **80% della
|
||
protezione DD** (+1.64pp→+0.32pp) → de-luckato è **il meno affidabile dei cinque**. **GTAA01 è
|
||
l'unico positivo nel 100% delle estrazioni su TUTTE E TRE le metriche** e il miglior protettore
|
||
di DD (+2.0pp, doppio del secondo), senza fortuna da restituire (canonico *sotto* la mediana su
|
||
FULL e DD). ⚠️ Ma **attribuzione ≠ eseguibilità**: sotto `GTAA_MIN_CAPITAL` $3k resta non
|
||
deployabile, e la nota del 25/07 (€0.50/g sopra il risk-free con maxDD 10% a $10k) è intatta.
|
||
(4) **TP01: hold-out negativo −0.200, e NON è artefatto d'ancora** (negativo nel **99.1%** delle
|
||
configurazioni) — mentre sul FULL è il maggior contributore. È la firma dell'assicurazione,
|
||
misurata: paga premio negli anni senza incendio, riprende tutto sul campione che contiene il 2022.
|
||
**Regola: uno sleeve difensivo si giudica sul sinistro, non sul premio** — l'hold-out negativo
|
||
non è un argomento per ridurlo. **XS01: protezione DD ESATTAMENTE ZERO** (mediana 0.000, positiva
|
||
nel 43% = moneta) → è un diversificatore di **rendimento, non di rischio**; conta perché sul
|
||
canale funded il vincolo binding è il DD (25/07 §4). **VRP01: 2ª conferma di zero fortuna**
|
||
(canonico al 1.8° pctl sul FULL = numeri di ammissione *conservativi*).
|
||
(5) **Contrappeso dovuto a SKH01:** il de-luck lo penalizza sul path **backtest**, ma il path
|
||
**live** è misurato migliore su entrambi i lati (ingressi +0.38, uscite +0.081) → **vale meno dei
|
||
suoi numeri di ammissione e più di questa tabella**; quantificarlo resta il follow-up bloccato
|
||
(serve la versione vol-targeted del path live).
|
||
⚠️ **Errore di stampa catturato:** il primo output dava `pctl 100%` per l'hold-out del book —
|
||
arrotondamento di 99.55% con `%.0f`. **Un percentile stampato a 0 decimali mente esattamente agli
|
||
estremi, che sono l'unico posto dove lo si legge.** Verificato a mano (9 estrazioni su 2000
|
||
battono la canonica), formato portato a 1 decimale.
|
||
|
||
- ✅ **FOLLOW-UP SKH01 "vol-targeted" CHIUSO (2026-07-26, 4° filone) — il blocco non esisteva, e
|
||
il fattore de-luck ×0.6 era troppo severo del 31-34%.** Script `r0726_skh_sigcache.py` (cache),
|
||
`r0726_skh_live_book.py` (misura), `r0726_deluck_factor.py` (decomposizione),
|
||
`r0726_capwall_refresh.py` (muri); test `tests/test_skh_live_book.py` (8); diario
|
||
`2026-07-26-skh-live-book-deluck.md`. **Book/pesi/cron/config INVARIATI.**
|
||
(1) **La premessa era falsa** — vedi il bullet dell'ondata 26/07-bis: SKH01 **non e'
|
||
vol-targeted**, le due lenti erano gia' identiche (`sim_equity(canonical)` == `backtest_signals`
|
||
a max|diff| = 0.0). Test permanente `test_lente_sleeve_uguale_a_quella_del_simulatore`: se
|
||
qualcuno aggiunge un vol-target allo sleeve, la premessa torna vera e **il test deve rompersi**
|
||
invece di far passare numeri non piu' validi.
|
||
(2) **Ingressi live vs backtest, de-luckato a 8 offset** (sottocampione uniforme a priori: la
|
||
griglia piena a 23 costa ~9 min per asset×offset, fuori portata su 2 core col cron live).
|
||
Sanity **120/120** bin con ingresso ricostruiti. **Il numero del 26/07 era ~4× troppo grande:**
|
||
like-with-like (mediana PER-ASSET) **+0.38 su 3 offset → +0.097 su 8**, e "6/6 non negativi" →
|
||
**13/16**. A livello di sleeve 50/50 la mediana appaiata e' **+0.112, positiva 8/8**.
|
||
⚠️ Le due grandezze (per-asset e sleeve 50/50) **non sono la stessa cosa** — nel book entra la
|
||
seconda, dove la diversificazione BTC/ETH cambia il denominatore.
|
||
(3) **A livello di BOOK: Sharpe ≈ monetina, drift certo.** dSh FULL +0.048 (>0 nel 79.3%),
|
||
dSh HOLD +0.051 (51.2%), **d drift +0.73pp (>0 nel 100.0%)**. Meccanismo: l'ingresso intra-bin
|
||
prende un prezzo migliore ma i falsi ingressi aggiungono churn (530-605 trade live vs 411-484)
|
||
→ vol e ritorno salgono insieme. **REGOLA: chiedersi QUALE grandezza entra nella decisione
|
||
prima di misurare** — qui il ×0.6 e' sul drift, quindi lo Sharpe non era la metrica.
|
||
(4) **Il ×0.6 decomposto e misurato.** (a) fortuna d'ancora **sul drift**: **×0.874** (5-sleeve)
|
||
/ **×0.890** (book live) — e la **vol e' invariata** fra le ancore (7.80→7.76%), la fortuna sta
|
||
tutta nel drift; (b) path live: **non-negativo ovunque** (uscite +0.081 Sh, ingressi +0.73pp,
|
||
TP01 trascurabile). Il ×0.6 implicava un residuo **×0.687** attribuito al live oltre l'ancora,
|
||
che nessuna misura sostiene → **FATTORE ONESTO ×0.87-0.91 (5-sleeve), ≥×0.89 (book live)**.
|
||
Il sospetto registrato il 25/07 ("conta due volte la degradazione SKH01") e' **confermato
|
||
quantitativamente**. **REGOLA: un fattore correttivo scelto a occhio va DECOMPOSTO prima di
|
||
accettarlo o rifiutarlo** — il ×0.6 non era sbagliato, era due fattori moltiplicati insieme di
|
||
cui uno contato due volte.
|
||
(5) ❌ **Ipotesi MIA nata e refutata nella stessa sessione:** che la grid timing-luck di SKH01
|
||
(audit 02/07) fosse un artefatto della lente a chiusura-di-bin, perche' il live valuta ogni ora
|
||
e non e' ancorato al confine del bin. Dispersione fra gli 8 offset: **LIVE/CANONICO = 1.59×**,
|
||
cioe' il live e' **piu'** disperso, non meno → **l'audit del 02/07 resta valido com'e'**.
|
||
L'ipotesi nasceva da **2** offset, si e' incrinata a 4 (1.24×), chiusa a 8. **REGOLA: due punti
|
||
non fanno una tendenza nemmeno quando la meccanica sembra spiegarla.**
|
||
(6) ⚠️ **Trovato per strada:** `simulate()` in `r0726_skh_partial_entry.py` **non e' mai chiamata
|
||
da `main()`** — i numeri headline del diario del 26/07 vennero da una corsa ad hoc mai
|
||
committata. Ora il driver e' committato (`r0726_skh_live_book.py`). *Un numero pubblicato in un
|
||
diario deve avere uno script committato che lo riproduce.*
|
||
|
||
- 🌊 **QUARTA ONDATA 2026-08-23 (5 filoni, `research/wave-0822`) — 0 candidati, 1 lead
|
||
RIDEFINITO, 1 premessa MIA falsificata, e la scorta di DATI dichiarata esaurita.** Registro
|
||
`docs/research/RESULTS-0822.md` §41-45. **Libro, pesi, cron, config INVARIATI.**
|
||
🚨 **(1) §41 TP01-SIZE — in questa famiglia la selezione in-sample e' ANTI-correlata col
|
||
futuro.** *Esiste una size che risponde alla CONVINZIONE, a pari vol realizzata?* 60 celle
|
||
dichiarate prima, 24 ancore. **`Spearman(ShIS, ShHOLD) = −0,527` (p<0,001)**: scegliere in-sample
|
||
e' **peggio di una moneta**, ed e' meccanismo, non rumore — `Spearman(rho, ShHOLD) = +1,000` a
|
||
tutti e sei i q (in hold-out l'ottimo e' al bordo) mentre in-sample la curva e' **a gobba** con
|
||
ottimo interno. **La convinzione e' informativa in-sample e ANTI-informativa in hold-out** (BTC
|
||
hold-out: convinzione debole Sh **+2,20** contro piena **−0,06**) → l'unica cella con guadagno
|
||
hold-out robusto e' esattamente quella selezionabile **solo guardando l'hold-out**. **Non esiste
|
||
una cella proponibile.** Il meglio della griglia vale **+0,30pp** di CAGR iso-vol e il maxDD di
|
||
libro peggiora a **24 ancore su 24** — cioe' proprio cio' per cui TP01 esiste.
|
||
🚨 **CORREZIONE A UNA MIA PREMESSA, verificata al sorgente: il bucket di convinzione 2/3 NON
|
||
ESISTE.** `tsmom_blend` media **tre `np.sign(...)`** → direzione in **{−1,−1/3,+1/3,+1}**, dopo il
|
||
clip long-flat in **{0, 1/3, 1}** (BTC 44,2/24,7/31,1%). Trovato da **due agenti indipendenti**.
|
||
**Conseguenza:** potenza `c^p`, floor affine e soglia sono **la stessa cella riparametrizzata** —
|
||
la famiglia della convinzione ha **UN** grado di liberta', non tre.
|
||
📌 **Null del RE-LEVERING, forma piu' pura mai misurata (6ª occorrenza, prima col segno
|
||
rovesciato):** togliere il vol-targeting fa **CAGR 16,32% → 46,75% (+186%)** e a iso-vol
|
||
**−2,40pp**. **Era tutta leva.**
|
||
⚠️ **Fatto sull'harness:** `altlib.tp01_baseline_daily()` **NON e' bit-exact col sleeve** — 1 ulp
|
||
su **68,5%** dei giorni, perche' `_to_daily` fa `(1+r).resample("1D").prod()-1`, no-op
|
||
**algebrico** ma non in virgola mobile. *"Bit-exact vs altlib" non e' un controllo ottenibile.*
|
||
❌ **(2) §42 TP01-LS — la short del trend a 1d SCARTATA, e piu' nettamente dell'attesa.**
|
||
Meccanismo congelato, un solo grado di liberta' (floor da 0 a −1); ✅ replica bit-exact a 4 vie
|
||
(**floor=−1 == `CANONICAL(long_only=False)`**, `max|diff| = 0.0`). Esito: **−1,91%/anno di drift
|
||
in 0/24 ancore**, **gate iso-vol FAIL 3/3** (non e' leva travestita: alza la vol **e** abbassa il
|
||
ritorno), **maxDD +8,80pp in 24/24**, NEUTRAL con alpha −2,60%/anno, e **a fee ZERO** 1,338 contro
|
||
0,904 → *non e' morte-per-fee, l'edge lordo non c'e'*. **L'attesa a priori ("sara' il 2022") e'
|
||
confermata e superata: 2/8 anni positivi, e SENZA il 2022 il divario RADDOPPIA** (dShFULL −0,406,
|
||
iso-vol −7,44%) — *il 2022 non e' l'anno che regge la tesi, e' l'unico che la tiene a galla a
|
||
meta'*. **Non selezionabile**: `select_cell_insample` sceglie il canonico.
|
||
⚠️ L'unica cosa a favore (**dShHOLD +0,292 in 23/24**) **all'ancora canonica vale −0,008** = caso
|
||
**speculare** della lezione del 26/07 (li' l'ancora canonica inventava un danno, qui ne nasconde
|
||
un vantaggio). 📌 **Trovato per strada: `src/live/book.py` contiene `max(tp_frac, 0.0)` — il
|
||
long-flat e' cablato anche nell'ESECUTORE**, non solo in `CANONICAL`.
|
||
🚨 **(3) §43 DATA-UNUSED — LA SCORTA DI DATI DEL PROGETTO E' ESAURITA.** Inventario su **647
|
||
file `.py`** (`Old/` escluso): **ogni dataset con storia vera e' gia' stato analizzato almeno una
|
||
volta**; cio' che resta non letto e' **telemetria a finestra corta (30-113 giorni)**, con una sola
|
||
eccezione — `external/coinmetrics/` (**26 colonne su 31 mai lette**, storia dal 2018).
|
||
Misurato prima di usarlo che il dato **fosse** nuovo: il flusso **netto** e' `corr +0,9993` con la
|
||
derivata dello stock gia' ucciso il 24/07, il **lordo** e' ortogonale (`+0,035`) perche' **il 94%
|
||
del flusso si cancella**. E perde: **massimo atteso dal PURO RUMORE su 36 trial = Sharpe 1,009, il
|
||
candidato fa 0,951 — sotto**; DSR 0,437; multi-cut negativo 7/7 anni.
|
||
📌 **METODO RIUSABILE: mettere nella griglia una variabile che si SA gia' morta** trasforma
|
||
*"il candidato perde"* in *"il dato non contiene nient'altro di selezionabile"* — qui la selezione
|
||
in-sample e' **tornata sul controllo negativo**. E' l'unica forma in cui un inventario puo'
|
||
concludere qualcosa di positivo su un'assenza.
|
||
⚠️ **Conferma diretta del §10** catturata dall'agente su se stesso: il pool *"N=12"* del
|
||
deflated-Sharpe erano **le 12 celle MIGLIORI** e faceva **PASSARE** il candidato a **0,975**
|
||
invece di 0,678.
|
||
❌ **(4) §44 DEPOSIT-TIMING — il timing dei bonifici non paga, 0/12 celle in OGNI lente**
|
||
(€500/m, €250/m, IID, drift dimezzato). ✅ Replica 4/4 prima di ogni delta, fra cui P0 vs
|
||
`PN.accumula` a **`max|dif| = 0.0`** su capitale **e** giorno d'arrivo.
|
||
📌 **Il segnale FA quello che promette e perde lo stesso:** dip 20% compra al **0,494** del
|
||
livello medio del piatto (**51% piu' in basso**) e arriva al capitale-rendita nel **6,3%** dei casi
|
||
contro l'**85,4%** del piatto — *comprare meglio e comprare tardi sono la stessa mossa*. E sotto
|
||
soglia bassa **si ribalta**: dip 5% compra a **1,009**, cioe' **piu' in alto** (su una serie che
|
||
sale, una condizione poco profonda non compra il calo, **ritarda dentro la salita**).
|
||
📌 **L'asimmetria e' la misura: un rialzo del 20% dal minimo arriva in 16 giorni, un ribasso
|
||
del 20% dal massimo in 3.682.** *Il costo non e' scommettere sul lato sbagliato, e' mettere una
|
||
**condizione rara** davanti a un bonifico — in qualunque direzione.*
|
||
Rischio di venue **separato** dal timing: tenere i soldi fuori vale +2,4pp a p=1% contro −15,7pp
|
||
di penalita' di timing, e **`P(libro azzerato)` e' IDENTICA per tutte le politiche** (21,6%) — *il
|
||
conto salta comunque, cambia quanto c'e' sopra*; la protezione si compra con un **secondo conto**.
|
||
⚠️ Due errori dell'agente catturati da un controllo: un diagnostico che diceva *"il buy-the-dip
|
||
contiene previsione"* (+11,5%) e che **sotto IID vale +14,9%**, cioe' **piu' grande** → meccanico;
|
||
e lo specchio anti-dip, che **si legge sulla colonna dell'ATTESA, non su quella del segno** (P4 e'
|
||
piatto perche' la sua condizione e' quasi sempre gia' vera).
|
||
**Ordine di grandezza: la migliore politica di timing vale −0,1pp, dentro il rumore MC di 2,0pp;
|
||
€250 → €500 al mese vale +71pp (14% → 85%).**
|
||
⚠️ **(5) §45 SPOT-NETTING — il lead dello spot REGGE, ma non per la ragione per cui il filone e'
|
||
stato aperto.** Il margine **non e' il vincolo**: BTC/ETH sono `in_cross_collateral_pool` (11
|
||
valute su 51), lo spot ha `max_leverage: 10` (⇒ vive nel conto marginato) e nel caso peggiore la
|
||
**copertura e' 50,0x, invariante al capitale** — anche valutando lo spot **zero** come collaterale.
|
||
**L'haircut non e' leggibile e non e' binding**: *unico caso in cui "non lo so" e "non conta"
|
||
coincidono, e va detto in quest'ordine.*
|
||
🚨 **A bloccarlo e' IL CODICE, non Deribit:** `src/live/shadow.py::_equity` legge **solo**
|
||
`account_summary("USDC")` → con $477 in spot il libro **leggerebbe $159 invece di $636 (25%)** e il
|
||
riconciliatore **ricomprerebbe** la gamba. *Non e' un cambio di strumento, e' un cambio del
|
||
percorso di SIZING del live.*
|
||
🚨 **La separazione delle gambe non vale nulla, su tutti e tre gli assi:** (i) **T1 sbloccato e'
|
||
un DECLASSAMENTO** — `onbook_tp − hourly` **riproduce** il pubblicato (+0,051/+0,057) ma contro il
|
||
path che il live **gia' percorre** fa **−0,048 FULL (6/23)** *(conferma indipendente della
|
||
decisione del 26/07, per un'altra strada)*; (ii) il **netting perso RISPARMIA** commissioni
|
||
(**$4,34 → $2,97/anno, −0,216%**) — la stima "1-2%" di §39 era **alta di un ordine di grandezza** —
|
||
e le ore a **segni opposti** sono lo **0,61%** della storia; (iii) meno ordini **non e' meglio**:
|
||
il tracking peggiora del **+12%** (5ª occorrenza della lezione *"banda in valuta assoluta"*).
|
||
**Il valore e' il FUNDING e basta: lordo +1,58%/anno → netto [+1,55%, +1,66%]**, [+1,33%, +1,44%]
|
||
se lo spot passasse a 3,50 bps, **+0,50% nello scenario fiscale sfavorevole**. Il costo vero
|
||
d'esecuzione e' lo **spread** (perp a **un tick**, spot 1,5-3,1 bps) → **[−0,034%, +0,077%]/anno**,
|
||
ampiezza 7% del lead: **l'esecuzione non decide questo lead**.
|
||
❌ **Ipotesi dell'agente nata e refutata nel filone:** l'`apr 3,40` di USDC in `get_currencies`
|
||
costerebbe fino a **2,55%/anno** — ma su **6 run col conto flat (il piu' lungo 257 giri orari)**
|
||
l'equity e' **invariata al centesimo** ⇒ **< 0,029%/anno**. *L'obiezione e' morta e il lead non
|
||
deve pagarla.*
|
||
🚨 **Due costi NUOVI mai contati, che la separazione introduce:** (a) se i derivati sono
|
||
`c-quater` i **comparti fiscali si SEPARANO** → le minusvalenze del perp (SKH01) smetterebbero di
|
||
compensare le plusvalenze spot (TP01); (b) il disaster-SL oggi protegge la posizione **netta**:
|
||
separando resterebbe **solo sul perp**, e in un blackout **TP01 resterebbe long al 75% del conto
|
||
senza stop**. (Di contro, lo spot **non si liquida**: esce dal perimetro il 75% del libro.)
|
||
⚠️ E `fee_watch` **non vedrebbe** una gamba spot (deriva `INSTRUMENTS` da `BOOK_INSTRUMENT`, il
|
||
difetto corretto il 21/08); `convenzione('BTC_USDC')` ritorna **`'ignota'`** → servirebbe una
|
||
**terza famiglia 'spot'**. *La ragione per sorvegliarlo non e' che la fee lo ucciderebbe (perde il
|
||
14% del guadagno e sopravvive), e' che oggi nessuno se ne accorgerebbe.*
|
||
📌 **IL PROSSIMO PASSO NON E' UN BACKTEST: e' la domanda al commercialista** (gia' aperta dal
|
||
07/08) **e un acquisto di prova da $7,73** — le tre cose non determinabili senza conto reale
|
||
(haircut, se `equity` USDC includa i saldi BTC/ETH, se `get_positions` ritorni lo spot) si
|
||
risolvono cosi'. **E' un ordine ⇒ decisione dell'operatore.**
|
||
📌 **(6) LA RIGA DI SINTESI.** Quattro filoni su cinque SCARTATI, il quinto ridimensionato a
|
||
*"vale il funding e basta"*. Ma la misura piu' grande dell'ondata resta quella di §44: **la
|
||
migliore politica di timing vale −0,1pp mentre passare da €250 a €500 al mese vale +71pp**.
|
||
**Con questa sono 45 filoni in due giorni e 0 candidati promossi: la ricerca ha smesso di essere
|
||
il vincolo binding il 26/07, e sette ondate lo hanno CONFERMATO invece che ribaltarlo.**
|
||
|
||
- ⚖️ **RIVALUTAZIONE DELLA STRATEGIA (2026-07-26, fine giornata) — 0 cambi, e il peso 75/25
|
||
confermato per la TERZA volta.** Script `r0726_reeval_live_weight.py`, test
|
||
`tests/test_reeval_live_weight.py` (6), diario `2026-07-26-reeval-strategia.md`.
|
||
**Book, pesi, cron, config INVARIATI.**
|
||
(1) **Solo UNA delle sei misure del giorno apriva una decisione**, e per una ragione precisa: il
|
||
peso 75/25 fu confermato il 24/07 con la lente **hourly**, che il 26/07 e' risultata pessimistica
|
||
su ENTRAMBI i lati di SKH01 (uscite +0.081, ingressi +0.048 di Sharpe di book) → *se SKH01 vale
|
||
piu' di come e' stato pesato, 0.25 e' ancora giusto?* Contro tirava il LOO de-luckato dello stesso
|
||
giorno (SKH01 = il meno affidabile dei cinque). **Due correzioni in versi opposti: si misura, non
|
||
si deduce.**
|
||
(2) **Misura** (path live `intra_entry=True`, 8 offset, mediana delle differenze appaiate):
|
||
argmax a **w=0.35** e 0.30-0.40 batte 0.25 nell'**88%** degli offset — il segnale c'e' ed e' nel
|
||
verso previsto. Ma **plateau entro 0.05 = [0.25...0.50]** (il peso live e' dentro) e
|
||
**`weights_tilt_null` FALLISCE** (delta_insample −0.0026, gate_pass False).
|
||
(3) ⚠️ **Il motivo vero sta in cio' che la mediana nasconde: il guadagno e' tutto nella coda
|
||
ALTA.** p10 per peso: 1.463 (0.25) / 1.465 (0.30) / 1.455 (0.35) / 1.435 (0.40) / 1.374 (0.50)
|
||
mentre il p90 sale monotono 1.915→2.064. **Alzare SKH01 non compra Sharpe, compra dipendenza da
|
||
quale ancora ti e' capitata** (banda da 0.45 a 0.69). Coerente con altre due misure indipendenti:
|
||
SKH01 ha la frazione d'ancora piu' grande da restituire (LOO) ed e' **4x** piu' fee-sensibile
|
||
(curva fee). **Tre misure indipendenti: SKH01 e' la gamba fragile, e 0.25 sta all'estremo prudente
|
||
della regione robusta.**
|
||
(4) 📌 **La rivalutazione che conta non e' sulla strategia.** Ordini di grandezza a confronto:
|
||
ottimizzare il peso = **+0.030 Sharpe** (gate fallito); versare **€250/mese invece di €0** = da
|
||
**mai** a **16.2 anni** (P(entro 20a) 92%); perdere il conto Deribit a p=1% = **−18%** di
|
||
probabilita' di arrivare, ripartendo da zero. **Il book e' dentro il suo plateau su ogni asse
|
||
misurato: la ricerca ha smesso di essere il vincolo binding.** I vincoli binding oggi sono
|
||
**capitale che entra** e **conto che non sparisce**. (Non significa che la ricerca sia finita —
|
||
significa che il margine residuo vale centesimi di Sharpe contro leve che valgono il risultato.)
|
||
**REGOLE:** (a) una rivalutazione parte dall'elenco di cosa **cambia una decisione**, non dal
|
||
riassunto di cosa si e' scoperto; (b) quando due correzioni puntano in versi opposti **si misura**
|
||
(a occhio si poteva argomentare qualunque cosa); (c) **un argmax dentro un plateau non e' una
|
||
decisione**, e la mediana da sola puo' nascondere il fatto decisivo (qui: p90 su, p10 giu');
|
||
(d) quando le leve hanno ordini di grandezza diversi **dirlo**, o si lavora molto senza cambiare
|
||
niente; (e) rivalutare **non** vuol dire anticipare i gate pre-registrati — anticiparli e'
|
||
selezione sull'hold-out.
|
||
|
||
- ❌ **SOL COME TERZA GAMBA DIREZIONALE — SCARTATO (2026-08-22).** `scripts/research/r0822_sol_leg.py`,
|
||
test `tests/test_sol_leg.py` (5), diario `2026-08-22-sol-terza-gamba.md`. **Book/pesi/universo
|
||
direzionale/cron INVARIATI.** Nato da *"hai gia' analizzato XRP/SOL/UNI?"*: si', ma sempre dentro
|
||
panieri cross-sectional su HL — **SOL e' l'unico dei tre eseguibile su Deribit** e TP01/SKH01 non
|
||
erano mai stati misurati su di lui. Ipotesi a priori registrata **prima**: diluisce (trend
|
||
multi-asset 19/06, corr 0.74). Confermata.
|
||
(1) **Dato**: storico ricostruito (`SOL/USDC:USDC`, 466.776 barre 5m dal 2022-03-15, 0 gap) e
|
||
certificato → conferma esatta del 19/06: **>1% da Coinbase nell'1.3% (2022) / 0.6% (2023) delle
|
||
barre**, med 8.1→3.9 bps dal 2022 al 2026; flat 1h 0.2% (ok), 5m **20.8%** (run 177 barre).
|
||
Da qui **due lenti dichiarate prima di misurare**: L-FULL 2022-03+ e L-PULITA 2024+.
|
||
(2) **Gambe sole** (meccanismi CONGELATI): TP01 SOL Sh 0.91 / **hold-out −0.24**; SKH01 SOL
|
||
Sh 0.51 / **maxDD 40.5%**. ⚠️ **SKH01-V2-DD fu SELEZIONATA (23/06) sul criterio maxDD<30%**
|
||
(BTC 21%, ETH 27%): su un asset nuovo **il criterio per cui la variante esiste fallisce** →
|
||
era una proprieta' dei due asset di taratura, non del meccanismo.
|
||
(3) **Book, 24 ancore, mediana delle differenze APPAIATE:** dSharpe hold-out **−0.166, >0 in
|
||
0/24 ancore in ENTRAMBE le lenti**; L-PULITA dSharpe FULL −0.099 (0/24) e dCAGR −1.34pp (0/24);
|
||
L-FULL dSharpe FULL +0.094 (24/24) ma dCAGR +0.10pp. Canonica: 2 gambe 1.44/−9.4%/14.7% →
|
||
3 gambe 1.48/−7.5%/13.6% (L-FULL), 1.54 → **1.30** (L-PULITA).
|
||
(4) **Il DD scende ma e' DE-LEVERING (5ª occorrenza** dopo VRP-DD, TP01×DVOL, MAT01, azioni
|
||
intere UCITS**):** a pari maxDD, L-PULITA k=0.886 → Sh **1.54 vs 1.30** e CAGR 14.5% vs 12.6%.
|
||
**L'unica lente in cui SOL aggiunge e' quella costruita sui dati che la certificazione segnala.**
|
||
(5) 📌 **E dentro quella lente il guadagno e' UN ANNO:** dSh per anno 2022 **−0.91** · 2023
|
||
**+1.06** · 2024 −0.29 · 2025 −0.20 · 2026 −0.22 → **4 anni su 5 negativi**; la gamba SOL da sola
|
||
fa Sh −1.99 / **+2.65** / +0.45 / +0.17 / +1.46. Il 2023 e' la risalita post-FTX da ~$8 a ~$100:
|
||
un evento, non un meccanismo. Corr col book **+0.404 L-FULL / +0.561 L-PULITA** — vicina allo
|
||
0.74 che boccio' il trend multi-asset, **e in salita man mano che il dato migliora**.
|
||
(6) **L'eseguibilita' NON e' il vincolo:** `SOL_USDC-PERPETUAL` min 0.001 SOL = **$0.09** contro
|
||
il pavimento `min_order` $5 → **primo candidato bocciato senza che il muro sia la taglia del conto.**
|
||
(7) ⚠️ **EFFETTO COLLATERALE TROVATO SU ME STESSO: il "guardrail solo dati certi" NON e' codice.**
|
||
`load_data` **non ha whitelist**: `load_data("SOL") -> FileNotFoundError` funziona solo perche' il
|
||
file non c'e'. Ricostruendo SOL in `data/raw/sol_1h.parquet` **il guardrail si e' disattivato in
|
||
silenzio**, e quel file NON viene rinfrescato dal cron (`--asset BTC ETH`) → sarebbe diventato
|
||
**dato stantio con l'aspetto di dato attivo**. Riparato con la convenzione gia' in uso
|
||
(`hl_`/`eq_`/`eqx_`/`fut_`): SOL vive in **`data/raw/alt_sol_*.parquet`**, fuori dal namespace
|
||
nudo; guardrail verificato ripristinato e congelato in due test (uno **deriva** gli asset a
|
||
rischio da `rebuild_history.DERIBIT_INSTR`, l'altro segnala se `load_data` acquisisce una
|
||
whitelist vera). ⚠️ La prima stesura del test elencava i prefissi a mano e bocciava `eqx_`,
|
||
`fut_`, `vol_term_`, `fundnews_` — namespace veri: **l'invariante si deriva dal codice, non si
|
||
elenca** (stessa lezione di `fee_watch` il giorno prima).
|
||
**REGOLE:** (a) un meccanismo si trasferisce a un asset nuovo **coi parametri congelati**, o non
|
||
e' un trasferimento ma una nuova famiglia (→ `study_family_honest` + DSR); (b) **un criterio di
|
||
SELEZIONE va riprovato sull'asset nuovo** — quello di SKH01 non sopravvive; (c) quando il
|
||
risultato dipende dalla finestra, **guardare quale finestra la CERTIFICAZIONE approva**;
|
||
(d) **un contributo positivo si scompone per ANNO prima di crederci** — 24/24 ancore positive
|
||
sembravano un plateau ed erano un anno solo; (e) **ricostruire dati per un'analisi puo'
|
||
disattivare un guardrail che vive nell'assenza di un file**: chiedersi in quale namespace atterra.
|
||
⚖️ **DECISIONE DELL'OPERATORE 2026-08-22: SOL ESCLUSO.** Presa dopo aver visto l'analisi completa.
|
||
L'universo direzionale resta **BTC/ETH**, presidiato da
|
||
`tests/test_sol_leg.py::test_l_universo_direzionale_resta_BTC_ETH`. **Cosa NON si ri-discute:**
|
||
SOL su un book a 2 gambe, con questi dati. **Cosa la riaprirebbe:** ~3 anni di storia SOL
|
||
*certificata* (dal 2024) sufficienti a rifare la misura **senza** la finestra 2022-23 che la
|
||
certificazione segnala — cioe' **non prima del 2028** — oppure un meccanismo che non sia
|
||
TP01/SKH01 congelati. I parquet `alt_sol_*.parquet` restano su disco (precedente: i 51 HL
|
||
conservati dopo il rifiuto dell'espansione XS01); **non sono nel feed attivo e il cron non li
|
||
rinfresca**, quindi vanno rigenerati prima di ricrederci.
|
||
⚠️ **Nota per il futuro-me:** e' una decisione presa con l'informazione completa, non una svista.
|
||
Se qualcuno propone SOL "perche' e' eseguibile su Deribit", la risposta e' che l'eseguibilita'
|
||
non e' mai stata il problema — l'hold-out lo e', a 24 ancore su 24.
|
||
|
||
- 🌊 **ONDATA MULTI-AGENTE 2026-08-22 (20 filoni, branch `research/wave-0822`) — 0 candidati, 1
|
||
DIFETTO DI PRODUZIONE, **4** soglie pubblicate falsificate, 1 leva che nessun gate sa vedere.**
|
||
Diario `docs/diary/2026-08-22-wave-multiagente.md`; ledger per filone `docs/research/RESULTS-0822.md`;
|
||
briefing `docs/research/BRIEF-0822.md`; 21 script `scripts/research/r0822_*.py` (15.295 righe,
|
||
compilano tutti, ognuno gira da solo). **Book, pesi, cron, config INVARIATI.**
|
||
🚨 **(1) I MONITOR FORWARD REGISTRANO UNA FRAZIONE DEL GIORNO — 4 su 6 rotti.**
|
||
`fetch_hyperliquid` e `resample_tf` scrivono la barra del **giorno in corso**; `advance()` la
|
||
consuma e **porta `last_ts` su di essa** -> le ore restanti non entrano in nessun rendimento.
|
||
| monitor | barre coincidenti | **min/giorno** | gate |
|
||
|---|---|---|---|
|
||
| `paper_statarb` | **0/46** | **4** | **STATARB 27/09** |
|
||
| `paper_dvolspread` | 0/28 | **2** | DVOLSPREAD 24/10 |
|
||
| `paper_xsr` | 1/28 | **41** | XSR01 23/10 |
|
||
| `paper_portfolio` | 7/56 | 19 | — |
|
||
| `paper_prevday` | 1259/1319 | 1.438 | — |
|
||
| `paper_combo` | 7/37 | 1.402 | — (sano **per caso**: aspetta una borsa) |
|
||
**Il gate STATARB si ribalta su 2 criteri su 3**: Sharpe registrato **+1,96** contro **−2,02**
|
||
ricostruito, maxDD **2,2% contro 15,3%** (guardia <10%).
|
||
✅ **La finestra NON va persa** (misurato 2 volte: il feed non riscrive le barre chiuse —
|
||
`paper_prevday` 1427/1488 identiche al bit dopo 62 notti; le 6 barre di statarb recuperate dopo il
|
||
guasto EPERM 09-15/07 coincidono al bit) -> **"riparare `advance()` + RIGENERARE", non "riparare e
|
||
azzerare": nessuna data di gate si sposta** (pessimista: STATARB +18g).
|
||
**Guardia raccomandata, NON cablata:** `ts_ultima_barra + cadenza <= mtime del file`, grazia 5 min.
|
||
O(1), segnala 5/6, **tace sul sano**, controllo positivo sintetico 6/6 nei due versi.
|
||
⚠️ `monitor_health` non poteva vederlo: **una serie fresca, completa e SBAGLIATA passa ogni
|
||
controllo di freschezza**. E `implausible_sharpe` non e' **mai** stato puntato sulle serie forward.
|
||
📌 **(2) TRE SOGLIE PUBBLICATE, FALSIFICATE.** (a) *"XS01 serve ~$20k"* (origine: "rumore di
|
||
arrotondamento", stima a occhio del 19/06) -> **nessuna soglia da min-order**, haircut ~0 gia' a
|
||
**$200-600 allocati**. Meccanismo: gli ordini sono **due popolazioni** — il ribilanciamento del
|
||
segnale e' il 13% degli ordini ma il **75% del nozionale** (ticket $13,65); la deriva del
|
||
vol-target e' l'87% degli ordini ma il **25%** (ticket $0,64) e **il pavimento la taglia gratis**.
|
||
*Contare gli ordini da' 16%, contare il nozionale da' 75%.* ⚠️ **Il "$20k di XS01" e il "$20k
|
||
della DECISIONE DI VENUE" sono due cose diverse conflate in questo file: il primo cade, il secondo
|
||
REGGE** (e' sull'asse della rovina, non dell'eseguibilita'). (b) *"slippage = rischio #1 di XSR01"*
|
||
-> **refutato con margine 21x**. (c) *"BTC opzioni fuori a $3.000"* -> misurato sulla famiglia
|
||
**inverse**, che un conto **USDC non puo' marginare**; la famiglia USDC-lineare ha lotti **10x piu'
|
||
piccoli** (ETH_USDC **$242**, BTC_USDC $772 contro $7.744). ~~Il muro resta **per il prezzo
|
||
del lotto**.~~ 🚨 **CORRETTO 2026-08-23 (§46): quelle cifre sono il COLLATERALE PER VENDERE.
|
||
COMPRARE un'opzione costa il PREMIO, non il nozionale** — `min_trade_amount` **0,01** su tutte le
|
||
343 put BTC_USDC (✅ verificato al venue) e il premio del lotto minimo di una put deep-OTM va da
|
||
**$0,00 a pochi dollari** ⇒ **sul lato LONG il muro di capitale non esiste** (e la regola *niente
|
||
short-vol da modello* non ha mai avuto bisogno di un muro di taglia per reggere).
|
||
📌 **Il muro vero sul lato long e' un altro, ed e' STRUTTURALE: il tick da 5,00 USDC** (✅
|
||
verificato, `tick_size = 5.0` su tutte) — **piu' l'opzione e' deep-OTM, cioe' economica, piu' il
|
||
tick domina**: una put marcata 0,82 USDC non e' quotabile sotto 5, cioe' un pavimento di prezzo
|
||
del **6x** sulle ali lontane, che nessun capitale aggira.
|
||
Parametri veri Hyperliquid: **min order $10** (non $5), **taker 4,50 bps** (non 5,0).
|
||
📌 **(3) LA LEVA E' L'UNICA VARIABILE CHE NESSUN GATE DEL PROGETTO SA VEDERE.** Lo Sharpe e'
|
||
**invariante alla scala** (1,31 a ogni cella del knob) -> `deflated_sharpe` e `marginal_vs_tp01`
|
||
non falliscono, **non la vedono**. 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
|
||
capitale-rendita (€500/m, netto fisco). **Lo scettico conferma il numero e toglie la sua condizione
|
||
bloccante**: sotto la lente wick accoppiata il maxDD prende un **ricarico moltiplicativo costante
|
||
~3,5%**, non un'amplificazione (**il maxDD e' multi-giorno, il wick e' di un giorno**).
|
||
**Il gradino resta NON autorizzato**: cade 1 riserva su 3; restano il drift stimato su 7,4 anni
|
||
(k* e' lineare nel suo errore) e la **coda assente dal dataset** (un giorno −10%/anno -> k* 2x).
|
||
⚠️ **Ma la lezione del 25/07 e' vera e NON si trasferisce:** su una regola a **UN giorno**
|
||
(daily-loss, stop di conto) close-only e' **esattamente cieca** — 0,00 breach/anno contro 0,40-1,21
|
||
veri (**rapporto INF**). **Sul canale prop/funded la lente accoppiata resta OBBLIGATORIA.**
|
||
⚠️ **`target_vol` e `k` NON sono la stessa leva:** `target_vol` scala il 75% del libro e lascia
|
||
fermo il 25% (a tv=30% il libro e' **82/18**, a 60% **90/10**) -> e' anche un tilt di pesi, e
|
||
**fallisce `weights_tilt_null`**. La strada pulita per un cambio di SCALA e' il cap di config.
|
||
📌 **La vol realizzata di TP01 a `target_vol=20%` e' 12,14%**, scomposto: `20% x 0,682 x 0,890`,
|
||
dove lo 0,682 sono **due meta' quasi uguali** (flat nel 44,3% delle barre **e** convinzione
|
||
parziale) -> **"TP01 e' long-flat" spiega meta'**; e alzare `target_vol` **aumenta la size proprio
|
||
nei giorni in cui il segnale e' piu' debole**. Il x0,890 e' **diversificazione, non un difetto**.
|
||
⚠️ **XS01 dichiara lo stesso 20% e ne realizza 20,59%: vale per TP01, non per il libro.** Nessun
|
||
numero pubblicato cambia (sono tutti sulla serie **realizzata**); sbaglia chi legge l'**etichetta**
|
||
(attribuirebbe a TP01 l'89% del rischio invece del **73%**).
|
||
📌 **(4) PROP/FUNDED — l'ipotesi centrale e' falsificata, e per la ragione teorica giusta.**
|
||
Riallocare *per la barriera* invece che *per lo Sharpe* vale **+0,016 di J (il 4%)**: il conto del
|
||
gambler's ruin lo prevedeva (**la vol sparisce, il contenuto sta nella LEVA**). Cio' che vale e'
|
||
**mettere XS01 su un conto funded: +0,400** (J 0,335 -> 0,738; P(pass) 38,6% -> 82,2%). Leva ottima
|
||
**0,75x HYRO / 1,00x FTMO**, e **la barriera piu' larga alza l'ottimo: il vincolo e' la regola di
|
||
DD, non il libro**; la leva alta **non compra probabilita', compra fretta**. Il **75/25 del libro
|
||
live non e' la ripartizione giusta per un conto a barriera** (sul 2019+ che contiene il 2022
|
||
l'ottimo e' **38/62 @0,50x**). **Il null dei tilt dice che il PUNTO non conta**: il massimo di 200
|
||
pesi casuali (0,739) **eguaglia** l'argmax (0,738) — conta stare nella regione diversificata.
|
||
🚨 **Il numero da citare e' LA BANDA: P(>=50/g) da €600 in 36 mesi = 42% al drift pieno · 7,7% allo
|
||
stress moderato · 0,7% a quello severo** (e li' e' **peggio del libro live**), perche' **tutto il
|
||
vantaggio poggia sul drift di XS01 misurato sulla sua finestra di scoperta**. Gate proposto: non
|
||
aprire un funded su questa allocazione prima che XS01 abbia una finestra fuori dal 2024-2026.
|
||
⚠️ Distorsioni dichiarate e non rimosse: banda d'ancora **non girata** sotto quella lente (l'ottimo
|
||
gira sull'ancora canonica e si appoggia a **SKH01, che ha la fortuna d'ancora piu' grande da
|
||
restituire**); e la sotto-pesatura di **TP01, lo sleeve difensivo, e' misurata su un campione senza
|
||
sinistro** — su una barriera assorbente quella scommessa si paga una volta sola.
|
||
📌 **(5) LO SLIPPAGE DEL LIBRO LIVE, misurato per la prima volta: non c'e' a questa taglia.**
|
||
I backtest a 10 bps RT restano **conservativi di ~1,5 bps/lato** (fee vera 7 bps RT); estremi
|
||
avversi **1/18 contro 4,7 attesi**. Prova diretta: un fill ha preso il **21,9% del volume della sua
|
||
barra 5m** e quella barra ha avuto un range di **1,08 bps**. ✅ **Fee sul NASTRO: 5,00 bps/lato
|
||
prima del 2026-08-01 e 3,50 dopo, 16/16 esatti** = conferma indipendente di `fee_watch`.
|
||
🚨 **Ma la misura ha una DATA DI SCADENZA:** la partecipazione scala lineare -> quel 22% diventa
|
||
**172% di una barra 5m a $5.000** e **687% a $20.000**. **Va rifatta a ogni salto di taglia.**
|
||
⚠️ Due difetti del dato trovati prima di misurare: `ts_utc` in `book_executions.jsonl` **non e'
|
||
l'ora del fill** (18/18 = `00:00:00`; l'ora vera sta solo in `logs/cron_book.log`); e il feed
|
||
certificato e' l'**INVERSE** mentre il libro trada il **LINEARE USDC** (**4ª occorrenza** dello
|
||
schema `fee_watch`: misurare li' avrebbe misurato **la base**).
|
||
📌 **(6) IL `f=0,73` DI VRP01 SCOMPOSTO — il 42% e' STRUTTURA A TERMINE, solo il 25% e' skew**
|
||
(30% spread, 2% fit). **Il sleeve prezza un'opzione a 7 GIORNI col DVOL a 30 GIORNI**, che nel 90%
|
||
delle ore sta ~3 punti di vol **sopra** l'ATM a 7g -> sovrapprezza **entrambe** le gambe. Il
|
||
"+0,8pp sulla gamba corta" del 30/07 — che faceva sembrare **corretta** la gamba venduta — e' la
|
||
**cancellazione di due errori da ~3pp**. ⚠️ **E la regola per prenderlo era gia' scritta il 03/07**
|
||
("riprezzare term-structure-consistent prima di credere a un numero da struttura BS-flat") **e non
|
||
e' stata applicata alla misura del 30/07**. Verso: `f_term` va da **0,83** (IV-rank basso) a
|
||
**0,93** (alto) e **supera 1 in backwardation** mentre `f_skew` resta piatto -> **la parte maggiore
|
||
del difetto si annulla proprio dove il gate fa tradare il sleeve**, quindi f=0,73 e' plausibilmente
|
||
**conservativo li'**. Non misurato (0/22 ingressi passano il gate) e in un crash i due pezzi vanno
|
||
in **direzioni contrarie**. **`VRP_CFG["f"]` NON cambiato.** Replica indipendente del f: **0,714**.
|
||
📌 **(7) CHIUSURE DI FAMIGLIA.** **Il filone funding si chiude sul QUARTO lato** (affollamento):
|
||
su **53.430 ore / 3 anni** non predice ne' direzione ne' volatilita'. E i futures datati **non sono
|
||
un quinto lato**: il loro basis **E'** il funding del perp (+7,33% implicito contro **+6,48%**
|
||
realizzato; premio incassabile **+0,85%/anno con IC95 che contiene lo zero**). **La mean-reversion
|
||
non risorge** sotto due conditioner mai provati (volume, shock 3σ): la selezione in-sample sceglie
|
||
il ramo di **continuazione** in entrambi. Scartati anche: adaptive-horizon (il "vincitore adattivo"
|
||
ha lookback **costante**, corr 1,000), dealer-gamma (BTC non separa, ETH separa **al rovescio**;
|
||
⚠️ **e qui una REGOLA MIA, pubblicata la sera stessa e RITIRATA poche ore dopo:** avevo scritto che
|
||
`dealer_net_gamma` del dataset ereditato *"e' il GEX col SEGNO INVERTITO"* (corr −0,95). **FALSO, e
|
||
la fonte gira su questa stessa VPS:** `/opt/docker/cerbero-mcp/src/cerbero_mcp/common/options.py:11-14`
|
||
**dichiara la convenzione** — *"i dealer sono SHORT calls (le vendono al retail) e LONG puts"* — e
|
||
`dealer_gamma_profile:138-140` la implementa (`call_dealer_gamma -= contrib` / `put_dealer_gamma
|
||
+= contrib`). Non e' un segno sbagliato: e' un'**assunzione di posizionamento dichiarata**, diversa
|
||
da quella del GEX standard, e il default `top_n_strikes=50` spiega anche il coefficiente −0,7 e
|
||
l'offset che avevo attribuito a "non-portabilita'". **Il verdetto SCARTATO regge; cade la regola** —
|
||
che le prossime ondate avrebbero ereditato al contrario. **REGOLA VERA: prima di dichiarare che un
|
||
campo di un dataset e' sbagliato, aprire il codice che lo produce** — qui erano due comandi, e la
|
||
correlazione a −0,95 con la ricostruzione "standard" era esattamente cio' che una convenzione
|
||
diversa **deve** produrre. `liquidation_*_risk` e' invece **una sola categoria in 17.229/17.229
|
||
righe**, e quello e' confermato.
|
||
Scartati anche: oi-pin (il max-pain **non batte mai, 0/24, la media a 7 giorni dello spot**),
|
||
term-structure (**termometro contemporaneo**), skew direzionale (**il prezzo muove lo skew**,
|
||
t 3,1-9,4 su 8/8, non il contrario), ortho-screen **7/7**, alt-options, xs-lite, vrp-quote-vere.
|
||
⚠️ **La catena ereditata da bite ha 74-75 giorni utili, non 3,7 mesi:** prima del **2026-06-09**
|
||
raccoglieva **una sola scadenza per giro** (due agenti indipendenti, 74 e 75).
|
||
📌 **(8) REGOLE NUOVE.** (a) **L'open interest NON misura la negoziabilita'** — su Deribit USDC sono
|
||
quasi **anti-correlati (rho di rango −0,77)**: SOL_USDC e' 1ª per OI e **ultima per quote a due
|
||
lati (9%)**, BTC_USDC ha **5** strumenti con OI>=100 e il **93%** dei put quotati (e sul short leg
|
||
di SOL il miglior bid sta a **UN tick**: vendere li' significa **pagare $27** per aprire un credit
|
||
spread). (b) **Il deflated-Sharpe va calcolato DI SCREEN, non solo di famiglia**: su 168 trial il
|
||
massimo atteso dal **puro rumore** e' **Sharpe 1,572**, sopra il soffitto direzionale (~1,3) ->
|
||
**uno screen largo su BTC/ETH direzionale non puo' passare il proprio gate, per aritmetica.**
|
||
🚨 **QUESTO ARGOMENTO E' REFUTATO DUE VOLTE, per due strade indipendenti, e NON va ereditato:**
|
||
(i) la stessa griglia dichiarata come 7 famiglie da 24 da' **1,15**, sotto il soffitto — il
|
||
verdetto si ribalta sulla **partizione** (ondata 2, §24); (ii) **il soffitto non e' ~1,3**: la
|
||
stessa ondata pubblica un lookback costante a **1,639** e la cella PREVDAY al buio a **1,621**,
|
||
stessa coppia e stessa lente netta-fee (§23, §54). «Soffitto» sta per tre cose diverse e il
|
||
registro usava la piu' bassa citandola come la piu' alta.
|
||
(c) **Un placebo si controlla per BILANCIAMENTO DEL SEGNO prima di usarlo** (un null che concorda
|
||
col segnale nel 14% dei casi non e' un null, e' la strategia invertita: fabbrica celle
|
||
"significative"). (d) **Il null del de-levering e' DEGENERE quando la variante e' una
|
||
ri-scalatura** (`sh(k*base) === sh(base)`): serve **iso-peso sullo Sharpe**. (e) **Un gate che
|
||
stampa `None` va verificato prima di dichiararlo "non girato"**. (f) **Su una finestra interamente
|
||
post-hold-out `marginal_vs_tp01` non puo' dare ADDS per costruzione** — un NEUTRAL li' non e' un
|
||
giudizio. (g) **Un confronto appaiato deve ereditare TUTTI i parametri della riga in cui compare.**
|
||
❌ **REGOLA RITIRATA, pubblicata poche ore prima nella stessa ondata:** *"su equity a gradino un
|
||
overlay giornaliero e' non-causale"* — **falso su questo motore**: `backtest_signals` contabilizza
|
||
al giorno d'**INGRESSO** in **291/293** trade e la "riparazione" e' un **no-op bit-exact**; il
|
||
"+0,04 fantasma" era la differenza fra due varianti **entrambe causali**, e quella scartata era la
|
||
**migliore sull'hold-out**. *Il costo di una regola derivata da un difetto inesistente e' gia'
|
||
stato pagato.*
|
||
📌 **(9) Cosa NON e' piu' il vincolo: TRE volte in questa ondata l'eseguibilita' a $600 non ha
|
||
bocciato niente** (haircut 0,00-0,01; lotti $7-242; margine ~$148). Dopo due mesi in cui il muro
|
||
era sempre il capitale, **adesso muoiono tutti sull'edge**.
|
||
⚠️ **(10) FATTO OPERATIVO: il cron gira dal WORKING TREE.** Con un branch di ricerca attivo, il
|
||
cron esegue quel branch. Durante l'ondata il diff vs `main` toccava **solo** `scripts/research/` e
|
||
`docs/research/` (verificato) -> produzione identica; ed e' il motivo per cui **nessuna riparazione
|
||
e' stata applicata**: sarebbe andata live alle 00:30 senza una decisione dell'operatore.
|
||
🗂️ **Dataset nuovo in eredita':** **30/30 futures trimestrali scaduti** Deribit ricostruiti
|
||
(`get_instruments?expired=true` ne ritorna **1**, ma i nomi sono deterministici e
|
||
`get_tradingview_chart_data` serve la storia di un contratto scaduto): **BTC 240.150 barre orarie /
|
||
ETH 233.334, dal 2018-09, col deleveraging 2022 dentro** — cioe' **la coda che a CC01 mancava per
|
||
costruzione**. Cross-check col forward implicito nella catena opzioni: mediana **−0,6 bps**.
|
||
|
||
- 🌊 **SECONDA ONDATA 2026-08-22 sera (9 filoni, `research/wave-0822`) — 0 candidati, 1 gate
|
||
pre-registrato SOSTITUITO, il numero funded ridimensionato di 5x, e un difetto strutturale del
|
||
deflated-Sharpe misurato da TRE agenti indipendenti.** Diario
|
||
`docs/diary/2026-08-22-wave2-xs01-funded.md`; registro `docs/research/RESULTS-0822.md` §21-29.
|
||
**Libro, pesi, cron, config INVARIATI.**
|
||
✅ **(1) XS01 REGGE FUORI DALLA SUA FINESTRA DI SCOPERTA — ED E' PIU' FORTE LI'.** La finestra
|
||
c'era gia': stessi 19 ticker su **Binance spot 2021-2023**, che contiene **LUNA e FTX**, meccanismo
|
||
**congelato**. Mediana di fase **+1,12 fuori campione contro +0,37 dentro**; differenza appaiata
|
||
**+0,668, positiva in 10/10 fasi**; p=0,013 contro permutazione a fee zero; sopravvive a 30
|
||
bps/lato. **L'obiezione "Binance non e' la verita'" e' stata MISURATA, non aggirata:** quella regola
|
||
riguarda l'**ancoraggio di prezzo**, non un ranking cross-sezionale, e lo scarto USDT e' un
|
||
**fattore comune** che sparisce nello z-score — stesso sleeve sui due venue **corr 0,9991**.
|
||
**Null "universo dove non dovrebbe funzionare"** (11 settoriali SPDR 1998+): −0,45, **0/10 fasi** →
|
||
**3ª conferma indipendente che il cross-sectional e' crypto-specifico**.
|
||
⚠️ **Ma tre correzioni vanno nel verso opposto:** maxDD standalone **10,8% → 21%**;
|
||
**deflated-Sharpe FAIL 0,342**; **32% dell'universo non testabile** (19 gambe 1,31 contro 13 gambe
|
||
0,54, stessa finestra e venue). **Verdetto LEAD**, non promozione.
|
||
✅ **(2) Il falsificatore che l'autore aveva nominato CONTRO SE STESSO — eseguito, e non
|
||
falsifica.** La validazione di venue girava solo sul 2024+, cioe' **senza il depeg USDT** che il
|
||
fuori campione contiene. Soglia dichiarata da lui (`corr ≥ 0,99`): **corr mediana 0,9992, minima
|
||
0,9921**, dSharpe appaiato **−0,000**, titolo da +1,12 a **+1,11**; sui 734 ribilanciamenti solo
|
||
**10 cambiano una gamba su cinque** e **ZERO dentro il depeg**. **Il punto di metodo: la divergenza
|
||
va SCOMPOSTA** — la **comune** arriva a −39 bps ed e' quella che lo z-score annulla, la
|
||
**idiosincratica** (l'unica che cambia il ranking) sale solo da 2,0 a 3,6 bps mediani; *riportare
|
||
solo la prima da' la risposta rassicurante e sbagliata*. 🚨 **E il caso peggiore del campione non e'
|
||
il depeg: e' il 2025-10-10** (cascata di liquidazioni /USDT, **INJ 1.981 bps** mentre BTC/ETH stanno
|
||
a 21) → **il meccanismo temuto e' REALE**, e' solo caduto nella finestra di *scoperta*.
|
||
🚨 **(3) IL NUMERO FUNDED SI RIDIMENSIONA DI 5x, E IL COLPEVOLE NON E' LA FINESTRA.**
|
||
Decomposizione a **un grado di liberta' per volta** (riproduzione **esatta cifra per cifra** dei
|
||
numeri del mattino + 3 controlli bit-exact a 0,0):
|
||
| passo | J | Δ |
|
||
|---|---|---|
|
||
| il pubblicato (HL, 19 gambe, finestra di scoperta) | 0,739 | — |
|
||
| → venue Binance, **date allineate** | 0,732 | **−0,006** |
|
||
| → **13 gambe** | 0,426 | **−0,307** |
|
||
| → pannello lungo | 0,459 | +0,034 |
|
||
| → **fuori campione 2021-2023** | 0,520 | **+0,061** |
|
||
**Il 42% del numero pubblicato sta nelle 6 gambe che fuori campione non esistono** (ARB OP SUI APT
|
||
SEI TIA) — **e quelle 6 entrarono nell'universo nel 2026-06 guardando la liquidita' HL del 2024+,
|
||
cioe' dentro la finestra di scoperta**. La finestra, da sola, **migliora**; allargare l'universo man
|
||
mano che le gambe nascono **non recupera** i 0,307.
|
||
⚠️ **Errore di metodo catturato prima di pubblicare:** la prima stesura dava al passo venue −0,254
|
||
("Binance costa un quarto di J"). Era **FASE, non venue** — `xsec_engine` ribilancia sulla parita'
|
||
dell'indice di pannello, e **due pannelli che iniziano a date diverse ribilanciano in giorni di
|
||
calendario diversi**. Allineati, il venue vale −0,006.
|
||
**NUMERO DA CITARE: P(≥50 €/g) da €600 in 36 mesi = 7,8% [7,2–9,1%], P(zero) 25,5%** (non 42%);
|
||
6,6% se la firm non lista gli alt; 4,3% per il libro live. **Il peso 0,50 non sopravvive; la
|
||
REGIONE [25%, 38%] e' entro il 3% dell'ottimo su tutte e tre le finestre.** Stress ora ancorati al
|
||
misurato: `XS ×0,00` **+0,041** → **XS01 come pura DECORRELAZIONE vale +0,04, tutto il resto e' il
|
||
suo drift.**
|
||
📌 **`GATE PROP-01` — SOSTITUISCE l'attesa di anni, che e' CHIUSA:** **(a) LISTINO — verifica a €0,
|
||
BLOCCANTE prima di ogni spesa:** ≥10 delle 13 gambe negoziabili **con short** (sotto 10 il
|
||
meccanismo congelato **non ribilancia affatto**); FAIL → si decide sulla riga senza XS01. *Stessa
|
||
classe dell'errore GTAA01/PRIIPs, per cui la regola e' gia' scritta.* **(b)** banda d'ancora di
|
||
SKH01 sotto la lente prop, **2026-10-31**, PASS se **> +0,05** (atteso PASS, dichiarato prima).
|
||
**(c)** un'eval HYRO $100k costa **$579 su un conto di $635** = il **91%**.
|
||
⚠️ **(4) I DUE AFFINAMENTI DI XS01 DEL 2026-06-19 NON SI REPLICANO FUORI CAMPIONE** (misurato da
|
||
**due agenti indipendenti**): il **blend [30,90] e' PEGGIO del solo L=30** (+1,12 vs +1,28) e il
|
||
**gate di dispersione p30 vale ZERO** (+1,12 con e senza) — mentre *dentro* la finestra di scoperta
|
||
il gate vale eccome (+0,37 contro −0,03). Il secondo agente lo ritrova per un'altra strada: l'unica
|
||
correlazione sotto soglia del suo test e' **causata dal gate** (spento, 0,9674 → **0,9977**), perche'
|
||
e' **binario** e pochi bps lo fanno cadere ai due lati. **Cio' che sopravvive e' il meccanismo
|
||
cross-sectional NUDO.** ⚠️ **NON e' un argomento per cambiarli** — cambiarli guardando *questo*
|
||
risultato sarebbe la stessa selezione spostata di finestra — **e' un argomento per non attribuire
|
||
loro il valore che questa memoria gli attribuisce.**
|
||
✅ **(5) L'ALLARME SUL PESO DI TP01 E' FALSIFICATO NEL VERSO** (l'agente aveva registrato nel
|
||
docstring, **prima di misurare**, che si aspettava di confermarlo): **TP01 ~0,375 e' l'argmax sia
|
||
sulla finestra che contiene il 2022 sia su quella che non lo contiene**, e nel sinistro il libro con
|
||
**meno** TP01 fa **meglio** — TP01 va flat mentre **SKH01 si gira short e guadagna**; test dei segni
|
||
**12/12** (p=0,0005) e **8/8** sul solo pre-2024. **Null del de-levering, 7ª occorrenza, in veste
|
||
nuova** ("protezione dal crash"): a leva comune TP01 protegge davvero, ma **a ISO-SOPRAVVIVENZA meno
|
||
TP01 paga di piu'** ($4.490 → $2.119, monotono). Tre collaterali: **(i)** *"2024-2026 non contiene
|
||
un crash"* e' **falsa nella forma** (buy&hold −60% di DD); manca la **taglia** (~2,3x sulla coda) →
|
||
la domanda giusta e' **"e se ne arriva uno due volte piu' grande"**; **(ii)** alle leve funded **il
|
||
2022 non era una minaccia** (min equity −1,4/−2,4% contro barriera −6%): **cio' che uccide un conto
|
||
a barriera e' la regola a UN GIORNO su una giornata qualunque**; **(iii)** il rischio vero
|
||
dell'ottimo e' **XS01, non TP01**. Il 75/25 live e' **fuori** dalla regione di compromesso del funded
|
||
— coerente col fatto gia' scritto il 25/07: *canale funded e libro proprietario vogliono libri
|
||
diversi*.
|
||
❌ **(6) ORIZZONTE ADATTIVO — CHIUSO DEFINITIVAMENTE.** Il falsificatore e' stato eseguito coi
|
||
rilevatori che nominava (**BOCPD** Adams & MacKay + **optimal partitioning causale**) e **questa
|
||
volta ha avuto POTENZA**: **68/96 celle davvero adattive** (contro 0 del primo tentativo, dove il
|
||
"vincitore adattivo" aveva lookback costante). Con potenza: **0/68** su entrambe le condizioni
|
||
dichiarate, corr→TP01 **minimo 0,754** (soglia 0,60). 📌 **La decomposizione E' il risultato:
|
||
l'adattivita' spiega il −7% del vantaggio su TP01** (miglior costante +0,326, adattivo +0,305) → il
|
||
100% e' **"un orizzonte piu' corto", non "adattarlo"**. E il miglior costante **non si propone**: il
|
||
salto fra L **adiacenti** e' **+0,190 = il 58% del vantaggio** — max-of-24 su un crinale di rumore.
|
||
📌 **Prova di IDENTITA' invece di diagnostica** (controllo riusabile in ogni famiglia con un
|
||
parametro clippato): invece di *"questa cella sta al bordo"*, la sua serie e quella del costante
|
||
coincidono a **max|Δ| = 0 su n=2719**.
|
||
❌ **(7) MAKER — il segno dipende da `<` contro `<=`.** Differenziale maker/taker: tetto **$2,96/anno
|
||
a $635** (replica indipendente della curva 26/07 al terzo decimale). Il costo del non-fill lo mangia
|
||
interamente gia' alla condizione di riempimento **piu' generosa fisicamente difendibile**: se una
|
||
barra che apre esattamente al nostro prezzo e da li' se ne va conta come fill, resta +0,31 bps; se
|
||
**non** conta (e non conta: a quel prezzo non e' stato scambiato niente dopo l'arrivo dell'ordine, e
|
||
un passivo sta **dietro a tutta la coda**), resta **−0,47**. **Non esiste un q positivo di
|
||
pareggio**; IC95 contiene lo zero in **10 celle su 10**. 📌 **La firma della troncatura, vista
|
||
dall'altra parte: il passivo vince sul 92-98% degli ordini e perde sulla media** (5 ordini su 1535
|
||
fanno il **42%** del danno) — *una politica che vince quasi sempre e perde sulla media si giudica
|
||
sulla media*. **Placebo a ore casuali girato**: la selezione avversa **non** e' "il libro trada nei
|
||
momenti brutti", e' **strutturale all'esecuzione passiva**. ⚠️ Osservazione che riapriva la domanda:
|
||
il netting su strumento unico (che uccise T1 il 26/07) **non si applica all'ordine NETTO di
|
||
ribilanciamento**, che e' uno solo.
|
||
❌ **(8) SUPERFICIE DI VOLATILITA' — il lato relative-value e' CHIUSO.** Censimento (non selezione)
|
||
su **1,24 M quote a due lati**: **0 violazioni di monotonia su 1,11 M**, **1 di convessita' su 1,03
|
||
M** che vale **$0,00** ed e' sparita l'ora dopo. |residuo| mediano **0,125-0,200 pt-vol** contro
|
||
**mezzo** spread 0,861-1,208, e **sotto il tick nel 96% dei casi**. 📌 **IL MECCANISMO: |residuo|
|
||
cresce MONOTONAMENTE col largo del mercato** (0,080 pt a spread 2,6% → 0,255 a spread 50%) →
|
||
**l'incoerenza al mid *E'* la larghezza del mercato guardata attraverso il mid**, non un errore di
|
||
prezzo — e questo uccide il controfattuale USDC che l'agente stesso aveva costruito (restringendo
|
||
alla superficie gia' quotata stretta: **0 su 158.718**). Reversione **misurata**: mezza-vita 11-12 h,
|
||
corr(t,t+1) +0,94 → il residuo e' **la forma dello smile**. Controlli positivi **3/3 in entrambi i
|
||
versi** — *un rilevatore che trova ~0 e non e' validato e' indistinguibile da uno rotto*.
|
||
⚠️ **(9) BIN-FREQ (il binario di frequenza su SKH01) — LEAD: la direzione e' reale, la TAGLIA e'
|
||
selezione.** Argmax **+0,112 in 23/23 ancore**, ma **mediana di famiglia +0,007** con 39/72 celle
|
||
positive = **monetina**: **l'argmax vale 16× la mediana, punta e non plateau**. Direzione
|
||
solidissima (**0/72** sul segno inverso; trasferisce a SKH01_V1). Criterio a 4 gambe: **3 FAIL**, e
|
||
la taglia e' **€0,0113/giorno**. Due implementazioni difendibili della stessa regola, d'accordo sul
|
||
**97,6%** dei trade, danno +0,066 contro +0,080 → **il 21% dell'effetto sta in come si riempie il
|
||
warm-up**. 📌 **Riapertura pre-registrata: non una data ma una SOGLIA DI CAPITALE** ($5.600 alla
|
||
stima della cella, **$53.000** a quella onesta di famiglia) — perche' cio' che fallisce e' il
|
||
rapporto fra un costo **fisso** e un beneficio **proporzionale**, e nessun forward a 6 mesi puo'
|
||
misurare 0,07 di Sharpe (SE≈1,4).
|
||
🚨 **(10) IL FILO DELLA GIORNATA: `deflated_sharpe` NON HA UNA REGIONE UTILE IN MEZZO — misurato da
|
||
TRE agenti indipendenti, e TRE gate pre-registrati ci poggiano sopra** (XSR01 23/10, DVOLSPREAD
|
||
24/10, 22/12). `altlib.deflated_sharpe` calcola `sr0 = sd(Sharpe dei trial) × mult(N)`: dipende
|
||
dalla **VARIANZA** della griglia, non solo da N. **(a)** VOL-SIZE lo dichiara **VACUO** (1,000 anche
|
||
per il baseline). **(b)** BOCPD lo misura dall'altro capo: **0,998 PASS** dentro la famiglia omogenea
|
||
→ **0,555 FAIL** con l'sr0 di screen, TP01 compreso — *"gonfiare N col padding alza N e non la
|
||
varianza"*. **(c)** Il critico trova che l'**1,572 di ORTHO-SCREEN** implica sd≈0,58 e che **le
|
||
stesse 168 celle dichiarate come 7 famiglie da 24 danno 1,15**, sotto il soffitto ~1,3: il verdetto
|
||
*"uno screen largo non puo' passare il proprio gate per aritmetica"* **si ribalta senza toccare un
|
||
dato**, e la cura che suggerisce (famiglie piu' piccole) e' **la manovra proibita il 30/07**.
|
||
**(d)** BIN-FREQ chiude il cerchio dall'alto: su una famiglia **binaria** il DSR **riacquista
|
||
potenza** (0,977 contro baseline 0,834) perche' le sue celle scartano insiemi di trade molto
|
||
diversi — *non e' il candidato a essere piu' solido, e' la famiglia a essere piu' larga*.
|
||
**REGOLA: non basta contare i trial di screen, serve la VARIANZA di screen** — e **la stessa griglia
|
||
da' verdetti opposti a seconda di come la si partiziona**, il che rende la scelta della partizione
|
||
un secondo posto dove barare e' indolore e invisibile.
|
||
⚠️ **(11) REGOLA MIA PUBBLICATA E RITIRATA IN GIORNATA** — vedi il ritiro nel bullet dell'ondata 1:
|
||
`dealer_net_gamma` **non e' il GEX col segno invertito**, e' una **convenzione dichiarata** nel
|
||
sorgente che gira su questa stessa VPS. **REGOLA: prima di dichiarare che un campo di un dataset e'
|
||
sbagliato, aprire il codice che lo produce.**
|
||
📌 **(12) ALTRE REGOLE NUOVE.** (a) **Una divergenza fra due fonti di prezzo si scompone in COMUNE e
|
||
IDIOSINCRATICA prima di giudicarla**: le due rispondono a domande diverse e la prima da' sempre la
|
||
risposta rassicurante. (b) **Due pannelli che iniziano a date diverse ribilanciano in giorni di
|
||
calendario diversi**: un confronto di venue non allineato misura la **fase**, non il venue (qui
|
||
−0,254 contro −0,006, fattore 42). (c) **Un null di permutazione puo' avere mediana diversa da
|
||
zero per ragioni strutturali** — scartare a caso il 40% dei trade danneggia perche' lo Sharpe va con
|
||
√(scommesse/anno) (misurato 0,883 contro 0,861 previsti): il null resta valido e **piu' severo**, ma
|
||
risponde a *"batte una selezione casuale?"*, non a *"batte il non filtrare?"*. (d) **Un
|
||
contro-fattuale costruito sui mid di un mercato largo non descrive un mercato stretto**: prendere il
|
||
mid a spread 50% e fingere di quotarlo al 2,6% fabbrica opportunita' che spariscono restringendo il
|
||
campione a cio' che e' gia' quotato stretto. (e) **Un `git add -A` durante un'ondata cattura il
|
||
lavoro IN CORSO degli agenti** (successo qui: un commit conteneva una versione intermedia e
|
||
sbagliata di uno script poi corretto).
|
||
📌 **(13) E LA RISPOSTA ONESTA AL MANDATO, che al critico era stato chiesto di dare se vera:
|
||
NESSUNA misura di ricerca di questa giornata batte "versare".** L'effetto piu' grande misurato oggi
|
||
vale **€0,0113/giorno**; versare €500/mese vale **~1456×** quello. **La verifica che costa meno di
|
||
tutte non e' ricerca: leggere il listino di due prop firm** — l'intero risultato di testa poggiava
|
||
su un assunto scritto in un **commento a riga 100**. *La ricerca ha smesso di essere il vincolo
|
||
binding il 26/07, e due ondate da 29 filoni lo hanno CONFERMATO invece che ribaltarlo.*
|
||
|
||
- 🌊 **TERZA ONDATA 2026-08-22 notte (4 filoni) — DUE GATE D'ATTESA ELIMINATI, 2 difetti strutturali
|
||
trovati, 0 candidati.** Diario `docs/diary/2026-08-22-wave2-xs01-funded.md`; registro
|
||
`docs/research/RESULTS-0822.md` §30-33. **Libro, pesi, cron, config INVARIATI.**
|
||
✅ **(1) `GATE PROP-01` gamba (a) — LISTINO: PASS 13/13.** La verifica a **€0** che il hook e il
|
||
critico avevano indicato come il vero vincolo. 📌 **Metodo: non leggere il sito della firm,
|
||
interrogare il VENUE su cui la firm esegue.** HyroTrader esegue su **Bybit**;
|
||
`api.bybit.com/v5/market/instruments-info?category=linear` (pubblico, tokenless, **833 strumenti**)
|
||
→ **13/13 gambe U13 `Trading`, `LinearPerpetual`, min notional $5**, leva 50-150x; **6/6** anche le
|
||
gambe non testabili. **Lo short e' STRUTTURALE su un perp**, non un permesso.
|
||
⚠️ Non prova che la firm non abbia una **propria** lista ristretta: la sua pagina dichiara "700+
|
||
pairs" su un venue che ne ha 833 (coerente, ma e' la *sua* dichiarazione) → si chiude con una
|
||
domanda al supporto, non con un dataset.
|
||
✅ **VALIDAZIONE del modello:** la firm dichiara **daily DD 4% · max loss 6%**, e
|
||
`r0725_hyro.py:48-49` usa gia' `EV_TARGET,EV_DD,EV_DL = 0.10,0.06,0.04` → **le regole modellate dal
|
||
25/07 sono quelle vere.**
|
||
🚨 **CORREZIONE ECONOMICA: la quota d'ingresso NON e' un costo affondato** — e' un *"Refundable
|
||
Challenge Deposit, returned in full alongside your first funded payout"*. Il progetto l'ha sempre
|
||
modellata come spesa persa. **Resta vero che immobilizza il 91% del conto ($579 su $635), non che lo
|
||
brucia**: si perde solo nel ramo senza payout. **E' una struttura a OPZIONE, non una fee** → l'EV del
|
||
biglietto va rifatto (gamba (c) del gate). *Qualita' delle fonti dichiarata: listino **primario e
|
||
misurato**; regole DD **primarie dichiarative**; rimborsabilita' **dichiarativa + secondarie
|
||
concordi**, non misurata.*
|
||
✅ **(2) `GATE PROP-01` gamba (b) — chiusa OGGI invece che il 2026-10-31: PASS 23/23.**
|
||
Delta appaiato mediano **+0,1162** [p10-p90 +0,087/+0,152], **23/23 offset e 230/230 celle congiunte
|
||
positive** (soglia +0,05), su **griglia congiunta PIENA** 23 offset × 10 fasi — non un campionamento
|
||
e non una somma di marginali. Riproduzione **7/7 esatta**, bit-exact **3/3 a 0,0**.
|
||
📌 **La data non aspettava un dato: aspettava che qualcuno misurasse il COSTO** (0,6 s per offset;
|
||
i "~9 min" erano di una computazione che la misura non usa). **Secondo gate d'attesa eliminato in una
|
||
sera, per la stessa ragione del primo.**
|
||
🚨 **Ma il numero operativo scende ANCORA: P(≥50 €/g) da €600 in 36 mesi = 4,4% [2,5–8,2%], P(zero)
|
||
35,3%** (l'offset canonico era al **91° pctl**; all'ancora canonica la macchina ridice 7,7% → e'
|
||
**fortuna d'ancora, non disaccordo**). **Traiettoria del numero in una giornata: 42% → 7,8% → 4,4%.**
|
||
📌 **E la distorsione dichiarata DUE VOLTE e mai rimossa — *"l'ottimo si appoggia a SKH01, lo sleeve
|
||
con la fortuna d'ancora piu' grande"* — e' MISURATA E REFUTATA nella forma forte:** a **38/25/38**
|
||
SKH01 sta **allo stesso peso del LIVE**, la sua ancora si cancella nella differenza appaiata, e li'
|
||
il delta e' **il piu' alto dei tre (+0,120)** con la banda **piu' stretta**. **L'ampiezza della banda
|
||
scala col differenziale di peso su SKH01** → **cio' che paga e' XS01, non un sovrappeso dello sleeve
|
||
fragile.**
|
||
⚠️ **Due avvertenze:** (i) **il gate e' su una DIFFERENZA, il numero operativo e' un LIVELLO** —
|
||
nella prima l'ancora si cancella in parte, nel secondo per niente: passano insieme e si muovono
|
||
diversamente (−33% contro −44%). ***Un gate superato non e' un numero confermato.*** (ii) il
|
||
surrogato del 22/08 era finito vicino al vero **per la cancellazione di due asimmetrie opposte**:
|
||
**il numero era giusto, il metodo no.** **Smentitore residuo fuori perimetro:** l'ancora giornaliera
|
||
di **TP01** (24 ore, canonica 00:00 UTC = la piu' fortunata delle 24) non e' toccata da questa misura.
|
||
📌 **(3) GATE-RECON — il difetto `advance()` ribalta UN gate su tre, e in quello due criteri su tre.**
|
||
Audit di **sola lettura provata** (md5+mtime di **ogni** `data/paper_*` invariati).
|
||
**`STATARB 27/09 — riparata: RITIRO · attuale: CANDIDATO AL DEPLOY`** (Sharpe **+1,96 → −2,02**,
|
||
maxDD 2,24% → 15,19%); XSR01 e DVOLSPREAD danno **lo stesso verdetto** in entrambe le lenti.
|
||
✅ **La premessa "rigenerare non perde la finestra" e' ora CONFERMATA PER VIA DIRETTA:**
|
||
`data/_feed_backup/*.prebuild.bak` conserva il vintage pre-riscrittura → **0 barre chiuse cambiate su
|
||
1.761.259**; l'unica riga che cambia per file e' **l'ultima del vintage, che era aperta** = *il
|
||
difetto stesso, in chiaro*. ⚠️ Limite: `hl_*_1d` e `dvol_*` **non hanno vintage su disco** → per
|
||
XSR01/DVOLSPREAD l'evidenza resta **indiretta**.
|
||
🚨 **Il veto d'integrita' di DVOLSPREAD NON scatta: 28 attive/28 = 100%.** Una serie che registra
|
||
**2 minuti di mercato al giorno** passa al 100% un veto progettato apposta per non far decidere su
|
||
dati mancanti — **non e' taratura**: il veto conta *se il DVOL c'era*, non *quanto dura la barra su
|
||
cui c'era* (**assi ortogonali**); la stessa soglia 0,80 sulla quota di barre **chiuse** leggerebbe
|
||
**0%**. **Variante nuova: una barra presente non e' una giornata presente.**
|
||
🚨 **Il caso peggiore NON e' quello coi numeri piu' assurdi:** XSR01 sbaglia di **×6,6** e
|
||
DVOLSPREAD di ×3,0 **senza cambiare verdetto**; **STATARB ha |Sharpe| quasi identico (1,96 contro
|
||
2,02) e cambia SEGNO** — ed e' il gate piu' vicino. Un controllo che cercasse *"numeri troppo belli"*
|
||
**lo lascerebbe passare**; `implausible_sharpe`, girato per la prima volta sulle serie forward, dice
|
||
**"ok" in entrambe le lenti** (e chiede n≥30, quindi 2 serie su 3 **non sono giudicabili**).
|
||
**La firma da cercare e' la VOL forward molto sotto quella del backtest** (7,88% contro 31,42%).
|
||
📌 **QUANDO riparare, con un numero:** con **rigenerazione zero barre perse a qualunque data**; senza,
|
||
riparare **oggi** lascia **36/90** barre vere a STATARB (62/90 XSR01, 63/91 DVOLSPREAD), **alla
|
||
vigilia 1** — e la riparazione parziale **non contamina la finestra, la ACCORCIA** (una barra troncata
|
||
porta ~1/370 della varianza *e* del rendimento di una vera, quindi non pesa). ⚠️ La diagnostica
|
||
pre-registrata del 25/07 (statica sempre-short) **non e' affetta** perche' si ricalcola dal pannello
|
||
→ al gate si confronterebbe **un benchmark giusto con un numero di strategia sbagliato**, e il
|
||
margine sembrerebbe **+5,83 invece di +1,87**.
|
||
🚨 **(4) WORST-DAY — la riserva sulla leva e' mal tarata di 2-4 ORDINI DI GRANDEZZA, ma il knob di
|
||
scala NON ESISTE.** 🚨 **AGGIORNATO 23/08: il 1,50x e' BOCCIATO** (§53: peggior giorno
|
||
strutturale **21,48% > 20%**) e il **k massimo difendibile e' 1,40** — di questa riga sopravvive
|
||
**solo la colonna 1,25x**. Il gradino di leva vale **14,7a → 12,9a a 1,25x** e **→ 11,6a a 1,50x** al
|
||
capitale-rendita (**+€164/mese** e **+€282/mese** di versamenti equivalenti 🚨 **il primo e'
|
||
+€144 misurato direttamente — vedi il ritocco del 23/08 sotto**) ed era bloccato da un
|
||
parametro **scelto a mano** ("un giorno
|
||
a −10% ogni anno"). **Il peggior giorno ha due risposte:** **−3,94% in chiusura** (2020-03-13) e
|
||
**−7,33% al minimo** intra-giorno (rapporto mediano **1,89×**). Coda GPD: **−4,55% a 1/10.000
|
||
giorni** [−6,34/−3,08] ⚠️ **ma Hill dice −7,34% (ξ 0,34 contro 0,09): i due stimatori NON concordano
|
||
→ si cita la banda.** Conto **aritmetico** (cap + vol-target + gap-through di SKH01): peggior giorno
|
||
**possibile** a k=1,00x **−14,32%**. 📌 **Il −10% sta al 70% del massimo strutturale: la TAGLIA e'
|
||
plausibile, la FREQUENZA no** (1 ogni 67-6.075 anni contro "ogni anno").
|
||
📌 **E la forma della coda non e' la leva: muove k* di 1-2 unita', il DRIFT di 6,7.** Anche prendendo
|
||
lo stress **alla lettera**, k* 2,95x → mezzo-Kelly **1,48x**: *lo stress bocciava il gradino DOPPIO,
|
||
non quello singolo*. C1-C5 passano tutti.
|
||
⚠️ **Il libro NON e' immune ai crash, e' immune ai crash GROSSI:** sui 160 giorni di crash perde in
|
||
media −0,505%, e l'esposizione di TP01 scende **monotona** col crollo (0,096 → **0,042** sotto il
|
||
−20%) *perche' li' il trend si e' gia' girato*. **Il suo peggior giorno non e' un crash: e' uno
|
||
SHORT SQUEEZE** (SKH01 short con stop 2% che gappa a **−15,77%** di sleeve mentre TP01 e' flat; il
|
||
secondo peggiore fa −6,67% → **la coda di SKH01 e' un giorno solo**).
|
||
🚨 **IL RISULTATO CHE DECIDE, e nessuno lo cercava: il cap di `config/live.json` e' un CLAMP, non un
|
||
MOLTIPLICATORE.** Morde su **3 osservazioni-asset su 5.650 (0,053%)**; alzarlo da 0,50 a 0,625
|
||
lascerebbe il libro a k=1,00x in **5.647 giorni-asset su 5.650**. ✅ **Verificato:** le chiavi sono
|
||
`max_notional_per_asset_usd/_frac`, `min_order_usd`, `disaster_sl_pct`, `max_data_age_days`,
|
||
`skh_feed_max_age_min` — **non esiste una chiave di scala**; servirebbe toccare `WEIGHT`/`W_TP01`/
|
||
`W_SKH` in `src/live/book.py`, cioe' **codice** su un percorso con soldi veri.
|
||
**⇒ La regola *"ogni cambio di SCALA passa dal cap di config, non da `target_vol`"* NON E'
|
||
IMPLEMENTABILE COME SCRITTA.** *Due mesi di discussione su un knob inesistente.*
|
||
**Il gradino a 1,25x e' AUTORIZZABILE A CONDIZIONE DI** costruire prima una **chiave di scala
|
||
esplicita** in config **e** rifare `r0726_fee_sensitivity`, la cui conclusione *"liquidation fee
|
||
irrilevante"* **vale solo a nozionale lordo ≤1x** (ed era gia' legata a un test di guardia sul cap).
|
||
⚠️ **Nota dovuta:** credendo **entrambe** le riserve insieme (drift −2SE **e** −10% annuo) il drift
|
||
atteso e' **−0,61%/anno** → *non e' il gradino a essere sbagliato, e' il libro; chi usa quella
|
||
combinazione sta chiedendo di spegnere anche il conto di oggi.*
|
||
🚨 **(5) IL FUNDING DEI PERPETUAL NON E' MODELLATO IN NESSUN BACKTEST — e tocca ogni numero del
|
||
progetto.** ✅ **Verificato:** **zero occorrenze** di `funding` in `src/backtest/harness.py`,
|
||
`src/strategies/trend_portfolio.py`, `src/portfolio/{sleeves,portfolio}.py` **e in tutto
|
||
`src/live/`**. **Il progetto ha prezzato fee, slippage, min-order, pavimento IB, haircut, fortuna
|
||
d'ancora, degrado d'esecuzione, look-ahead, split, rischio di venue e fisco — e mai il costo di
|
||
TENERE APERTA una posizione su un perpetual.**
|
||
✅ **MISURATO la notte stessa** (`r0822d_funding.py`, 1.212 righe, replica bit-exact 5/5, §35 del
|
||
registro): **il libro paga −2,16%/anno di DRIFT** (2019-2026) · **−1,39%** sulla sola finestra dello
|
||
strumento vero (≥2022-03) · **−0,55%** sul 2025+. **Il costo si cita con la finestra**, e il 2022 e
|
||
il 2026 costano ~0 **perche' il libro era FLAT**, non perche' il funding fosse sparito.
|
||
🚨 **Il meccanismo, ed e' trasferibile a ogni futuro candidato su perpetual: esposizione e funding
|
||
sono POSITIVAMENTE CORRELATI** — il tasso pagato davvero e' **1,86-2,55×** l'incondizionato per TP01
|
||
e **2,41-3,44×** per SKH01, quindi **il prodotto ingenuo "esposizione media × tasso medio"
|
||
sottostima di ~2×**.
|
||
❌ **Ipotesi da cui il filone era partito, FALSIFICATA: "SKH01 paga meno perche' sta a mercato il 12%
|
||
del tempo"** → paga **2,24%/anno contro 2,02%** di TP01, perche' quando e' a mercato sta a nozionale
|
||
**1,0×** (TP01 vol-targeted sta a **0,14×**) **ed entra sui breakout, cioe' quando il funding e'
|
||
caro**. **Il peso 75/25 NON si muove** (delta negativo a 23/23 offset per ogni w).
|
||
⚠️ **Il proxy Hyperliquid era 2,1-2,2× il venue vero** (14,8% contro 6,8-7,1% sulle stesse ore):
|
||
**due errori opposti — tasso troppo alto, esposizione condizionale troppo bassa — che quasi si
|
||
compensavano.** *Compensarsi non e' misurare.*
|
||
🚨 **NUMERI PUBBLICATI CHE CAMBIANO:** rendita perpetua **10,73% → 9,14%**; **muro $276,6k → $325,0k
|
||
(+17,5%)**; traiettoria da $600 a €250/mese **16,4a P(20a) 90% → 18,7a P(20a) 64%**; **soffitto
|
||
direzionale ~1,31 → ~1,15**. **NON cambiano:** peso 75/25, gradino di leva (k* 13,7→12,3), **maxDD
|
||
(+0,3pp)**, ordine delle leve del piano.
|
||
📌 **E' una tassa sul DRIFT, non sulla coda** — per questo colpisce i **muri** molto piu' dello
|
||
Sharpe, ed e' lo stesso ordine di grandezza della correzione d'ancora ×0,89.
|
||
⚠️ **QUESTA CORREZIONE E QUELLA DEL FISCO SI SOMMANO, E NESSUNA TABELLA PUBBLICATA LE CONTIENE
|
||
ENTRAMBE.** La riga "€250/mese" vale P(20a) **92% al lordo** · **52% col fisco** (07/08) · **64% col
|
||
funding** (22/08): **le due lenti sono state applicate separatamente allo stesso numero lordo**, e il
|
||
risultato congiunto sara' **peggiore del 52%**. **La tabella con entrambe non esiste ancora.**
|
||
✅ **Validato contro il conto vero per ELIMINAZIONE, non per grandezza:** modello vs `realized_pnl`
|
||
di sessione **ETH −0,2% / BTC −7,7%** (le finestre sbagliate sbagliano di 2-4×), e l'identificazione
|
||
regge perche' nella sessione ci sono stati **0 ordini** → il P&L di trading e' esattamente zero,
|
||
quindi quel campo non puo' essere P&L di trading. Convenzione `interest_8h` **verificata sui dati**
|
||
(mediana |dif| 2,2e-08 contro 1,1e-06). Funding realmente pagato dall'arming: **$0,22**.
|
||
⚠️ **BUG in famiglia gia' nota, catturato da un controllo positivo e non a occhio:**
|
||
`DatetimeIndex.astype("int64")` su tre serie con risoluzioni **diverse** (`[ms]`/`[us]`/`[s]`) dava
|
||
**0,000%/anno su SKH01** e **+1,229%/GIORNO su TP01** — **nessuna eccezione, nessun NaN, due numeri
|
||
plausibili in due punti diversi**. Stessa famiglia del `DatetimeIndex.view("int64")` codificato il
|
||
01/07. **Su un perpetuale lineare, inoltre, `diff(nozionale) < 0` NON e' una vendita: il nozionale
|
||
scende da solo quando scende il mark.**
|
||
✅ **SEGUITO 2026-08-22 notte — LA CHIAVE E' SPECIFICATA (`docs/research/SPEC-scale-key.md` +
|
||
prototipo isolato `r0822e_scale_proto.py`, zero scritture, isolamento verificato a runtime), con un
|
||
NODO IRRISOLTO.** Registro §38. Replica a k=1,00 **6/6** contro WORST-DAY.
|
||
⚠️ **CORREZIONE A UN NUMERO CHE AVEVO SCRITTO IO:** *"1,25-1,50x vale 14,7 → 11,6 anni, ~€300/mese"*
|
||
**fondeva due gradini** — a **1,25x** l'equivalente e' **+€164/mese**, il €282 e' del **1,50x**
|
||
🚨 **che il 23/08 e' stato BOCCIATO: la meta' cara della frase non esiste piu'.**
|
||
🚨 **RITOCCATO 2026-08-23 (§53), e il ritocco riguarda la CONVENZIONE piu' che il numero:**
|
||
il "+1,8 anni / +€164" e' la lettura a **muro CONGELATO** (si de-leva al traguardo) e §33 **non
|
||
dichiarava quale delle due letture stesse usando**. A **muro MOBILE** lo stesso gradino vale
|
||
**+2,98 anni**; con il **funding dentro**, +2,10a (congelato) / **+3,49a** (mobile).
|
||
**La differenza fra le due letture e' 1,2 anni — piu' grande di quasi tutti gli effetti che
|
||
questo progetto misura** ⇒ da qui in avanti un guadagno in anni si cita con la sua convenzione.
|
||
Il versamento equivalente **misurato direttamente** e' **+€144/mese**, non €164: la differenza
|
||
*e'* l'ipotesi di linearita' dell'interpolazione.
|
||
📌 **E il funding va nel verso opposto all'atteso: non riduce il gradino, lo AUMENTA** (peggiora
|
||
il caso base) — **ma il livello peggiora su tutta la colonna**: k=1,25 col funding (13,78a) resta
|
||
**peggio** di k=1,00 senza (14,81a). *Il gradino non ripaga il funding, lo attenua.*
|
||
🚨 **Tre risultati che il mandato non prevedeva:**
|
||
**(i)** `test_leva_massima_da_config_resta_sotto_o_uguale_a_1x` **NON si rompe, ed e' PEGGIO che
|
||
rompersi**: misura `frac · n_asset` mentre la grandezza vera diventerebbe `frac · n_asset · scala`
|
||
→ **continua a passare e smette di controllare**. **4ª occorrenza** della forma *"un controllo
|
||
puntato su una configurazione diversa da quella che gira"*. **Va cancellato con nota, non
|
||
aggiustato.**
|
||
**(ii) La guardia che morde per prima e' il DISASTER-SL, non il peggior giorno:** bound strutturale
|
||
k ≤ 3,49x, **disaster-SL k ≤ 1,67x = 2,1× piu' stringente** → **C1 di WORST-DAY guardava la
|
||
grandezza sbagliata**. Il tetto giusto e' l'invariante `n_asset · frac · scala · disaster_sl_pct
|
||
≤ 0,50`, che lega **tre** chiavi.
|
||
**(iii) Il tetto va sul PRODOTTO, non sulla chiave:** `frac=0,625` + `scala=1,25` = leva **1,562x**
|
||
e **passerebbe** un tetto *"scala ≤ 1,25"* — e WORST-DAY aveva appena pubblicato che alzare `frac`
|
||
da solo *"non produce k=1,25"*: **combinato con la scala lo produce eccome.**
|
||
📌 **Gate proposto `GATE SCALA-01`** (9 condizioni, fra cui **tetto sul prodotto** e **A6
|
||
anti-recency**: `k_ammesso` calcolato **togliendo gli ultimi 90 giorni** dev'essere ≥ k richiesto),
|
||
perche' **la scala e' invisibile a ogni gate esistente** — Sharpe **1,5051 identico a tutte le celle
|
||
di k**: `deflated_sharpe` e `marginal_vs_tp01` **non falliscono, non vedono la variabile**.
|
||
✅ `weights_tilt_null` invece **passa con potenza**: peso implicito TP01 **0,750000 a ogni k**,
|
||
`max|target(k) − k·target(1)| = 0`, e il **controllo positivo** (scala sulla sola gamba TP01 = cio'
|
||
che farebbe `target_vol`) lo porta a **0,789** e viene smascherato.
|
||
✅ **IL NODO E' SCIOLTO (2026-08-23, `r0823_sl_anchor.py`, §40) — E LA DICHIARAZIONE DI
|
||
NON-MISURABILITA' ERA FALSA: IL LOG BASTAVA.** *(3ª conferma della regola del 26/07: un blocco
|
||
dichiarato e' un'IPOTESI, non un fatto.)*
|
||
📌 **L'attesa e' stata scritta PRIMA di guardare, derivata dal codice, e ha predetto le soglie
|
||
esatte:** rotolante e **simmetrico**, innesco **+5,263%** / **−4,762%** (il fattore 0,70 si semplifica
|
||
e la condizione diventa una condizione **sul mark**, non sullo stop).
|
||
**Il fatto e' confermato:** su 1443 giri i 15 `placed` sono **5 aperture + 7 ribilanci + 3 A POSIZIONE
|
||
FERMA** (21/08, `HOLD (a target)`, **0 ordini**, trigger spostato di **+5,74/+5,81/+5,38%** = appena
|
||
sopra la soglia predetta); e sul venue **l'ordine di stop e' 2,5 giorni piu' giovane della posizione
|
||
che protegge**.
|
||
🚨 **MA IL TIMORE E' REFUTATO, e va nel verso OPPOSTO:** uno stop che segue il prezzo **si allontana
|
||
dal mercato, quindi scatta MENO**. Alla cadenza che gira (**1h**) gli episodi su storia reale sono
|
||
**0-1 contro 1 del pavimento**, mai piu' di 1 in 30 giorni; e **nell'outage — l'unico scenario per cui
|
||
il bracket esiste — il ri-ancoraggio e' SPENTO per costruzione** (nessun giro, nessun ri-piazzamento)
|
||
⇒ **un episodio solo**. **Il 37,5% resta il costo di un episodio singolo, il margine 1,33× e' quello
|
||
vero, la gamba di WORST-DAY REGGE.**
|
||
🚨 **Due cose indipendenti da k, da sapere comunque:** (i) **il nome inganna** — *"disaster-SL −30%"*
|
||
suggerisce un massimo di perdita per trade che **non esiste**: su cicli a ingresso proprio il rotolante
|
||
lascia passare perdite oltre −30% **senza scattare** nel **0,03%/0,96-2,84%/7,22-13,33%** dei cicli
|
||
(24h/7g/30g) e il peggior DD dall'ingresso e' **−60,6% BTC / −61,5% ETH**; (ii) 🚨 **TRAPPOLA VIVA:
|
||
l'accumulo e' funzione della CADENZA DEL CRON, e il docstring di `book_execute.py` prescrive "ogni
|
||
~230 minuti" mentre il cron gira OGNI ORA** — chi "correggesse" la cadenza verso il docstring
|
||
sposterebbe il libro sulla riga **4h, dove BTC RADDOPPIA gli scatti** (2 contro 1; a 24h ETH arriva a
|
||
5). **Il docstring e' sbagliato e la configurazione che gira e' quella giusta.**
|
||
⚠️ **Limite dichiarato: 0 ri-ancoraggi verso il BASSO osservati su 3** — 2 mesi di vita del libro in
|
||
**un solo regime** (BTC ~$66,5k → ~$78,6k), mai un calo del mark >4,76% con posizione aperta. **La
|
||
simmetria e' un fatto di CODICE** (un solo `abs()`, esercitato in entrambi i versi), **non un fatto
|
||
OSSERVATO**: la prima osservazione utile arriva al primo ribasso >5% con posizione aperta.
|
||
**Seconda soglia dichiarata:** il fallback dell'equity oggi scatta **0 volte su 1.442 giri**; sopra
|
||
il **2% dei giri in 90 giorni** il libro girerebbe a leva **mista** e `g(k)` smetterebbe di
|
||
descriverlo.
|
||
**REGOLE NUOVE:** (a) **una data in un gate va giustificata col COSTO della misura, non con la sua
|
||
difficolta' percepita** — due gate d'attesa eliminati in una sera perche' nessuno aveva contato i
|
||
secondi; (b) **una verifica esterna a €0 va fatta PRIMA di qualunque misura che ne dipenda**, e si
|
||
fa **sul venue, non sul sito** di chi la dichiara; (c) **un gate superato non e' un numero
|
||
confermato**: differenze e livelli ereditano la fortuna d'ancora in modo diverso; (d) **un veto
|
||
d'integrita' sorveglia l'asse su cui e' stato scritto** — contare *se* il dato c'era non dice
|
||
*quanto* del giorno copriva; (e) **una regola operativa va provata contro il codice che dovrebbe
|
||
eseguirla**, o si discute per mesi di un knob che non esiste; (f) **quando due stimatori di coda non
|
||
concordano si cita la banda**, non quello che conviene.
|
||
|
||
- 🌊 **QUINTA ONDATA 2026-08-23 (12 filoni + critico di chiusura, `research/wave-0822`) — 0
|
||
candidati su **57 filoni cumulativi**, 1 candidato scoperto GIA' IN PRODUZIONE SENZA GATE, il
|
||
gradino di leva delimitato, e un critico che ha falsificato **due sue attese e tre miei numeri**.**
|
||
Diario `docs/diary/2026-08-23-wave-chiusura-critico.md`; registro `docs/research/RESULTS-0822.md`
|
||
§46-57; 17 script `scripts/research/r0823_*.py` (15.443 righe, compilano tutti, ognuno gira da
|
||
solo). **Libro, pesi, cron, config INVARIATI.**
|
||
🚨 **(1) IL RISULTATO PIU' IMPORTANTE NON E' UNA STRATEGIA NUOVA: E' CHE LA PIU' FORTE GIA'
|
||
MISURATA GIRAVA SENZA GATE.** §50 cercava il miglior TERZO sleeve eseguibile a $635: sette
|
||
candidati, **sette muri diversi, e nessuno dei sette e' una soglia di capitale**. Il piu' forte —
|
||
**PREVDAY** — sta in monitor **da giugno senza gate pre-registrato e senza deflated-Sharpe**.
|
||
§54 gliene ha scritto uno (`GATE PREVDAY-01`, **8/10 condizioni oggi**) e le due che mancano sono
|
||
**la stessa cosa**: 🚨 **la cella che GIRA non e' quella che la selezione onesta sceglie** (e la
|
||
cella viva **fallisce il DSR**, 0,905), e la selezione onesta compra il libro **LONG-FLAT** —
|
||
cioe' butta via proprio la gamba per cui PREVDAY fu promosso. ✅ La serie e' **intatta, 1512 barre
|
||
su 1512** (e' il monitor sano, quello che il difetto `advance()` non tocca) ⚠️ **ma la finestra e'
|
||
0,172 anni → MDE 4,72 di Sharpe: il +2,11 forward non e' distinguibile da zero su 26 ENTRY.
|
||
Qualunque cosa il gate decida, non puo' appoggiarsi al numero forward.**
|
||
🚨 **(2) IL GRADINO DI LEVA E' DELIMITATO: 1,25x REGGE, 1,50x E' BOCCIATO, k max difendibile
|
||
1,40.** §53 lo attacca 6 volte col funding dentro: **5/6 falliscono**; il 1,50x cade sul peggior
|
||
giorno strutturale (**21,48% > 20%**). L'incrinatura e' il ramo **`eq_fallback`**, dove **la scala
|
||
non apre il buco: lo MOLTIPLICA**. ✅ Aritmetica dei tetti verificata sul config che GIRA, 3/3 al
|
||
centesimo: disaster-SL ⇒ **k ≤ 1,67** · peggior giorno ⇒ k ≤ 3,49 · scettico ⇒ **k ≤ 1,40**.
|
||
❌ **(3) TRE MECCANISMI DI PROTEZIONE REFUTATI, E DUE PER LA PREMESSA.** **TAIL-HEDGE (§46):** la
|
||
premessa cade **prima del prezzo** — il maxDD **SALE in 162/162 celle**, a ogni lente di f (f=1,00
|
||
regalato compreso), perche' il beta del libro al sottostante e' **+0,076**: *non si assicura un
|
||
libro che nei crash e' gia' quasi piatto*. **TP01-TWIN (§49):** un ensemble di definizioni di
|
||
trend protegge **PEGGIO** — 0/24 ancore nei 4 anni recenti, **3,2x peggio nel 2022**, −0,127 di
|
||
Sharpe hold-out; e i meccanismi **non erano ridondanti** (corr di posizione 0,61): la ridondanza
|
||
non era il problema. **ANCHOR-ENSEMBLE (§47):** eseguibile, ma su TP01 il drift **non puo'**
|
||
cambiare per **algebra** (`lordo_ens == media(lordi)`, residuo 1,4e-17); il segnale c'e' su
|
||
**SKH01** (+0,312 di Sharpe mediano, maxDD 23,3%→16,6%) ma dentro il libro **non si distingue da
|
||
zero**.
|
||
📌 **(4) IL LEAD DELLO SPOT MUORE DOVE SERVIREBBE.** §52 lo attacca sei volte: **5/6 falliscono**,
|
||
e cio' che morde non e' nei numeri — e' **nella taglia a cui vengono spesi**. **Regge a $600, si
|
||
annulla a $272k**: sparisce **esattamente al muro che pretende di spostare.**
|
||
✅ **(5) IL COSTO D'ESECUZIONE ENDOGENO NON MORDE (§55):** muro **+0,6%** (dentro la risoluzione
|
||
MC), saturazione a **$9,5-10M = 30x sopra**, e il fatto trovato per strada — **alla taglia di oggi
|
||
il costo mancante ha SEGNO NEGATIVO**: il drift a $635 e' **13 bps/anno piu' basso** che a $5.000
|
||
per il pavimento `min_order` $5, **~2x** quello che lo slippage costa da $313k a $1M, in direzione
|
||
opposta. *Il conto piu' preciso non muove il muro: sposta il segno dell'errore, e a questa taglia
|
||
lo sposta a favore.*
|
||
❌ **(6) DUE CHIUSURE DI FAMIGLIA.** **VOLVOL (§48):** la volatilita' del DVOL e' davvero una
|
||
variabile **NUOVA** (ortogonalita' PASS, max |corr| 0,396) ma **guarda INDIETRO** — picco a lag
|
||
**−5/−10**, parziale con la vol futura **NEGATIVA**: *un secondo momento non e' automaticamente
|
||
informazione anticipata*. ⚠️ Ma il filone lo **chiude** su una branca dove dichiara esso stesso
|
||
**un fattore 44 sotto l'MDE**: e' un'etichetta piu' forte della misura.
|
||
**XS-AMPIEZZA (§56):** su 11 gambe **la caduta NON era ampiezza — solo il 14%**: e' **selettivita'**
|
||
(recuperabile, ma sotto l'MDE) **piu' un IC che su quelle gambe vale ZERO**. 🚨 E **`k=5` non e'
|
||
invariante di scala**: il numero di gambe per lato di XS01 e' tarato su 19 gambe, non e' una
|
||
proprieta' del meccanismo.
|
||
📌 **(7) SOLO 2 FONTI SU 10 MERITANO DI ESSERE RACCOLTE (§51):** la catena **USDC** (**+18% di
|
||
chiamate, non +90%**) e una **campagna a termine** di book depth. Il criterio di
|
||
**ricostruibilita'** ne uccide 4 da solo — *se lo puoi ricostruire domani, non raccoglierlo oggi*.
|
||
⚠️ **(8) ERRORI MIEI, corretti dentro l'ondata** (tutti numeri gia' pubblicati, due in questo
|
||
file): (a) **"la convinzione di TP01 sta spesso a 1/3 o 2/3"** — **falso**, `tsmom_blend` media
|
||
tre `np.sign()` → direzione in {0, 1/3, 1} dopo il clip: **il bucket 2/3 NON ESISTE**, la famiglia
|
||
ha **UN** grado di liberta'; trovato **indipendentemente da due agenti**. (b) **catena USDC "+90%
|
||
di chiamate"** → **+18%** (i 587 erano il conteggio grezzo, senza il filtro OI≥100 del
|
||
collettore; al venue: **113 USDC contro 649 inverse**). (c) **"le opzioni BTC sono fuori a $3.000
|
||
per il lotto"** → quello e' il **collaterale per VENDERE**; comprare costa il **premio**
|
||
(`min_trade_amount` 0,01) e **il muro vero e' il TICK da 5,00 USDC** (una put che vale 0,82 non e'
|
||
quotabile sotto 5 = pavimento di prezzo **6x**). (d) **"il gradino vale +1,8a / +€164"** — era la
|
||
lettura a **muro FERMO**, convenzione **mai dichiarata**; a muro mobile fa **+2,98a**, e le due
|
||
distano **1,2 anni**. (e) **"la coda muove k\* di 1-2 unita'"** → **4,6**.
|
||
🚨 **(9) IL CRITICO DI CHIUSURA (§57) — repliche 6/6, ma tre numeri di testa vanno riscritti.**
|
||
✅ Ha **riprodotto con macchineria propria** i quattro muri **al dollaro**, il funding
|
||
(**−2,1597%/anno**, e da implementazione indipendente TP01 2,138% con rapporto condizionale
|
||
1,93x/2,58x), il dShFULL di §42 (**−0,4502**) e ✅ **che il muro E' esattamente
|
||
`prelievo/perpetua`** su 4 lenti su 4 — *il nucleo quantitativo dell'ondata regge*. Le tre cose
|
||
che cambiano — **la banda del muro**, **«N/N ancore» = ~2 osservazioni** e **il 1,50x bocciato** —
|
||
sono gia' scritte nei bullet a cui appartengono, sopra. In piu': **tre baseline diverse sotto lo
|
||
stesso nome «libro 75/25»** (`hourly` 1,683/11,22% = la lente di **ogni muro e traiettoria** ·
|
||
`canonical` 1,800/9,56% · mediana d'ancora 1,626/10,4%) — **spread 0,12 di Sharpe e 1,7pp di
|
||
maxDD, piu' grande di quasi tutti gli effetti che l'ondata misura**, quindi *un Δ accostato al
|
||
baseline sbagliato cambia piu' del Δ*: **ogni numero va scritto con la sua lente attaccata**.
|
||
⚠️ E il **pilastro del canale funded** (§21, XS01 fuori campione) ha effetto **+1,12 contro un MDE
|
||
di 1,13**: sta *esattamente* al proprio limite di rilevabilita', e viene propagato fino a
|
||
P(≥50 €/g) come se fosse noto a due cifre. *(Equita': §21 gira anche un null di permutazione a fee
|
||
zero, p=0,013, che ha piu' potenza del t-stat — il problema non e' «nessuna evidenza», e' la
|
||
precisione attribuita al livello.)*
|
||
✅ **A credito dell'ondata: quattro auto-correzioni in 24 ore** (§45 falsificato da §52; §39
|
||
falsificato lo stesso giorno; la regola «overlay non causale» ritirata; «`dealer_net_gamma` e' il
|
||
GEX invertito» ritirata leggendo il sorgente). **E' il dato piu' sano dell'ondata.**
|
||
🚨 **(10) LA RISPOSTA AL MANDATO, in una sola unita' (€/giorno a $635):** gradino di leva 1,25x
|
||
**+0,046** · lead SPOT +0,017 · PREVDAY al 15% de-luckato +0,014 · BIN-FREQ +0,011 · MAKER +0,005
|
||
· **funding (costo scoperto) −0,023**. **Somma di TUTTI i lead positivi, se fossero autorizzati e
|
||
additivi (non lo sono, e nessuno e' eseguibile oggi): +0,036 €/giorno.** Sullo stesso motore e
|
||
sugli **stessi percorsi**: **€250 → €500 al mese porta P(20a) dal 14% all'85% e la mediana da 23,4
|
||
a 17,3 anni.**
|
||
**VERDETTO DELL'ONDATA: `NIENTE CHE AVVICINI I 50 €/GIORNO.`** Ha prodotto (i) un **costo gia' in
|
||
essere** che porta P(20a) a €250/mese dal 49% al **14%** (il funding), (ii) **quattro monitor
|
||
rotti** che avrebbero fatto decidere un gate al contrario, (iii) un **punto singolo di guasto**
|
||
nella rete di sicurezza (il trasporto degli allarmi), (iv) **tre lead reali tutti bloccati da
|
||
qualcosa che non e' la ricerca**. **Il suo valore e' DIFENSIVO ed e' reale: ha impedito decisioni
|
||
sbagliate.** ❌ E **nulla di sepolto sotto uno «SCARTATO» merita di essere riesumato**: il
|
||
candidato piu' forte non promosso vale **+0,014 €/g** de-luckato e gira la cella sbagliata.
|
||
📌 **La riga che chiude cinque ondate e 57 filoni: la ricerca ha smesso di essere il vincolo
|
||
binding il 26/07, e ora cinque ondate lo hanno CONFERMATO invece che ribaltarlo. I vincoli binding
|
||
restano due: il capitale che entra e il conto che non sparisce.**
|
||
|
||
- 🌊 **SESTA ONDATA 2026-08-23 (12 filoni, §58-69, `research/wave-0822`) — 0 candidati su **69
|
||
cumulativi**, 1 finding che riguarda l'OBIETTIVO stesso, 2 appoggi tolti a decisioni gia' prese.**
|
||
Registro `docs/research/RESULTS-0822.md` §58-69 + sezione di sintesi in fondo; 12 script
|
||
`scripts/research/r0823b_*.py`. **Libro, pesi, cron, config INVARIATI.**
|
||
⚠️ **PROVENIENZA DIVERSA DA OGNI ALTRA ONDATA, e va detto per primo:** la sessione si e' chiusa
|
||
dopo che gli agenti avevano scritto gli script e **prima** che i verdetti fossero consolidati —
|
||
le 12 righe restarono `_in corso_` e **i messaggi finali degli agenti sono persi**. I verdetti
|
||
pubblicati **non vengono da quei messaggi: vengono da una RIESECUZIONE dei 12 script** (07:38-08:06
|
||
UTC, sequenziale; log in `logs/r0823b/`, che e' **gitignored** ⇒ il registro e' l'unica copia
|
||
versionata). 📌 **La regola del 26/07 — *un numero pubblicato deve avere uno script committato che
|
||
lo riproduce* — e' cio' che ha impedito la perdita dell'ondata.** Estensione: **un'ondata
|
||
interrotta si recupera solo se ogni script calcola il proprio verdetto a RUNTIME**, non se il
|
||
verdetto vive nel messaggio dell'agente.
|
||
🚨 **(1) §58 — L'OBIETTIVO DEL PROGETTO HA DUE DEFINIZIONI OPERATIVE IN USO, E DANNO 33,9% CONTRO
|
||
0,33% SULLA STESSA DOMANDA.** A **FLUSSO** (quanto esce al mese: la lente del canale funded) il
|
||
massimo a 36 mesi e' **33,9%**; a **RICCHEZZA SOSTENIBILE** (la lente dei muri e del piano) e'
|
||
**0,33%**. **Per cinque ondate i due corpi di lavoro sono stati confrontati come se parlassero
|
||
della stessa cosa.** E l'ottimo di `P(>=50/g)` **non e' l'ottimo di J**: 37,3% contro 13,9% alla
|
||
leva argmax-J. Il libro di oggi a 36 mesi: mediana **0 EUR/g** di flusso (non preleva), capitale
|
||
mediano $22.467 = **3,59 EUR/g** di rendita. **REGOLA: un obiettivo si dichiara nella sua
|
||
definizione operativa PRIMA di ottimizzarlo** — qui due definizioni entrambe difendibili
|
||
differiscono di **cento volte**.
|
||
📌 **(2) §61 — la politica di ri-acquisto dei biglietti era CABLATA e mai dichiarata come scelta**
|
||
(compra subito, il piu' grande, in tutti e 6 gli slot, con qualunque soldo): e' **la piu'
|
||
aggressiva della famiglia**, e **da li' escono TUTTI i numeri del canale funded**. Mappata la
|
||
famiglia (7 tempi x 2 taglie): **il massimo di famiglia E' il cablato** (4,0%), spread 4,05pp,
|
||
prezzo della prudenza 4,05pp di bersaglio per 2,05pp di rovina; «solo dai payout» **non vincola
|
||
nulla** a $654 (dopo il primo biglietto restano $75, sotto il piu' economico). **La riga che il
|
||
filone stampa da solo: ottimizzare la politica vale +0,00 EUR/g, versare EUR 500/mese ne vale
|
||
+15,75.**
|
||
🚨 **(3) §67 — IL MURO DI TAGLIA NON NASCONDEVA NIENTE, e il perche' e' metodologico:** a $100.000
|
||
nessun archiviato passa, **non perche' sia stato ricontrollato ma perche' i gate pubblicati erano
|
||
GIA' calcolati sulla serie MODELLATA, che e' il limite a capitale infinito**. Censimento 14 voci,
|
||
**12 con un rifiuto ANCHE sull'edge**; delle 2 in cui la taglia era l'unico motivo nessuna e' una
|
||
strategia (XS01, GTAA01). Muri di taglia caduti **5 su 14, tutti nell'ondata 22-23/08**.
|
||
⚠️ **Cio' che TOGLIE: il gate pre-registrato XSR01 del 23/10 legge un monitor tarato sul pavimento
|
||
del venue SBAGLIATO** — C* vero **$15.000-20.000** contro i ~$3.000 riportati da HL-EXEC con un
|
||
criterio piu' permissivo. **Decisione dell'operatore:** riscrivere la soglia **adesso**, dichiarando
|
||
che la si riscrive prima di vedere l'esito, oppure lasciarla e **citare il difetto alla decisione**
|
||
— non c'e' una terza via pulita, e toccarla guardando l'esito sarebbe selection-on-holdout.
|
||
🚨 **(4) §64 — LE DUE SUPERFICI OPZIONI SONO LA STESSA SUPERFICIE** a strike appaiati, su entrambi
|
||
gli assi (prezzo equo identico per costruzione; mezzo-spread Δ **−0,21/−0,38 pp**; `f_venue` Δ
|
||
**+0,005/−0,011**) ⇒ **la raccomandazione di §51 (raccogliere la catena USDC, +18% di
|
||
chiamate/giro) NON e' giustificata dalla ragione che porta**: il `f` di VRP01 misurato
|
||
sull'inverse **non e' «il numero della famiglia sbagliata», e' lo stesso numero**.
|
||
⚠️ **(5) §60 — la politica multi-conto MISTO, scelta il 25/07, NON e' piu' l'ottimo:** oggi vince
|
||
**MISTO-A** (`P(>=50/g)` **9,27%** contro 6,60%) su 288 celle; **mediana 0,00 EUR/g in tutte e sei**.
|
||
🚨 **(6) §63 — IL FORFAIT 33% E' LA CASELLA SBAGLIATA per i payout di una prop firm:** il trader
|
||
**non possiede il conto ne' le posizioni** ⇒ nessun realizzo di cripto-attivita', e **`c-sexies`
|
||
(33%) e `c-quater` (26%) sono ENTRAMBE fuori categoria**; le fonti convergono su **LAVORO
|
||
AUTONOMO** e **nessuna prassi ufficiale esiste**. ✅ La conclusione di §37 regge su tutta la banda;
|
||
il costo della questione vale **−8,21 EUR/g** fra i due estremi. 📌 **Domanda NUOVA al
|
||
commercialista, DIVERSA da quella aperta il 07/08** sui derivati.
|
||
⚠️ **(7) §69 SCETTICO — replica (3,4% contro il 2,6% pubblicato) e poi toglie precisione:** SE del
|
||
drift di XS01 **9,6%/anno** ⇒ a −1 SE `P(>=50/g)` **1,6%**; morte-firm da evidenza pubblica
|
||
**12-19%/anno** contro il **10% assunto** (EV regge, break-even >55%); max-J dal **puro rumore** su
|
||
360 celle **0,069** contro **0,303** osservato. **Raccomanda di non cambiare nulla.**
|
||
🚨 **E il pattern conta piu' del singolo numero: 42% → 7,8% → 4,4% → 2,6% → 1,6% a −1 SE. Ogni
|
||
volta che il numero del canale funded e' stato misurato meglio e' SCESO, e non ha ancora smesso.**
|
||
E' la firma di un numero che vive di ottimismo non ancora misurato, non di una stima che converge.
|
||
❌ **(8) GLI ALTRI CINQUE, tutti negativi.** **§59** a regime servono **4 conti da $100k** (i cap di
|
||
2 firm) e `P(>=50/g)` **SATURA all'87%** — *non e' una rendita, e' una scommessa ingrandibile ma non
|
||
rendibile affidabile*; da EUR 635 **1,78 EUR/g mediani**. **§62** la frazione del versamento verso i
|
||
biglietti e' segnale sul FLUSSO (**+16,3 pp**, risoluzione MC 1,0) ma **0,0 pp** sulla RENDITA e
|
||
**+12,4 pp** di `P(sotto il versato)`. **§65** la forma della curva dei datati **e' un grado di
|
||
liberta' nuovo** (scorrelato dal funding, A2 confermata piu' forte dell'atteso) **e non predice
|
||
nulla**: 0 candidati su 4 rami, DSR 0,108, roll 0,49%/anno = l'ordine del premio. **§66**
|
||
cross-venue: 2 celle su 8 sopra la propria MDE, **manca un fattore 6,5x** (16,2x per l'arbitraggio),
|
||
e *per entrare si attraversano gli stessi due book che generano lo scarto*. **§68** il paniere dei
|
||
quasi-passati fa FULL 1,822 / HOLD 1,323 ed e' al 100° pctl contro gli scartati netti, **ma DSR
|
||
0,828-1,000 secondo la PARTIZIONE** (lo stesso difetto del 22/08, applicato al paniere che dovrebbe
|
||
superarlo) e **dipende da UNA gamba** (PREVDAY).
|
||
⚠️ **(9) UN FILONE E' MORTO SU UN BUG E LA CORREZIONE E' DEL COORDINATORE, non dell'autore.**
|
||
`r0823b_quasi_passati.py` terminava con `IndexError: Boolean index has wrong length: 958 instead of
|
||
2720` — `Griglia.combo()` indicizzava con `self.idx` (l'unione) un **sottoinsieme di righe**.
|
||
Corretto col parametro `idx` esplicito **piu' un controllo di lunghezza**; la rinormalizzazione e'
|
||
**riga per riga**, quindi i valori sono quelli dell'intento dell'autore. **Il verdetto di §68 va
|
||
letto sapendo su quale codice gira.**
|
||
📌 **(10) LA RIGA DELL'ONDATA.** Dodici filoni, zero candidati, **nessun EUR/giorno prodotto**: il
|
||
valore e' interamente **DIFENSIVO** (§67 e §64 tolgono due appoggi, §69 toglie precisione, §60
|
||
toglie un ottimo). **Con questa sono 69 filoni e 0 candidati promossi.** La ricerca ha smesso di
|
||
essere il vincolo binding il 26/07 e **sei ondate lo hanno CONFERMATO invece che ribaltarlo**;
|
||
previsione verificabile registrata: **la 70ª dara' la stessa risposta**. I vincoli binding restano
|
||
**il capitale che entra** e **il conto che non sparisce**.
|
||
|
||
- 💡 **EVITARE IL FUNDING — datati SCARTATI, ma lo SPOT e' un LEAD e la domanda fiscale vale piu' del
|
||
risparmio (2026-08-23, `r0822e_funding_avoid.py`).** Registro §39. **Libro/pesi/cron/config
|
||
INVARIATI.** Primo filone della sessione che poteva **restituire** drift invece di toglierlo.
|
||
**Il segnale resta CONGELATO** (TSMOM 30/90/180, vol-target 20%): cambia solo lo **strumento**.
|
||
| variante | ShFULL | ShHOLD | drift | Δdrift | muro |
|
||
|---|---|---|---|---|---|
|
||
| **A) perp (oggi)** | 1,513 | 1,154 | 17,08% | — | **$325,0k** |
|
||
| D) TP01 datato + SKH01 perp | 1,507 | **1,118** | 17,53% | +0,47% | $319,5k |
|
||
| **E) TP01 SPOT + SKH01 perp** | **1,649** | **1,203** | 18,63% | **+1,55%** | **$289,6k (−10,9%)** |
|
||
| F) nessun carry (irreale) | 1,692 | 1,214 | 19,24% | +2,16% | $276,6k |
|
||
❌ **DATATI: NON CONVIENE.** La tesi condizionale **regge** (funding condizionale **1,94×/2,59×**
|
||
l'incondizionato — ✅ replica indipendente del 1,86-2,55× — contro basis **1,47×/1,66×**: in
|
||
**livello** i carry sono identici, il datato vince **solo perche' si riprezza meno**), ma il
|
||
vantaggio e' **tutto 2019-2023**, ~0 o avverso dal 2024 → **ShHOLD −0,034 negativo a 0/23 offset** e
|
||
**gate iso-volatilita' FALLITO**. SKH01 sui datati **peggiora** (turnover **48-57×/anno** contro
|
||
6,6-8,4× di TP01 → lo stesso mezzo spread gli costa **7 volte tanto**).
|
||
💡 **LEAD: lo strumento a carry ZERO esiste ed e' lo SPOT** (`BTC_USDC`/`ETH_USDC`, taker **0,0**
|
||
oggi, min 0,0001). TP01 e' long-flat e supera 1,0× nello **0,102%** dei giorni → il tetto non morde;
|
||
**+1,55%/anno di drift a volatilita' IDENTICA** (supera il gate iso-vol), muro **−10,9%**.
|
||
⚠️ **NON e' un candidato, tre ragioni dichiarate:** (a) **SKH01 non e' esprimibile sullo spot**
|
||
(long/short); (b) la **fee 0 e' dichiarata temporanea** e **`fee_watch` non sorveglia lo spot** —
|
||
se sparisse, **−13% del vantaggio** (misurato); (c) 🚨 **la domanda fiscale aperta vale PIU' del
|
||
risparmio**: se i derivati sono `c-quater` (26%) e lo spot `c-sexies` (33%), **7 punti su un CAGR
|
||
del 17,9% = ~1,25%/anno**, cioe' **piu' di quello che lo spot porta** → **la domanda al
|
||
commercialista viene PRIMA di qualunque prova**, ed e' la stessa gia' aperta dal 07/08.
|
||
🚨 **MURO EREDITATO FALSIFICATO (correzione a §34, scritto poche ore prima):** *"tutti i futures
|
||
datati Deribit sono INVERSE, non esiste una linea USDC datata"* e' **FALSO** — esistono **16 datati
|
||
USDC su BTC/ETH** (il piu' vecchio `BTC_USDC-25SEP26`, creato **2026-05-07**), taker **identico al
|
||
perpetual**, min 0,0001 BTC / 0,001 ETH. ✅ Verificato con GET pubblica. **La svista e' di
|
||
NAMESPACE:** `get_instruments?currency=BTC` **non li ritorna**, stanno sotto **`currency=USDC`** —
|
||
*e il coordinatore ha commesso la stessa svista al primo controllo, ottenendo 0.* **Il muro vero e'
|
||
un altro: 3,5 mesi di vita e ZERO roll trimestrali mai eseguiti.** *(6ª volta nell'ondata che
|
||
l'eseguibilita' non e' il vincolo.)*
|
||
📌 **REGOLA: il carry si misura sul LOG del rapporto dei prezzi, mai sulla media aritmetica delle
|
||
differenze** — quella contiene `(var A − var B)/2`, che qui vale **1,48%/2,60% l'anno = 2-4×
|
||
l'effetto cercato**. Controllo che lo rende visibile: col metodo aritmetico il perpetual
|
||
"sovra-rende" il proprio indice di +0,4/+0,5%/anno, col log ~0. **Stessa forma della regola UCITS
|
||
del 26/07**, in veste nuova.
|
||
⚠️ **BUG in famiglia gia' nota, e NON visto dal numero:** `fund_*.parquet` etichetta l'indice
|
||
**all'istante T**, `al.get(a,'1h')` la barra **all'inizio** → appaiarle **sfasa di un'ora**
|
||
(corr **0,996 al lag +1**, ~0 al lag 0), gonfia la sd della base da 8 a **68-86 bps** e produceva un
|
||
finto **+0,32%/anno nel verso atteso**. 📌 **Si e' visto dalla VOLATILITA' (+1,07pp su una strategia
|
||
identica), non dal numero.** Il pezzo vero vale **+0,07%/anno**. **REGOLA: due serie temporali dello
|
||
stesso progetto possono avere convenzioni di etichettatura diverse — verificare col LAG, non
|
||
fidarsi dell'indice.**
|
||
|
||
- **Sweep "strategie alternative" (2026-06-20) — 104 ipotesi / 153 agenti / NIENTE di nuovo regge.**
|
||
Ricerca onesta a largo spettro su BTC/ETH+DVOL (harness condiviso vettoriale leak-free
|
||
`scripts/research/alt/altlib.py`, 104 script in `scripts/research/alt/runs/`): 11 famiglie
|
||
(breakout, trend non-TSMOM, mean-rev gated, DVOL/vol, cross-asset pairs, stagionalità, overlay
|
||
rischio, opzioni modellate, microstruttura, ML walk-forward, combo). 16 promettenti, **1 sola**
|
||
sopravvissuta alla verifica avversariale (3 scettici) e comunque NON deployabile. Conferma forte
|
||
del soffitto ~1.3: ogni PASS era hold-out-fitting o **TP01/TSMOM travestito** (trend-beta del
|
||
toro). Unico LEAD: **STA05** (EWMA-cross ensemble, **long-short**) — leak-free, plateau, corr
|
||
hold-out **0.53** a TP01, il blend 0.75·TP01+0.25·STA05 alza l'hold-out 0.31→0.59 (full 1.30→1.24,
|
||
DD 14→16%); MA hold-out corto (536g) → **forward-monitor, non sleeve.** Lezione harness: valutare
|
||
lo Sharpe **MARGINALE vs baseline TP01** (non assoluto) + esigere plateau e jackknife
|
||
drop-one-month sull'hold-out prima di PASS (hanno ucciso 13/14 falsi positivi). Diario
|
||
`2026-06-20-alt-strategies-100agent-sweep.md`.
|
||
|
||
---
|
||
|
||
## 2026-08-25 — «Mettere l'ETF nei giorni in cui il libro è flat»: SCARTATO
|
||
|
||
Script `scripts/research/r0825_capitale_fermo.py` (calcola il proprio verdetto a runtime).
|
||
Nasce da un'osservazione dell'operatore: il libro live sta **flat il 28,0% dei giorni** sull'intera
|
||
storia (**75,6% nel 2026**, 77,0% nel 2022) → quel capitale fermo è un'occasione?
|
||
|
||
### L'esito, a ISO-RISCHIO (vol 11%, M6)
|
||
|
||
| linea | drift | Sharpe | maxDD |
|
||
|---|---:|---:|---:|
|
||
| BOOK da solo | 14,80% | **1,35** | **−12,1%** |
|
||
| 50/50 statico | 15,41% | **1,40** | −19,6% |
|
||
| **DINAMICO (ETF se flat)** | 11,13% | **1,01** | −14,7% |
|
||
| ETF da solo | 9,53% | 0,87 | −20,2% |
|
||
|
||
**Il dinamico perde contro entrambi.** E il null a maschera casuale (400 estrazioni, stessa quota
|
||
28,0%, stessa struttura a blocchi di 20g) lo mette al **30° percentile**, p 0,698: **fa peggio di
|
||
una maschera a caso della stessa frequenza**.
|
||
|
||
### I motivi — cioè quello che chi riapre il tema deve battere
|
||
|
||
- 🚨 **A ISO-NOZIONALE il dinamico SEMBRAVA vincere**: drift **17,09%**, il più alto di tutti. Ma
|
||
aveva anche la vol più alta (16,90%). È esattamente la trappola di **M6**: a iso-nozionale un
|
||
veicolo a vol bassa perde per costruzione e uno a vol alta vince per costruzione. *Il de-levering
|
||
è il PRIMO test, non l'ultimo.*
|
||
- 🚨 **IL MECCANISMO CHE SEMBRAVA OVVIO NON ESISTE.** Aggregato: nei giorni flat l'SPY rende
|
||
**4,91%**, negli altri **21,48%** → differenza **−16,57%**, e la storia si scrive da sola («il
|
||
libro va flat quando anche l'azionario soffre»). **Falsa.** Scomposta per anno il segno
|
||
**ALTERNA — 3 anni su, 4 giù** — e il **2022**, l'anno che doveva reggerla (77% flat, SPY −18,2%),
|
||
ha il segno **OPPOSTO** (+39,9%: nei giorni flat l'azionario andava *meglio*).
|
||
L'aggregato è un **artefatto di composizione**: i giorni flat si concentrano negli **anni** a
|
||
basso rendimento azionario, non nei **giorni** a basso rendimento. È **M9** che fa il suo lavoro.
|
||
- **La spiegazione vera è meccanica e non serve una storia:** scambiare un asset a Sharpe 1,35 con
|
||
uno a Sharpe 0,87 per il 28% del tempo abbassa lo Sharpe della miscela. Punto.
|
||
- 📌 **La flat-ness del libro NON porta informazione sull'azionario, in nessuna direzione.**
|
||
|
||
### Due cose utili cadute fuori dal test
|
||
|
||
1. **Il 50/50 statico batte il libro sullo Sharpe (1,40 vs 1,35) ma PEGGIORA il drawdown
|
||
(−19,6% vs −12,1%).** Non è pasto gratis: siccome la rendita perpetua **vive sul drawdown**,
|
||
per l'obiettivo €50/giorno **il libro da solo resta preferibile** nonostante lo Sharpe più basso
|
||
— coerente col capitale-rendita $254k contro $646k. Il 50/50 conviene per *capitale a 10 anni*,
|
||
non per *rendita*.
|
||
2. ⚠️ **Difetto del misuratore, catturato da una riga di stampa.** La prima stesura prendeva la
|
||
maschera flat dalla serie **de-luckata** — ma `deluck` sottrae una COSTANTE, quindi un giorno a
|
||
rendimento esattamente zero non è più zero e `abs(r) < 1e-12` **non trova niente**. Maschera
|
||
vuota, dinamico identico al book, e lo script ha stampato **tabelle complete e un p-value**
|
||
dall'aria seria. Se ne è accorta solo la riga `giorni in cui il LIBRO e' flat: 0 = 0.0%`.
|
||
**REGOLA: stampare sempre la CARDINALITÀ di una maschera prima di usarla** — un filtro vuoto non
|
||
solleva, produce il caso degenere e lo veste da risultato.
|
||
|
||
---
|
||
|
||
- **COLLAR01 "hold BTC gated dal trend + collar di opzioni <=15 giorni" — REFUTATO (2026-09-01)** —
|
||
`scripts/research/r0901_btc_collar.py`, diario `2026-09-01-collar-btc.md`, registro §71.
|
||
Chiesto dall'operatore in quattro battute: *hold BTC long o short coperto in opzioni* + *opzione
|
||
max 15gg* + ***"ridurre la vincita, ma bloccare la perdita"*** (⇒ collar, non put protettiva) +
|
||
*entrata gestita da indicatori (es. forte bull)*.
|
||
🚨 **Si poteva riaprire dopo §46 perche' ne batte il MOTIVO, non perche' ne ripete la misura:**
|
||
§46 cadde sul **beta +0,076 del libro** (*"non si assicura un libro che nei crash e' gia' quasi
|
||
piatto"*), qui il sottostante e' un **hold di BTC, beta 1,0**. E §46 dichiarava non provata la
|
||
copertura **gated su regime**, che e' questa.
|
||
**L'entrata non ha aggiunto un solo parametro:** `tsmom_blend` media tre `np.sign()` su (30,90,180)
|
||
⇒ valori in {−1,−1/3,+1/3,+1}, quindi *"forte bull"* = `|blend|==1` (52,5% dei giorni) contro il
|
||
confronto dichiarato `|blend|>=1/3` (97,1%); il segno da' long **e** short.
|
||
✅ **A1 CONFERMATA — il COLLAR riduce il maxDD: 36/48 celle** (§46: saliva in 162/162).
|
||
🚨 **Corretto lo stesso giorno da PAVIMENTO-LEVA (§72): NON e' il pavimento a farlo.** La put da
|
||
sola, a premio reale, **peggiora il DD in 16/16 celle**; nel collar la riduzione viene dal TETTO
|
||
(compensa il bleed, e cappare l'upside abbassa il picco da cui il DD si misura).
|
||
❌ **Ma il de-levering lo fa meglio in 45/48**, e il baratto costa **2-8 punti di drift per punto
|
||
di DD** (Δdrift/ΔmaxDD **7,90** gate forte, **1,98** largo).
|
||
🚨 **C9 in forma pura: il tetto taglia il 46,2% dei cicli VINCENTI, il pavimento para il 6,7% dei
|
||
PERDENTI** — 7x piu' spesso sui vincenti: *troncatura, non protezione*.
|
||
❌ **M1:** collar Sharpe 0,508 vs TP01 **0,852**; TP01+10% ⇒ **+0,000** di Sharpe e **+2,32pp** di
|
||
maxDD — peggiora proprio cio' che dovrebbe proteggere.
|
||
🚨 **IL RISULTATO TRASFERIBILE STA NELL'ESTENSIONE, NON NELLA GRIGLIA.** Le 3 celle vincenti
|
||
stavano tutte **sul bordo**; estesa la famiglia vince **35/36** con il massimo **nell'angolo**
|
||
(δput 0,02 / δcall 0,50, Sharpe **1,471**) — e il limite di quell'angolo e' *nessun pavimento,
|
||
tetto ATM* = **una covered call**: **la pendenza porta fuori dalla domanda posta e dentro lo
|
||
short-vol**. E quel 1,471 era **il prezzatore che si paga da solo**: **DVOL/RV-forward 1,320 a 7g,
|
||
sopra nel 76,9% dei giorni** ⇒ riprezzato alla vol vera l'angolo cade a **0,511** (VRP = **72%**
|
||
del drift; col gate largo **il 100%**, drift **−1,10%**). E **0,511 e' VRP01** (ShFULL 0,47 a
|
||
f=0,73): *non una scoperta, VRP01 ri-trovato per una strada piu' lunga*. §3 lo blocca comunque.
|
||
🚨 **USCITA ANTICIPATA (chiesta: 50-75% del tempo) — implementata e COSTA**, e produce il secondo
|
||
risultato trasferibile. Cella onesta, gate FORTE: drift **+9,48% (scadenza) -> +3,84% (uscita al
|
||
50%)**, esito da VINCE a **perde sotto 0,75**; gate LARGO **12,06% -> 1,88%**. Il meccanismo
|
||
previsto c'e' (il VRP residuo scende **+3,38 -> +1,27pp**: uscire presto rinuncia davvero allo
|
||
short-vol) **ma lo spread lo travolge**. 📌 **Corregge l'APPLICAZIONE di §46:** *"un roll anticipato
|
||
non paga f"* vale per una copertura **solo LONG**; in un collar la **gamba venduta va RICOMPRATA**,
|
||
quindi uscire prima paga f *esattamente* sulla parte che a scadenza si regolava gratis, ~2x piu'
|
||
spesso. **L'asimmetria di §46 si INVERTE quando la struttura ha una gamba corta.**
|
||
✅ **Controlli dell'apparato 3/3** (la lezione di §46): pranzo gratis riconosciuto, premio x10
|
||
rifiutato, zero-cost finito.
|
||
⚠️ **Cinque difetti miei catturati dai controlli:** bisezione zero-cost **invertita** (dava Sharpe
|
||
−3,9); `dcall=NaN` che propagava NaN nella cassa; **C9 non consapevole della direzione** (`S1>S0`
|
||
non e' "vincente" per un ciclo short — dava l'impossibile *"pavimento 0,0%"*); e due di
|
||
contabilita' che **avrebbero adulato il collar** (la base che rollava lo spot pagando ~3,6%/a di
|
||
fee inesistenti, e il roll che chiudeva lo spot senza motivo).
|
||
📌 **Corregge un muro di §46:** il **tick da 5 USDC** e' della famiglia **USDC**; la catena che
|
||
raccogliamo e' **100% inverse** ⇒ quel muro **non si applica** a questo filone.
|
||
**Cosa lo riapre:** un **f di stress su un crash catturato** (la condizione che §3 pone allo
|
||
short-vol), o un sottostante **senza coda destra grassa**. **Non** lo riaprono tenor, delta o
|
||
griglie piu' fini: la pendenza e' monotona verso l'angolo, e l'angolo e' gia' misurato.
|
||
|
||
- **PAVIMENTO-LEVA "il pavimento come licenza di taglia" — REFUTATO 0/16 (2026-09-01)** —
|
||
`r0901c_pavimento_leva.py`, diario `2026-09-01c-pavimento-leva.md`, registro §72. L'inverso di
|
||
COLLAR01: non *quanto DD risparmia* ma *quanta TAGLIA autorizza a iso-DD*, l'unica cosa che il
|
||
de-levering non puo' comprare. **La sola put a premio reale PEGGIORA il maxDD in 16/16 celle**
|
||
⇒ `k_f = 1,000`, niente da licenziare. 🚨 **Corregge COLLAR01 lo stesso giorno**: il DD lo
|
||
riduceva il **tetto**, non il pavimento (compensa il bleed e abbassa il picco). Pareggio del DD
|
||
solo a **36-79% del premio reale**; prezzo equo ≈76%: non basta.
|
||
📌 **Il meccanismo, trasferibile: i drawdown di BTC sono GRIND (290-818 giorni), la put copre
|
||
UNA finestra** e para nel 0-9% dei cicli: compra protezione contro la cosa sbagliata.
|
||
🚨 **La licenza del disaster-SL e' di CARTA**: sostituire `sl` con la distanza del pavimento
|
||
darebbe 2,28x, ma su 8 finestre consecutive la perdita e' −33,6% → **77% dell'equity**.
|
||
`disaster_sl_pct` NON si sostituisce con la distanza di un pavimento.
|
||
**Gated sull'IV sottile** (la copertura dinamica che §46 non aveva provato): migliora, perde.
|
||
**Cosa lo riapre:** scadenza lunga che copra il grind (fuori dal vincolo ≤15g dell'operatore),
|
||
o un premio di varianza negativo su BTC. Non delta, tenor ≤15, gate IV: misurati.
|