feat: strategie 1-10, framework analisi frattale, download dati storici BTC/ETH

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-27 00:55:13 +02:00
parent 49ee092c7f
commit 988739b2f5
29 changed files with 3300 additions and 0 deletions
+92
View File
@@ -0,0 +1,92 @@
# 2026-05-26 — Giorno 1: Setup e download dati
### 23:15 — Inizializzazione progetto
**Cosa:** creato struttura progetto Python con uv, git init, moduli base
**Perché:** servono fondamenta solide per ricerca iterativa. Struttura: src/data (download/storage), src/fractal (analisi pattern), src/strategies (strategie trading), src/backtest (engine di test), src/nn (reti neurali), src/utils (utility)
**Atteso:** progetto funzionante con dipendenze installate
**Reale:** in corso
### 23:20 — Verifica Cerbero MCP
**Cosa:** testato accesso API Cerbero su cerbero-mcp.tielogic.xyz per dati storici crypto
**Perché:** verificare se può fornire dati dal 2018
**Atteso:** dati storici cross-exchange (consensus multi-sorgente)
**Reale:** API funziona, dati recenti OK. Per storico 2018→oggi uso Binance via ccxt (copertura temporale maggiore, dati 1m disponibili)
### 23:25 — Script download dati
**Cosa:** creato src/data/downloader.py — scarica OHLCV da Binance per BTC/USDT e ETH/USDT su 4 timeframe (1m, 5m, 15m, 1h) dal 2018-01-01 a oggi. Formato: parquet (veloce, compresso). Supporta resume in caso di interruzione.
**Perché:** dati locali per iterazione veloce. Parquet per caricamento istantaneo vs CSV.
**Atteso:** ~4.2M candele 1m per asset, ~70K candele 1h per asset. Download 1m stimato ~30-60 min per asset.
**Reale:** in corso (avvio download)
### Metriche target
| Metrica | Valore target |
|---|---|
| Accuratezza previsione direzione | >80% |
| ROI annuo (con fees) | >30% |
| Capitale iniziale | €1.000 |
| Obiettivo giornaliero (steady state) | €50/giorno |
| Fee considerate | 0.1% maker/taker (Binance standard) |
### Approccio
1. **Focus frattali**: pattern ricorrenti multi-scala, non indicatori classici
2. **Multi-timeframe**: conferma segnali su scale diverse (1m→1h)
3. **Fuori dagli schemi**: combinare Fourier, auto-similarità, entropia di Shannon, dimensione frattale di Hausdorff
4. **Pragmatismo**: se un approccio non funziona, pivotare veloce. Misurare tutto.
### 23:40 — Analisi baseline completata
**Cosa:** analisi distribuzione pattern discreti (U/D/0) su BTC 1h, 73.557 candele 2018→2026
**Perché:** baseline per capire se pattern candlestick semplici hanno potere predittivo
**Atteso:** almeno alcuni pattern con >60% accuracy direzionale
**Reale:** NESSUN pattern supera 55% accuracy a 24h. Max: DDD→58.5% a 1h, ma scende a 53.6% a 24h. Pattern discreti semplici NON hanno edge significativo.
**Lezione:**
- Distribuzione candele quasi uniforme: UP 42.1%, DOWN 40.8%, DOJI 17.1%
- 1080 pattern unici (esattamente lo spazio teorico 3^3 + 3^4 + 3^5 + 3^6)
- Pattern alternanti (UDU, DUD) più frequenti → mercato mean-reverting a scala oraria
- Serve andare oltre: features continue (body/shadow ratios, volume), Fourier, self-similarity, ML
**Benchmark:** Buy & Hold test period: +110%, annualizzato 34.3%, Sharpe 0.52
### 23:40 — Download dati completato
**Cosa:** scaricati dati storici BTC + ETH, 3 timeframe (5m, 15m, 1h) dal 2018-01-01
**Fonti:** Cerbero MCP (Deribit) per set 2018+, Binance/ccxt per gap iniziale
**Reale:**
| Asset | TF | Candele | Peso |
|-------|-----|---------|---------|
| BTC | 5m | 882.630 | 23.6 MB |
| BTC | 15m | 294.213 | 9.1 MB |
| BTC | 1h | 73.557 | 2.8 MB |
| ETH | 5m | 882.312 | 19.4 MB |
| ETH | 15m | 294.107 | 7.9 MB |
| ETH | 1h | 73.531 | 2.5 MB |
**Note:** 1m rimandato (troppo pesante per primo round). 5m sufficiente per analisi fine-grained.
### 23:50 — Strategia 3: Fourier projection — FALLITA
**Cosa:** proiezione FFT naive su BTC 1h (ispirata dal paper Pythagoras)
**Atteso:** almeno 55% accuracy direzionale
**Reale:** 49.8% accuracy (=random), -99.9% return. Tutte le varianti parametri (W=144-588, N=5-50) identicamente pessime.
**Lezione:** FFT extrapola sinusoidi che non continuano fuori finestra. Il paper Pythagoras non fa proiezione naive — usa trasformazioni geometriche (centro inversione, riflessioni). Approccio sbagliato, non la tecnica in sé.
### 00:05 — Strategia 4: Regime-aware fractal ML — PARZIALE SUCCESSO
**Cosa:** RandomForest + GradientBoosting su features frattali (Hurst, fractal dim, self-similarity, vol ratio, momentum, candle patterns)
**Atteso:** >55% accuracy con ML su features ricche
**Reale:**
- RF: 38% accuracy (3 classi), pochissimi segnali ad alta confidenza (8 @ thr 0.55 → 100% acc)
- GB: 41.6% accuracy, MA a threshold sweep:
- thr=0.65: **63.6% accuracy**, 66 segnali, **+5.7% return**, Sharpe 0.21
- thr=0.80: **80% accuracy**, 5 segnali
- Feature importance: volatility (21%) > momentum (10%) > fractal features (6%)
**Lezione:**
1. Classificazione 3-classi troppo dispersiva → switch a binario
2. Features frattali contribuiscono ma non dominano — serve combinarle meglio
3. Trade filtering ad alta confidenza funziona: meno trade, più precisi
4. Direzione giusta: ML su features frattali produce edge reale, anche se piccolo
+72
View File
@@ -0,0 +1,72 @@
# 2026-05-27 — Giorno 2: Strategie e risultati
### 00:00 — Strategia 5: Enhanced fractal (DATA LEAKAGE trovata!)
**Cosa:** GBM con features multi-window (4 finestre × 9 features), classification binaria, BTC + ETH su 3 lookahead
**Atteso:** miglioramento rispetto a #4 con più features e classificazione binaria
**Reale:** risultati iniziali troppo belli (84.5% accuracy BTC, 85% ETH) → **DATA LEAKAGE TROVATA**
**Bug:** `returns[i-w : i]` includeva `returns[i-1]` che usa `close[i]` (1 candle nel futuro)
**Fix:** cambiato a `returns[i-w : i-1]` — re-run in corso
**Lezione:** SEMPRE verificare che nessuna feature usi dati oltre il timestamp di decisione. Returns ha off-by-one insidioso.
### 00:10 — Strategia 6: Structural Pattern KNN + GBM
**Cosa:** features normalizzate da finestra OHLC (close norm, body, direction, shadow, volume), con KNN e GBM
**Reale:**
- KNN: max 55.9% accuracy (K=100, thr=0.65) → edge minimo
- **GBM: thr=0.65, 795 trades, 58.6% accuracy, +57.5% return** ← MIGLIOR SINGOLO (senza leakage)
**Lezione:** features strutturali normalizzate battono features raw. GBM >> KNN per questo tipo di dati.
### 00:20 — Strategia 7: LSTM
**Cosa:** LSTM (2 layer, 64 hidden, dropout 0.3) su sequenze di 48 candele × 6 features per-candle
**Reale:**
- BTC test: 51.9% base, ma thr=0.60: **58.4% accuracy, 214 trades, +4.3%**
- BTC thr=0.65: **64.3% accuracy** ma solo 14 trade
- ETH: 52.6% base, thr=0.55: **54.5%, +19.9%**
- Training su CPU (CUDA non disponibile) → 14 epoch con early stopping
**Lezione:** LSTM cattura pattern ma non aggiunge molto rispetto a GBM su features ingegnerizzate. Edge comparabile (~58-64%) con molte meno features. CPU training lento.
### 00:30 — Strategia 8: Ensemble multi-timeframe
**Cosa:** 3 modelli (structural 1h, multi-tf 15m, combined) con voting e media probabilità
**Reale:**
- M1_structural thr=0.65: 829 trades, **58.3% acc, +53.4%, 17.8% annualizzato**
- M2_multi_tf: scarso (15m features da sole non bastano)
- Ensemble agree≥2, thr=0.65: 520 trades, **59.2% accuracy, +19.9%**
- Ensemble agree≥3, thr=0.65: 27 trades, **70.4% accuracy** ma pochi trade
**Lezione:**
1. Multi-timeframe aggiunge margine (+1% accuracy nell'ensemble)
2. Consensus forte (3/3) raggiunge 70%+ ma troppo pochi trade
3. Il collo di bottiglia è la frequenza segnali ad alta confidenza
### 00:45 — Strategie 9 e 10 in esecuzione
- **#9**: Walk-forward validation con GBM, features combinate structural+fractal
- **#10**: High precision (target >80%) con ensemble 5 modelli (2×GBM, RF, ExtraTrees, LogReg), consensus voting, leva 3x
### Riepilogo risultati validi (no leakage)
| # | Nome | Accuracy | Return | Ann. | Trades | Note |
|---|------|----------|--------|------|--------|------|
| 6 | GBM structural | 58.6% | +57.5% | ~20% | 795 | Miglior singolo |
| 8/M1 | Structural WF | 58.3% | +53.4% | 17.8% | 829 | Robusto |
| 8/ens | Ensemble 2/3 | 59.2% | +19.9% | 7.2% | 520 | Più filtrato |
| 8/ens3 | Ensemble 3/3 | 70.4% | +11.3% | 4.2% | 27 | Alta acc, pochi trade |
| 4 | GBM fractal | 63.6% | +5.7% | ~3% | 66 | Pochi ma precisi |
| 7 | LSTM | 58.4% | +4.3% | 3.1% | 214 | Comparabile a GBM |
### Analisi gap verso target
| Target | Attuale | Gap |
|--------|---------|-----|
| Accuracy >80% | max 70.4% (ens 3/3) | serve +10% |
| ROI annuo >30% | max ~20% (structural) | serve +10% |
| €50/giorno da €1000 | richiede ~5% daily | richiede crescita capitale su 6 mesi |
### Prossimi passi
1. Verificare strategia 5 corretta (senza leakage)
2. Risultati strategia 9 (walk-forward) e 10 (high precision ensemble)
3. Se accuracy ancora insufficiente: provare features da 5m aggregati, o approach completamente diverso (reinforcement learning?)
4. Valutare combinazione: multi-asset (BTC+ETH) per diversificazione
+17
View File
@@ -0,0 +1,17 @@
# Diario di Ricerca — PythagorasGoal
Registro cronologico di ogni passo del progetto: decisioni, esperimenti, risultati attesi e reali.
## Formato entry
Ogni entry segue il formato:
```
### YYYY-MM-DD HH:MM — Titolo
**Cosa:** descrizione azione
**Perché:** motivazione
**Atteso:** risultato previsto
**Reale:** risultato effettivo
**Note:** osservazioni, lezioni apprese
```