# 2026-06-26 — Scalping azioni IB "quando sottoquotate" + check dati dalla rete **Goal utente:** su IB, comprare azioni quando "sottoquotate" (oversold/sotto fair-value), con verifica incrociata dei dati dalla rete. Branch `research/equity-meanrev-ib`, script `scripts/research/eq_meanrev_ib.py`. Due pezzi. ## 1) CHECK DATI DALLA RETE — il pezzo richiesto (e perfettamente in-metodo) Confronto i dati certificati IB (`data/raw/eq_*_1d.parquet`, ADJUSTED_LAST) con una **sorgente di rete indipendente** (Yahoo Finance chart API, tokenless). È la lezione fondante del progetto: non fidarti di un feed solo (il disastro v2.0.0 era un feed contaminato). **Risultato (180g, BTC… no: 6 ETF):** dopo l'allineamento corretto **tutti CONCORDE**, deviazione sui rendimenti **≤1.2bps**, ultimo close identico (0.0bps). Il feed IB è validato. **La lezione (errore che ho fatto e corretto):** un primo confronto naïf (nostro close *adjusted* vs `close` *grezzo* di Yahoo) ha **falso-allarmato 4/6 ticker** a 30-52bps (SPY 30, TLT 40, HYG 52). Le divergenze erano **tutte su singoli giorni = stacco dividendo**: confrontavo dividend-adjusted vs non-adjusted. Usando l'`adjclose` di Yahoo (apples-to-apples) → ~0bps. **Regola: ogni divergenza va SPIEGATA prima di gridare "feed sporco" — e prima di tradarci sopra.** Lo strumento resta come validatore di feed riutilizzabile / template del pre-trade price-check live. ## 2) "SCALPING quando sottoquotata" — non testabile/eseguibile; testato lo swing MR Lo **scalping intraday non è valutabile**: (a) non abbiamo dati intraday (solo `eq_*_1d`), (b) non è eseguibile — **PDT rule**: il day-trading di azioni US sotto **$25.000** è limitato a 3 day-trade/5gg → lo scalping è *regolatoriamente bloccato* al capitale del progetto (l'analogo equity del muro STAT-MODE a $600 sul crypto), (c) IB Gateway è instabile qui (timeout ordini diagnosticato). Versione onesta e testabile = **swing mean-reversion** "compra quando sottoquotata": Connors RSI2<10 + filtro trend MA200, exit a MA5. Causale (segnale ≤ close[i], entry a close[i]), netto fee, hold-out 2015+: | ETF | FULL Sh | DD | CAGR | expo | HOLD Sh | **B&H HOLD Sh** | |---|---|---|---|---|---|---| | SPY | +0.75 | 15% | +5% | 13% | +0.70 | **+0.81** | | QQQ | +0.50 | 16% | +4% | 14% | +0.56 | **+0.92** | | IWM | +0.32 | 22% | +2% | 13% | +0.15 | +0.53 | | DIA | +0.38 | 13% | +2% | 14% | +0.55 | +0.74 | | EEM | +0.41 | 20% | +3% | 13% | +0.36 | +0.46 | Fee sweep SPY: Sh 0.82 (0bps) → 0.75 (3) → 0.70 (5) → 0.58 (10bps RT). **Lettura onesta:** la mean-reversion "buy the dip" sugli indici equity ha un edge **reale ma modesto** (Sharpe ~0.5-0.75, investito solo ~13% dei giorni) **che NON batte il buy&hold risk-adjusted** (B&H hold-out 0.81 su SPY vs 0.70 della MR), con CAGR piccolo (2-5%) e sensibile ai costi. È capital-efficient in teoria (cash 87% del tempo) ma il valore aggiunto vs "tieni l'indice" è negativo o nullo, e la frequenza *scalping* che potrebbe aggiungere valore è bloccata dalla PDT. ## Verdetto - **Check dati dalla rete: FATTO e utile** — feed IB validato (≤1.2bps vs Yahoo); strumento riutilizzabile. Unico vero keeper della sessione equity. - **Scalping "sottoquotate": NON deployabile** — non testabile (no intraday), non eseguibile (PDT $25k, IB instabile). Lo swing MR daily testabile **non batte il buy&hold** → niente edge schierabile. Conferma il pattern del progetto: l'idea promettente sopravvive solo finché non incontra eseguibilità + benchmark onesto. Nessun impatto sul book live crypto (branch separato).