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>
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
# 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.**
|
||||
Reference in New Issue
Block a user