Files
PythagorasGoal/Old/docs/diary/2026-06-09-blind-traders-game2.md
Adriano Dal Pastro 14522262e6 chore(reset): v2.0.0 — storico certificato Deribit mainnet, ripartenza pulita
Reset del progetto su fondamenta verificate dopo la scoperta che l'intera
libreria "validata OOS" era artefatto di feed contaminato (print fantasma del
feed Cerbero TESTNET + storico Binance/USDT).

- Storico ricostruito da Deribit MAINNET (ccxt pubblico, tokenless) e
  CERTIFICATO (certify_feed.py): BTC/ETH puliti su TUTTA la storia
  (mediana 2-6 bps vs Coinbase USD), integrita' OHLC + coerenza resample
  (maxΔ 0.00) + cross-venue OK. Alt esclusi (illiquidi/divergenti: LTC/DOGE
  50-82% barre flat; XRP/BNB non certificabili).
- Verdetto sul feed pulito: FADE / PAIRS / XS01 / TSM01 morti (ogni
  portafoglio Sharpe -2.3..-3.0, DD ~40%); solo SH01 e frammenti HONEST
  con segnale residuo, da ri-validare in isolamento.
- Cleanup "restart pulito": strategie, stack live (src/live, src/portfolio,
  runner/executor, yml, docker), ~100 script ricerca/gate, waste/games/
  portfolios, dati non certificati + cache e 60+ diari -> archiviati in Old/
  (preservati, non cancellati). Diario consolidato in un unico documento.
- Skeleton ricerca tenuto: Strategy ABC + indicatori + src/fractal +
  src/backtest/engine + load_data; tool dati certificati (rebuild_history,
  certify_feed, audit_feed, multi_source_check).
- Universo dati ATTIVO: solo BTC/ETH (5m/15m/1h); guardrail fisico
  (load_data su alt -> FileNotFoundError). Esecuzione DISABILITATA, conto flat.

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

2.4 KiB

2026-06-09 — Gioco "Blind Traders" sessione 2: timing diversi (30m/2h/4h)

Seconda sessione del gioco (vedi 2026-06-09-blind-traders-game.md), stesso protocollo (100 agenti ciechi su BTC/ETH anonimi, scoring PNL+%win, ≥10 trade/mese, 90 epoche, cull 10% ogni 10 epoche → 10 finalisti, split a 3 anti-overfit) ma su timeframe diversi: game 1 = 5m/15m/1h; game 2 = 30m/2h/4h (medio-lunghi). Engine con resampling aggiunto (engine._RESAMPLE: 30m←15m, 2h/4h←1h). Specs in data/games/specs2/, risultato data/games/tournament_result2.json.

Diversita' proposte (di nuovo: riscoperta cieca della mean-reversion)

100 agenti: 74 pairs, 25 zscore, 1 breakout; 100% reversion; tf 34/33/33. Come nel game 1, leggendo solo le statistiche anonime (autocorrelazione negativa del log-ratio, continuazione post-mossa ~40%) gli agenti convergono sulla reversione senza sapere che sia crypto.

Classifica finale — tutti 30m pairs

Vincitore agente #36 (30m, pairs ETH/BTC):

  • TEST/OOS: PnL +1451%, win 77%, 43.4 trade/mese, Sharpe 12.3.
  • I 10 finalisti sono TUTTI 30m pairs (TEST Sharpe ~12, win 76-77%, tpm 43-49).

Finding chiave: la regola ≥10 trade/mese e' un FILTRO sul timeframe

Quanti agenti per tf superano la soglia di attivita' + qualita':

tf agenti ≥10 trade/mese positivi OOS miglior OOS Sharpe (pnl/win/tpm)
30m 34 34 (100%) 26 11.6 (1405% 76% 56)
2h 33 29 (88%) 17 6.1 (512% 79% 17)
4h 33 4 (12%) 6 1.4 (103% 68% 14)

A 4h solo 4/33 agenti riescono a fare ≥10 trade/mese (le barre sono troppo rade per la reversione pairs); e l'edge cala col timeframe (Sharpe 11.6→6.1→1.4). Per questo i finalisti sono tutti 30m.

Lezione cross-game (game 1 + game 2)

Esiste una frontiera frequenza-vs-edge: la regola ≥10 trade/mese mette un pavimento sul timeframe (i lunghi non fanno abbastanza trade), il costo/edge mette un soffitto (i cortissimi sono cost-fragili). Il punto ottimo e' il timeframe piu' corto con edge ancora robusto: game 1 (con 15m disponibile) → vince 15m; game 2 (senza 15m) → vince 30m. Sempre ETH/BTC spread reversion. Coerente con l'analisi di robustezza del 15m (2026-06-09-pairs15m-robustezza.md): piu' corto = piu' trade = piu' edge di backtest, ma piu' fragile ai costi. Il gioco trova l'edge; la prudenza di deploy (mezza size) gestisce la fragilita'. Artefatti: scripts/games/, data/games/tournament_result2.json.