# 2026-07-02 — Ondata timing + CRT (8 filoni multi-agente + scettico): 0 nuovi sleeve, 1 finding strutturale (anchor timing-luck di TP01) **Obiettivo (goal utente):** "cerca su Deribit altre strategie profittevoli magari con timing differenti oltre a quelle già valutate". Prima ondata interamente dedicata al TIMING: dopo che le ondate precedenti hanno coperto segnali (104 famiglie alt-sweep), universi (HL cross-sectional), opzioni (VRP/gamma) e pesi (EW-STR/weights_tilt_null), qui si attacca la dimensione rimasta: *quando* si campiona, si decide e si esegue. Su richiesta utente, seconda tranche dedicata alla **CRT (Candle Range Theory)**, il pattern sweep-and-reclaim a 3 candele di scuola ICT/Wyckoff. Inventario preventivo per non rifare lavoro: SEA01-09 coprivano già hour-of-day, day-of-week, weekend, turn-of-month, sessioni; l'onda intraday 2026-06-21 il sub-daily (con il lead prevday in forward-monitor); `tp01_lowfreq` i TF 4h/12h/1d. Angoli NON coperti individuati e testati: clock a eventi, calendario scadenze Deribit, ancora di ribilanciamento, clock più lenti del daily, velocità del segnale regime-condizionata — più i 3 tagli CRT (base, multi-TF, contesto). **Esito: 7 filoni FAIL + 1 finding strutturale confermato dallo scettico (timing-luck dell'ancora di TP01). Nessun nuovo sleeve. Nessuna modifica al book live. Il soffitto ~1.3 direzionale BTC/ETH resta intatto anche cambiando il clock.** --- ## Filone 1 — Event-clock bars (tempo-informazione): FAIL `scripts/research/r0702_eventclock.py`. Volume/vol/range bars da 5m certificato (soglie causali EWMA-90g shift(1), barre medie 4h/12h/24h), 5 strategie (TSMOM multi-orizzonte, Donchian 10/30d, EWMA-cross), 45 celle event + 15 controlli wall-clock = 60 trial. - Null decisivo (stesso segnale, stessa frequenza, wall-clock): event batte wall su ENTRAMBE le finestre solo in **4/45 coppie (9%)** — rumore. Pattern incoerenti (EWMA event vince IS 9/9 ma perde HOLD 9/9; Donchian-30d l'esatto opposto = selection-on-holdout in agguato). - Cella scelta in-sample (volume-bars 24h, DONCH-10d): IS 1.45 → **HOLD −0.46** (2025 −7.4%, 2026 −18.1%). Marginal NEUTRAL (corr 0.74 a TP01 = trend travestito), earns_slot_honest=False. - Executability comunque assente: in alta attività le barre "24h" chiudono in 3.6-4.6h (p5) → il cron orario le eseguirebbe in ritardo; i clock 4h richiedono monitoraggio sub-orario. **Lezione: campionare a tempo-informazione non normalizza nulla di monetizzabile sul feed certificato; il clock non è la dimensione dove vive l'edge.** ## Filone 2 — Calendario scadenze Deribit: FAIL (0/24 celle) `scripts/research/r0702_expiry_calendar.py`. Griglia dichiarata a priori: 4 finestre × 3 tipi expiry (weekly ven 08:00 UTC / monthly ultimo ven / quarterly) × 2 asset, Bonferroni |t|≥3.08; 3 null (placebo weekday, anchor-shift ±2/4h, permutation 500 calendari). - Nessuna cella passa Bonferroni (max |t| 2.69). Il post-expiry drift monthly (+0.61/+0.77%) ha il segno della teoria ma: non batte il placebo giovedì, permutation pctl 84-95 (non estremo), si INVERTE sul quarterly (dove l'OI massimo dovrebbe amplificarlo) ed è guidato dal 2019 → rumore. - Unica cella robusta ai null: weekly [-24,0) negativa (gio→ven), ma è indistinguibile dal day-of-week (famiglia SEA già morta) e netta fee fa Sharpe ~0.08 (52 eventi/anno × 0.10% RT). - Best-in-sample tradabile: IS +0.90 → **HOLD −0.52**; DSR 0.230 su 24 trial. - Nota tecnica: colpito ESATTAMENTE il pitfall pandas 2.x documentato (epoca in secondi da `date_range` su tz-aware → matching vuoto); fix con epoca ms esplicita. La lezione 2026-07-01 ha pagato. ## Filone 3 — Anchor timing-luck di TP01 + tranching: FINDING (verificato dallo scettico) `scripts/research/r0702_tp01_offset.py` + scettico indipendente `r0702_skeptic_offset.py` (ricostruzione bit-exact con codice diverso, zero riuso; h=0 riproduce `tp01_baseline_daily` esattamente; vol-target ricalcolata per ancora; nessun look-ahead — verificato con troncamenti). **Claim 1 CONFERMATO: l'hold-out 2025-26 "Sharpe 0.31" di TP01 è in larga parte fortuna dell'ancora 00:00 UTC.** La stessa strategia CANONICAL alle altre 23 ancore orarie: HOLD mediano **0.04**, banda **[−0.13, +0.30]** — e il massimo è proprio h=0 (98° pctl; in-sample era al 10°: sfortunato lì, fortunato qui). Spike, non plateau (h=23/h=1 fanno 0.13/0.04). Bootstrap dello scettico: P(una qualsiasi ancora mostri uno spike ≥ così) = **0.86** — è il massimo atteso di 24 stime correlate, non un'anomalia; best-anchor per finestra annuale ruota a caso (16→23→21→12→5→0, Spearman ≈ 0, nessuna seasonality d'ancora). Formulazione corretta (NON "il vero hold-out è 0.07", che ha CI95 [−1.2,+1.4] su 547 giorni): **l'hold-out 2025-26 non risolve l'edge di RITORNO di TP01** (ritorno totale mediano ancore ≈ 0%); ciò che regge A OGNI ancora è il claim DIFENSIVO (DD 6.7-10.1% vs ~60% B&H). Che è da sempre il vero valore dichiarato di TP01. **Claim 2 (tranching multi-ancora) RIDIMENSIONATO:** K=4 ≡ esattamente EW di 4 book ancorati (diff 1.4e-17), turnover identico (~8.3/y), haircut $600 ≈ 0. MA il "miglioramento" IS 1.49→1.56 è per ~90% *tornare alla media delle ancore* (h=0 era sfortunato in-sample): vs ancora tipica +0.005 mediano, P(K4≤h0)=0.18 n.s.; il taglio DD strutturale è ~0.5pt (non 2.8: la mediana delle singole è già 12.6%). Ciò che regge: la compressione della VARIANZA DELLA STIMA (HOLD [−0.12,+0.30]→[−0.01,+0.13] a K=4) → **lens di reporting, non alpha**. **Impatto a valle (quantificato dallo scettico):** - Blend SKH: HOLD 1.16 (h=0) → 0.97 mediana ancore, ma l'UPLIFT a mediana è +0.93 > +0.86 dichiarato → **il verdetto ADDS di SKH01 era conservativo, regge**. - Book 5-sleeve: HOLD 2.44 → 2.34 mediana (min 2.22), FULL 2.24→2.22 → eredita **~+0.10** di fortuna d'ancora (non +0.25: il peso di TP01 diluisce). Nessuna decisione (GTAA/SKH/pesi) cambia. - NON toccati: tutti i FULL (h=0 al 31° pctl = normale), plateau, deflated-Sharpe, fee-sweep, causalità, validazione GTAA (equity OOS), gate weights_tilt_null (relativo). **Raccomandazione operativa (sottoscritta dallo scettico): cambio di narrativa e di standard di reporting, NESSUN cambio del book live oggi.** (1) I numeri hold-out di TP01 si citano d'ora in poi come banda d'ancora (mediana ~0.04, [−0.13,+0.30]) con valore = taglio DD; (2) valutazione anchor-agnostic (media 24 ancore) come lens di reporting per i futuri hold-out; (3) NO deploy K=2/K=4 a $600: guadagno ≈ 0, e a $225/asset di quota TP01 i delta per-ancora (~$1-2) sono sotto il min-order $5 → degenererebbe comunque in K=1; inoltre le ancore intraday richiederebbero un feed fresco fuori dal path certificato (staleness ×4 finestre di guasto). **Rivalutare K=2 (0,12) a capitale ≥ ~5-10k.** (4) ⚠️ Audit analogo RACCOMANDATO su XS01 (rebalance 10g ancorato = spazio di luck 10g×24h, potenzialmente peggiore) e SKH01 (fase griglia 230m/690m) — TP01 è oggi l'unico sleeve de-luckato. ## Filone 4 — Clock lenti + banded rebalancing: FAIL (negativo utile) `scripts/research/r0702_slow_clock.py`. Fatto a monte che chiude il filone: il fee drag di TP01 a 1d è **~0.40%/anno ≈ 0.03 Sharpe** (8 turnover/y × 0.10% RT) — il tetto di QUALSIASI risparmio. - Clock N∈{2,3,5,7}g: degrado monotono dell'ensemble di fase (HOLD 0.34→0.11 da N=2 a N=7); lo spread TRA fasi esplode a N≥5 (HOLD −0.19…+0.37 a N=7) = timing luck pura, coerente col filone 3. - Bande di isteresi {2.5,5,10,20}%: tagliano il 77-94% degli ORDINI ma quasi zero TURNOVER (gli ordini di TP01 sono micro-aggiustamenti del vol-target). Cella best-IS (band 20%): hold-out 0.13 vs 0.30 baseline, e il "guadagno" IS è effetto-segnale (posizioni stantie fortunate), non effetto-costo → fitting. Non-monotonia sulla griglia = firma di rumore. - **Finding utile per il live: a $600 il vincolo min-order $5 È GIÀ la banda ottimale** (ordini 427→111/y a costo Sharpe ~0, banda implicita 1.67%): cattura ~100% del risparmio catturabile. Nessun cambio al book, a nessun capitale testato (600/2k/10k). ## Filone 5 — Velocità del trend regime-condizionata: FAIL `scripts/research/r0702_regime_speed.py`. Pesi tra gli orizzonti TSMOM 30/90/180g condizionati al percentile espandente di vol (realized e DVOL), 16 celle, sanity = riproduzione esatta del canonico. - Cella best-IS (alta-vol→lento, linear, rv): FULL +0.06 ma **HOLD BTC −0.31**, 50/50 +0.005 → dominanza fallita; multi-cut a segno instabile (+0.18/−0.08/+0.00). - Null decisivo (300 pesi statici Dirichlet): la cella sta al pctl 0.71-0.72, sotto il p90 — un peso statico casuale la batte spesso. Meccanismo smascherato: corr(peso-30d, Sharpe) = +0.93 → le celle "regime" vincono in-sample perché tengono il tilt-30d la maggior parte dei giorni = **tilt statico travestito da regime**, la stessa trappola di EW-STR. E il tilt statico verso il 30d NON regge su BTC hold-out (−0.15). RV e DVOL indistinguibili come misura di regime (coerente con l'esito overlay DVOL 2026-06-26). Pesi canonici 1/3-1/3-1/3 confermati. ## Filoni 6-8 — CRT "Candle Range Theory" (base / multi-TF / contesto): FAIL 3/3 Il pattern sweep-and-reclaim a 3 candele (C1 range forte; C2 rompe un estremo ma chiude dentro = "manipolazione"; C3 ingresso contro il breakout, stop dietro lo sweep, target all'estremo opposto), meccanizzato onestamente in tre tagli. Overlap dichiarato: MRV01-11 e MIC07 non coprivano questa meccanica; ora è coperta. **6. Base single-TF** (`r0702_crt_base.py`, 864 trial su 1h/4h/12h/1d, motore trade-level conservativo SL-first cross-checkato con l'harness): **DSR 0.000** (il null best-of-grid atteso è Sharpe 2.27, ottenuto 0.74); cella best-IS (4h long color-rule) IS 0.90 → HOLD 0.07 con 2026 a WR 0%; anchor-shift +1/+2h flippa l'hold-out a −1.0 (artifact-risk); lo **short su sweep dell'alto (la narrativa smart-money canonica) perde perfino in-sample (−0.59)**. Autopsia: l'expectancy IS veniva dal time-exit in trend (beta del toro ETH 2021-23), non dal target strutturale. Dettaglio informativo: CRT batte nettamente sia il fade incondizionato (IS −0.49) sia il breakout-confermato (IS −0.31) → il close-back-inside FILTRA davvero tossicità, ma "meno tossico del fade morto" non è un edge. **7. Multi-timeframe** (`r0702_crt_mtf.py`, 4h→15m e 1h→5m, ~10k trade): expectancy netta negativa OVUNQUE (FULL e HOLD, entrambi gli asset); il MTF alza il R:R medio da ~3 a ~10-20 ma il WR collassa da ~36% a 9-16% → "migliora" solo perdendo meno. **Refutazione strutturale: il ritest è informazione negativa** — pattern CON ritest −40 bps, SENZA +52 bps (non tradabile: condiziona sul futuro): aspettare il ritest per entrare seleziona sistematicamente i pattern peggiori; i buoni scappano subito e il metodo non li prende mai. A fee ZERO l'edge lordo è ~0 (non è morte per fee: non c'è). Stop 0.1-0.35% ineseguibili col cron orario (26-75% dei segnali già invalidati all'esecuzione). **8. Contesto** (`r0702_crt_context.py`, 22 trial: livelli prevday/Donchian/prevweek × equal-H/L × FVG × sessioni): baseline incondizionata morta (8/8 celle HOLD<0); FVG semmai peggiora; sessione EU consistentemente negativa; unica cella IS-positiva (sweep in Asia su livello prevday) uccisa 4 volte (DSR 0.001, anchor-flip a −2/−4h con la firma di open_drive — la sessione "Asia" inizia dove il livello prevday viene ricreato —, solo-ETH, morta a 0.20% fee). **Sottoprodotto prezioso: sugli STESSI livelli prior-day, FOLLOW batte FADE ogni singolo anno 2019-2026** (follow IS/HOLD +1.22/+1.25 vs fade −0.66/−1.46, corr −0.19/−0.27) → conferma indipendente e rafforzativa del lead prevday-breakout in forward-monitor (paper_prevday). **Verdetto CRT: concetto Wyckoff riverniciato che, spogliato della discrezionalità, non contiene edge su BTC/ETH Deribit certificati. La direzione giusta sui livelli affollati resta il FOLLOW (breakout), non il fade — coerente con SKH01 (breakout) vivo e mean-reversion morta.** --- ## Lezioni codificabili 1. **Il timing-luck dell'ancora è una dimensione di multiple-testing NON coperta dai gate esistenti** (deflated-Sharpe conta i trial, non le ancore implicite). Nuova regola di reporting: ogni metrica hold-out di una strategia a ribilanciamento ancorato si cita con la banda d'ancora (o la media anchor-agnostic). Candidato gate futuro: `anchor_luck_band()` in altlib. Audit pendente: XS01 (10g), SKH01 (fase 230m/690m). 2. **La famiglia day_boundary_robust / anchor-shift continua a uccidere** (CRT base, CRT-Asia, 6/24 celle expiry): ogni effetto legato a etichettatura di barre VA spostato d'ancora prima di crederci. Confermata la regola 2026-06-21. 3. **Il fee drag di TP01 (~0.4%/anno) non è un problema da risolvere** — chiude a priori il filone "esecuzione più furba" a questo turnover; il min-order small-cap è già la banda ottimale. 4. Il pitfall pandas tz-aware/epoca (2026-07-01) è stato evitato/gestito 2 volte su 9 agenti grazie alla documentazione in CLAUDE.md — il costo di documentare i bug paga. ## Stato finale - 0 nuovi sleeve; portafoglio e book live INVARIATI (5-sleeve 33/15/12/20/20; book Deribit TP01+SKH01 75/25, flat da armamento — il segnale resta risk-off). - Narrativa TP01 aggiornata (CLAUDE.md + docstring): hold-out = banda d'ancora, valore = difesa DD. - Script: `scripts/research/r0702_{eventclock,expiry_calendar,tp01_offset,slow_clock,regime_speed, crt_base,crt_mtf,crt_context,skeptic_offset}.py`. Test suite: invariata, verde.