Files
PythagorasGoal/docs/diary/2026-07-02-anchor-audit-xs01-skh01.md
T
Adriano Dal Pastro a74cc69583 research(anchor-audit): timing-luck confermato su XS01 e SKH01 — 3/3 sleeve ancorati, book de-luckato HOLD ~2.0
Chiude il pendente dell'ondata timing 2026-07-02. Due audit indipendenti
(sanity replica bit-exact, ancore a priori, zero tuning per-fase, bootstrap):

- XS01 (10 fasi ciclo H=10): fortuna nel DD (15° pctl: 10.8% vs 15.5% tipico,
  29% peggiore) e FULL (85°), non nell'hold-out (65°); P(spike)~0.91-0.94.
  Lens onesta = ensemble di fase FULL 1.25 / HOLD 1.31 / DD 11%. Ammissione
  @15% regge, i numeri 1.50/1.71/11% no.
- SKH01 (23 offset griglia 230m/690m): canonico = 93-98° pctl di OGNI metrica,
  minHold/blend/book-HOLD = massimo dei 23; il gate DD<30% (criterio di
  selezione V2-DD) fallisce in 15/23 offset. Regge: uplift blend positivo a
  tutte le 23 fasi (min +0.18) + corr ~0.08 -> ADDS ridimensionato. Path live
  reale (cron orario + exit software): book FULL 1.46->1.19 / HOLD 1.64->1.15 /
  DD 18->25%, gap-through-stop nei crash (sl2% -> -11/-23%).
- Book 5-sleeve: HOLD 2.46 eredita ~+0.10/+0.17/+0.5 di fortuna d'ancora
  (TP01/XS01/SKH01) -> stima de-luckata HOLD ~1.9-2.1, FULL ~2.0-2.2, DD ~6%.

Nessun cambio operativo (pesi/book live invariati; ogni cambio passa
weights_tilt_null). Narrativa aggiornata (CLAUDE.md, docstring skyhook).
Follow-up: anchor_luck_band() in altlib, cadenza 230m, peso SKH live.
168 test verdi.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 22:34:35 +00:00

8.7 KiB
Raw Blame History

2026-07-02 — Audit anchor timing-luck su XS01 e SKH01 (chiusura del pendente dell'ondata TIMING)

Contesto. L'ondata TIMING+CRT dello stesso giorno (2026-07-02-timing-crt-wave.md) ha stabilito che l'hold-out di TP01 (0.31) è la migliore delle 24 ancore daily possibili (mediana 0.04, P~0.86 di uno spike così per caso). Lo scettico ha flaggato l'audit come pendente sugli altri due sleeve a ribilanciamento/griglia ancorata: XS01 (fase del ciclo di ribilanciamento H=10 giorni) e SKH01 (offset della griglia dual-TF 230m/690m, origin='epoch'). Questo diario chiude entrambi. Due agenti indipendenti, metodologia identica allo scettico TP01 (r0702_skeptic_offset.py): ancore dichiarate a priori, parametri identici in ogni fase/offset (zero tuning per-ancora), sanity replica bit-exact della sleeve canonica prima di qualsiasi numero, block-bootstrap congiunto per P(spike).

Script: scripts/research/r0702_anchor_xs01.py, scripts/research/r0702_anchor_skh01.py. Nessun file di produzione toccato dagli agenti (solo docstring/narrativa aggiornate a valle, qui).


Verdetto in una riga

Il finding TP01 si replica su TUTTI e tre gli sleeve ancorati — su SKH01 più forte che su TP01 — e i numeri headline del book (HOLD 2.46) sono in parte best-of-anchors. Ciò che sopravvive de-luckato: XS01 resta un diversificatore ammissibile (ensemble di fase FULL 1.25 / HOLD 1.31 / DD 11%); SKH01 resta ADDS (uplift del blend positivo a tutte le 23 fasi, corr ~0.08) ma i suoi numeri headline e — cruciale — il gate DD<30% che l'ha selezionata non reggono alla fase mediana. Stima onesta de-luckata del book 5-sleeve: HOLD ~1.92.1, FULL ~2.02.2 (vs 2.46/2.24 dichiarati).


XS01 — fase del ciclo di ribilanciamento H=10 (10 fasi)

Sanity: replica di _xsec_returns con parametro phasemax|Δ|=0.0 bit-exact vs la canonica. NB: la canonica sui dati di oggi fa FULL 1.367/HOLD 1.479/DD 10.8% (i dichiarati 1.50/1.71/11% erano del 2026-06-19; deriva dati, confronto interno coerente).

metrica min mediana max canonica (f0) pctl f0
Sh FULL 0.41 1.21 1.64 1.37 85°
Sh HOLD 0.15 1.17 1.71 1.48 65°
maxDD 10.0% 15.5% 29.1% 10.8% 15°
  • Firma diversa da TP01: la fortuna NON è nell'hold-out (65° pctl, non estremo) ma nel DD (15° pctl: il "DD 11%" dichiarato è uno dei più bassi delle 10 fasi; la fase tipica fa ~15.5%, la peggiore 29%) e nel FULL (85°).
  • Bootstrap: spike osservato +0.38 su hold-out; P(una fase qualsiasi ≥ +0.38) = 0.910.94 (block 10/20/40, B=4000) → la canonica è il massimo atteso di 10 stime correlate (corr mediana fra fasi 0.71).
  • Ensemble 10 fasi (lens di reporting onesta): FULL 1.25 / HOLD 1.31 / DD 10.9% — la diversificazione di fase riporta il DD al livello canonico con Sharpe ≈ mediana.
  • Book 5-sleeve: HOLD 2.44 (canonica) → 2.26 (fase mediana) → 1.75 (peggiore, marginalmente PEGGIO del book senza XS01 = 1.77) → 2.35 (ensemble). Eredità di fortuna ~+0.17 HOLD. FULL quasi insensibile (2.102.28).
  • Gate di ammissione a fase mediana: FULL 1.08 / HOLD 1.10 / DD 20.7% — i numeri dichiarati non reggono (Sharpe 0.3/0.6, DD raddoppia). La decisione però regge: nessuna fase negativa, 8/10 con FULL≥1.0, book migliore a ogni fase tranne la peggiore (dove è neutro) → slot da diversificatore @15% difendibile; cambia la NARRATIVA (banda/ensemble, non 1.50/1.71/11%).
  • Caveat: storia ~2.5 anni (CI95 Sh HOLD canonica [0.04, +2.72] — nessuna stima puntuale affidabile); dimensione ora-del-giorno non testabile (solo barre 1d HL: resta luck residua 10 fasi × 24 ore non certificabile); XS01 è STAT-MODE → impatto su reporting/gate, non sul book live Deribit.

SKH01-V2-DD — offset della griglia dual-TF 230m/690m (23 offset × 30m)

Sanity: offset 0 riproduce _skyhook_returns() bit-exact (max|Δ|=0.0 su 2666 giorni); maxDD harness BTC 21.4%/ETH 27.4% = identici al diario di ammissione; riuso diretto di skyhook_entries/htf_features/merge_htf_to_ltf con resample(origin='epoch', offset=...), confini 690 ⊂ 230 verificati a ogni offset.

metrica (book 50/50) min mediana max off0 (canonico) pctl off0
Sh FULL 0.78 1.05 1.48 1.46 93°
Sh HOLD 0.44 0.93 1.64 1.64 98° (max)
minFull (2 asset) 0.35 0.67 1.01 0.99 93°
minHold 0.10 0.39 1.25 1.25 98° (max)
blend 0.75·TP01+0.25·SKH, HOLD 0.49 0.72 1.16 1.16 98° (max)
  • È uno spike, non un plateau: gli offset adiacenti ±30m crollano (book HOLD 1.64 → 0.88 a off30). Firma identica all'ancora TP01, ma più forte: il canonico è al 9398° pctl di OGNI metrica; minHold +1.26 e blend "0.31→1.17" sono il massimo dei 23.
  • Gate DD<30% — il criterio per cui V2-DD fu selezionata — FALLISCE in 15/23 offset (mediana DD: BTC 23.5%, ETH 29.2% — pass per 0.8pt; peggiori 35.9%/42.1%). Il margine ETH "già sottile" (27.4%) è in realtà sotto la mediana di fase: la proprietà DD<30% è in larga parte fortuna di fase.
  • Ciò che regge de-luckato: uplift del blend positivo a TUTTE le 23 fasi (min +0.18, mediana +0.42, canonico +0.86) e corr→TP01 in [0.05, 0.11] a ogni fase → il verdetto ADDS/diversificatore sopravvive, ridimensionato. Alla fase peggiore invece non regge (minHold 0.10, DD fail).
  • Bootstrap: spike blend +0.44; P(un offset qualsiasi ≥ +0.44) ≈ 0.70 (block 10/20/40); P(uplift≤0) = 0.030.04 → l'uplift è reale, l'ampiezza è best-of-23.
  • Book 5-sleeve: HOLD 2.44 (off0 = max dei 23) → mediana 1.96 → ensemble 2.12; FULL 2.24 → mediana 2.01. Eredità di fortuna ~+0.5 HOLD — molto più dei ~+0.10 dell'ancora TP01.
  • Rilevanza LIVE (SKH = 25% del book Deribit reale): il cron è orario, i confini 230m no → ritardo uniforme {0..50} min (media 25). Re-sim del path reale (fill al close 5m del prossimo run orario, exit SOFTWARE come da book.py): book 50/50 FULL 1.46→1.19, HOLD 1.64→1.15, DD 18.1%→24.6%. La maggior parte del gap è l'assunzione fill-al-livello del backtest, non il ritardo orario in sé: nei crash le barre 230m gappano attraverso lo SL software (short sl2% modellato 2% → realizzato 11/23%: ETH 2021-05-19, 2021-01-04, COVID 2020-03-13). Il disaster-SL on-book 30% copre solo la coda estrema della posizione netta.
  • Caveat: equity daily-step (lens Sharpe, come il canonico); l'ensemble di offset NON è eseguibile live (gira una sola griglia) → serve solo come stima de-luckata; sim hourly senza slippage/parziali.

Book 5-sleeve — stima de-luckata congiunta (approssimata)

Ogni audit varia UN solo sleeve (gli altri restano canonici), quindi gli effetti non si sommano esattamente; ordine di grandezza dell'eredità di fortuna sull'HOLD 2.46: TP01-ancora ~+0.10, XS01-fase ~+0.17, SKH01-offset ~+0.5. Stima onesta: HOLD ~1.92.1, FULL ~2.02.2, DD ~6% (invariato) — il book resta largamente positivo e diversificato a ogni combinazione testata, ma il 2.46 è un massimo di ~24×10×23 configurazioni di ancora, non la stima centrale.

Regole codificate in narrativa (CLAUDE.md aggiornato)

  1. I numeri headline di OGNI sleeve ancorato si citano con la banda d'ancora (o come ensemble di fase): vale già per TP01, ora anche per XS01 e SKH01 e per l'HOLD del book.
  2. Un gate di selezione (es. DD<30%) va verificato sulla banda di fase, non sull'ancora canonica — SKH01-V2-DD fu selezionata per una proprietà che tiene in 8/23 fasi.
  3. Il candidato gate anchor_luck_band() in altlib sale di priorità: tre sleeve su tre ancorati mostrano la stessa firma, e il deflated-Sharpe non conta questo multiple-testing.

Follow-up (non eseguiti, da valutare)

  • Rivalutare il peso 25% di SKH01 nel book live Deribit: l'aspettativa onesta della gamba SKH è ≈ fase-mediana + path orario (blend HOLD ~0.72, non 1.17) con gap-through-stop reale nei crash. L'uplift resta positivo a ogni fase → non c'è motivo di rimuoverla, ma il sizing fu deciso su numeri best-of-23.
  • Cadenza cron a 230m (o trigger sui confini di barra) per chiudere il gap di path orario.
  • anchor_luck_band() in altlib.py come gate standard per candidati ancorati.
  • Audit ora-del-giorno di XS01 quando esisterà un feed HL intraday certificato.

Stato: XS01/SKH01/pesi/book live INVARIATI (nessun cambio operativo da questo audit — è un audit di reporting e di gate, e ogni cambio pesi dovrà passare weights_tilt_null + selection-on-holdout). Test suite 168 verdi. Script audit committati.