Files
PythagorasGoal/docs/diary/2026-07-17-weekend-window.md
Adriano Dal Pastro 7534b08be0 research(weekend): ondata ven->lun SCARTATA 4/4 — famiglia calendario SATURA; weekend = 38% del gross TP01 (mai de-esporre)
4 agenti (drift/cond/intra/overlay), 375 trial: il drift weekend e' beta B&H,
i gate condizionali sono TP01 re-timed, l'intraday weekend e' moneta simmetrica
(CME-gap morto anche lordo). Fatto strutturale: TP01-weekend-flat = danno certo
(dSh -0.46, P=1.000) -> ogni proposta "risk-off weekend" parte REFUTED salvo
null de-levering. Chiusa la famiglia calendario su BTC/ETH (SEA+expiry+event-clock
+weekend). Book/pesi INVARIATI. Diario 2026-07-17-weekend-window.md.

gitignore: + data/live/ (log esecuzioni book live, stato runtime del conto reale)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 15:03:44 +00:00

7.1 KiB
Raw Permalink Blame History

2026-07-17 — Ondata WEEKEND (ven→lun, timing multipli, 4 agenti): 0 edge, 1 fatto strutturale sul book

Goal: "cerca strategie che con diversi timing lavorino solo tra venerdì e lunedì, usa diversi agenti." Quattro filoni in parallelo su BTC/ETH 1h/15m certificati, harness altlib condiviso, metodologia onesta piena (selezione in-sample-only pre-2025, banda di timing mai la best-cell, deflated-Sharpe sull'intera famiglia, day_boundary_robust, fee nette 0.10% RT + sweep, causality_ok, realismo small-cap $600). Prior vincolante: day-of-week già morto (SEA 2026-07-02), anchor timing-luck su 3/3 sleeve ancorati, CRT triplo-refutato.

Esito: SCARTATO 4/4. Nessun LEAD, nessun forward-monitor, book/pesi INVARIATI. Il fatto nuovo utile è difensivo: il weekend è leggermente sovra-denso per TP01 (38% del gross nel 31% del tempo) → togliere esposizione weekend al book è attivamente dannoso.


Filone 1 — WK-DRIFT: drift puro ven→lun (r0717_wk_drift.py)

Griglia 6 H_in (ven) × 6 H_out (lun) × long/short × BTC/ETH = 144 trial.

  • Cella scelta in-sample (LONG ETH ven08→lun16): IS +1.07 → FULL +0.84 → HOLD 0.14 (ret hold-out 23%), maxDD 69%. Banda long: FULL med +0.57, HOLD med 0.21.
  • DSR 0.001/144 (max atteso sotto il null: 1.97 ≫ 0.84 osservato).
  • Null weekday: il venerdì NON è speciale — mediana IS della famiglia long per ancora: Fri +0.74 = 71° percentile, sotto Mon (+0.78) e Sun (+0.78). Qualsiasi finestra ~3g long fa lo stesso = beta di buy&hold a esposizione ridotta (B&H daily Sh FULL: BTC 0.79 / ETH 0.86 ≈ il max della griglia).
  • A fee ZERO l'hold-out resta negativo (0.03) → non è morte-per-fee, l'edge OOS non esiste.
  • day_boundary_robust: ARTIFACT-RISK (uplift flippa spostando il confine UTC, spread 0.43).

SCARTATO — il "weekend drift" è B&H diluito nel tempo (vive del toro 2019-21, 58% nel 2022, 33% nel 2025).

Filone 2 — WK-COND: weekend condizionato da gate causali (r0717_wk_cond.py)

5 gate causali noti all'ingresso del venerdì × 9 timing × direzioni = 99 combo (198 stream): (a) TSMOM concorde, (b) FOLLOW/FADE del venerdì, (c) follow/fade della settimana, (d) regime vol RV30 (percentile espandente causale), (e) breakout dei livelli del giovedì.

  • 5/5 gate: earns_slot=False, DSR ≤0.30, day_boundary_robust = ARTIFACT-RISK 5/5 (la stessa firma che uccise open_drive: l'etichetta "weekend" non è dove vive alcun segnale).
  • (a) TSMOM-gate = TP01-in-weekend per costruzione (β 0.67, uplift hold 0.015, jackknife 0.18): re-timing del trend, non alpha. Lo short weekend perde perfino col trend a favore (mediana IS 0.15).
  • (b) FOLLOW>FADE regge in-sample ma si inverte in hold-out → rumore; il lead prevday-FOLLOW non si trasferisce alla finestra weekend. Unico is_hedge=True dell'ondata, ma con HOLD 0.92.
  • (d) l'unica variante con HOLD positivo (HIGH70 +0.19) è non selezionabile in-sample (IS +0.22): crederle sarebbe selection-on-holdout da manuale.
  • A fee zero l'hold-out resta negativo per 4/5 gate → non è morte-per-fee.

SCARTATO — e con questo (99 trial qui + SEA + expiry-calendar 2026-07-02) la famiglia calendario su BTC/ETH è satura: riaprirla solo con un meccanismo nuovo non-calendario.

Filone 3 — WK-INTRA: intraday dentro la finestra (r0717_wk_intra.py)

132 celle su 1h+15m, tre sotto-filoni: (A) Donchian weekend-only follow/fade, (B) gap dom 22:00 vs close ven 21:00 (meccanizzazione onesta del claim "CME gap"), (C) livelli H/L/C del venerdì come magnete.

  • Quadro: celle IS lorde positive = 64/132 ≈ 50% = moneta simmetrica (rumore prima ancora delle fee); IS nette >0: 18/132. DSR famiglia 0.068 → 0.001 per filone.
  • (A) la cella IS (Donchian 48h follow) è trend-2022 su ETH travestito (2022 +96%; BTC per-anno negativo nel toro); su BTC muore di fee E il lordo è sotto soglia.
  • (B) il claim "CME gap" è morto: nessuna config ha IS netto >0; la best (revert 2%) fa IS 0.09 lordo +0.03 → l'edge non esiste nemmeno lordo; il suo HOLD +0.5 è la firma esatta del selection-on-holdout. Nessuna centratura reale sulle 22:00 (shift-test).
  • (C) il "magnete del venerdì" non esiste in nessuna direzione (L-fade: IS lordo +0.12 → HOLD 0.97/0.77; DSR 0.001). FOLLOW>FADE riconfermato (le celle fade sono le peggiori ovunque).
  • Eseguibilità $600 NON è il vincolo (0% ordini sotto min-order, haircut 0.00): manca l'edge.

SCARTATO 3/3.

Filone 4 — WK-OVERLAY: esposizione weekend di TP01 sul book (r0717_wk_overlay.py)

Il lato eseguibile: conviene uscire/dimezzare/aumentare TP01 nel weekend? Griglia timing + null de-levering (lezione DVOL 2026-06-26) + bootstrap settimanale appaiato + placebo rotazioni + smallcap.

  • Fatto strutturale (attribuzione gross): la finestra ven20→lun00 è il 30.9% del tempo e porta il 38% del gross di TP01 (+44.2pp su +117.8pp, positivo ogni anno) — il weekend non è tempo morto per uno slow-trend crypto 24/7, è sovra-denso.
  • WK-FLAT: REFUTED, attivamente dannoso — ΔSh FULL 0.46 (banda 6/6 negativa), P(danno)=1.000 al bootstrap; a fee zero resta 0.41; il de-levering k=0.88 compra lo stesso DD a Sharpe pieno (1.29 vs 0.83). Placebo: il weekend è tra i giorni peggiori da flattare (5/7).
  • WK-HALF: REFUTED — solo de-levering pagato con fee (k=0.755 a pari DD: +0.20 Sh in più).
  • WK-BOOST ×1.5: neutro — coerente col controllo simmetrico ma non significativo (P=0.12) e a pari DD la leva uniforme rende di più sul CAGR → nessuna azione.
  • WK-ONLY: Sh 1.04 da solo, ma k=0.54 uniforme lo domina → diagnostica, non strategia.
  • Small-cap $600: haircut ≈0 su tutte — l'overlay si eseguirebbe fedelmente; non conviene e basta.

REFUTED/nessuna azione — book e pesi INVARIATI.


Lezioni codificabili

  1. Famiglia calendario BTC/ETH = SATURA. SEA (day-of-week) + expiry-calendar + event-clock (2026-07-02) + 144+99+132 trial weekend (oggi) convergono: su BTC/ETH non vive alcun edge di calendario/finestra-oraria. Prossimi claim di questa famiglia partono da prior ~0: esigere il pacchetto completo (null weekday-ancora + day_boundary + DSR famiglia) prima ancora di guardare l'hold-out.
  2. "~50% di celle lorde positive" = rumore simmetrico: diagnostica rapida di famiglia morta prima ancora del netting fee (WK-INTRA).
  3. Il gate condizionato non salva una finestra morta: un gate causale su una finestra senza edge o replica il trend (TP01 travestito) o seleziona rumore che flippa OOS (5/5 in WK-COND).
  4. Non de-esporre il weekend del book: il 38%-in-31%-del-tempo di TP01 è la ragione quantificata per cui il libro resta 24/7. Qualsiasi futura proposta "risk-off weekend" parte REFUTED salvo nuovo evidence (null de-levering obbligatorio).
  5. Riconferme indipendenti: FOLLOW>FADE (3ª volta); "CME gap" e "magnete del venerdì" = folklore che non sopravvive alla meccanizzazione onesta.

Script: scripts/research/r0717_wk_{drift,cond,intra,overlay}.py (standalone, uv run python, nessun file esistente toccato). Nessun cambiamento a strategie, config, pesi o esecuzione live.