Files
PythagorasGoal/docs/diary/2026-06-23-futures-overnight-leadlag.md
T
Adriano Dal Pastro c4bc336a53 research(cross-market): futures overnight non-sovrapposto -> edge ~0 su SP500, soffio su small-cap
Test ONESTO dell'idea "monitor Deribit/trade IB": entra mid-notte sul future indice, cattura il moto
SUCCESSIVO (finestre non sovrapposte, no look-ahead). Dati: ES/NQ/RTY orari da IB (fut_*_1h, ~3y).

RISULTATO: ES (S&P500) nessun edge (Sharpe ~0/neg, t_crypto 0-1.5); NQ momentum del future non crypto;
RTY (small-cap) unico con t_crypto incrementale 2.0-2.7 e crypto che aggiunge oltre il moto proprio del
future, ma Sharpe 0.4-0.5, 24 config (multiple-testing), 2.3y, per-anno incoerente (2026 negativo).

VERDETTO: l'idea NON da' edge tradabile, men che meno su SP500. Il forte crypto<->equity e' co-movimento
contemporaneo (risk-beta), non anticipazione: imposta una finestra causale non-sovrapposta e svanisce.
Il "Sharpe 5" del gap era look-ahead. RTY -> forward-monitor al piu'. Coerente col soffitto del progetto.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 11:51:15 +00:00

2.3 KiB

2026-06-23 — "Monitor Deribit / trade IB" su futures: test ONESTO non-sovrapposto -> edge ~0

Idea

Monitorare crypto live (Deribit 24/7) ed entrare sul FUTURE indice IB (ES/NQ/RTY, tradato di notte) a meta' notte, catturando il moto SUCCESSIVO -> finestre NON sovrapposte (no look-ahead, vs il "gap" che era contemporaneo al segnale).

Dati

fetch_ib_futures.py -> data/raw/fut_{es,nq,rty}_1h.parquet (ContFuture orario, UTC). ES 3y (2023-06+), NQ 2.75y, RTY 2.3y. (NB: ContFuture NON accetta endDateTime -> chiamata singola "4 Y" = ~3y max orari.)

Test (fut_overnight_leadlag.py)

entrata a T (ora UTC notturna): segnale = crypto[P21:00->T]; controllo = future[P21:00->T] (moto PROPRIO del future); cattura = future[T->open 13:00]. Incrementale: crypto predice la cattura OLTRE il moto proprio del future? Trade: sign(crypto[P21:00->T]) * future[T->open], net 2bps. T in {0,3,6,9}h.

Risultati

future miglior Sharpe (trade crypto) t_crypto incrementale esito
ES (S&P500) ~0 / negativo (-0.03..-0.93) 0..1.5 NESSUN edge
NQ (Nasdaq) 0.41 (T=3h) 0.5 (debole) momentum del future, non crypto
RTY (Russell) 0.40-0.77 2.0-2.7 (BTC->RTY) soffio debole, non robusto
  • SP500: NIENTE. Il crypto della prima notte non predice l'ES della seconda. Il "Sharpe 5" del gap era interamente look-ahead (finestre sovrapposte): catturato e ucciso.
  • RTY (small-cap) e' l'unico con t_crypto incrementale ~2-2.7 e crypto che AGGIUNGE oltre il moto proprio del future (futOwn Sharpe negativo). MA: Sharpe 0.4-0.5 modesto, 24 config (multiple-testing), storia 2.3y, per-anno INCOERENTE (BTC->RTY T=3h: 2024 +0.99 / 2025 +0.52 / 2026 -0.31).

Verdetto

L'idea "monitor Deribit / trade IB" NON da' un edge tradabile, men che meno su SP500. Il forte fenomeno crypto<->equity e' CO-MOVIMENTO contemporaneo (risk-beta overnight), non anticipazione: quando si impone una finestra causale non-sovrapposta, l'edge svanisce (efficienza di mercato). L'unico residuo (crypto->small-cap overnight) e' debole, borderline su multiple-testing e instabile per anno -> forward-monitor al piu', NON deploy. Coerente col soffitto del progetto.

Script: fetch_ib_futures.py, fut_overnight_leadlag.py. (look-ahead documentato: 2026-06-23-crypto-overnight-lookahead.md)