Backtest Python vs MT5 reale: un divario del 92-98%
Contenuti
- Specifiche della strategia — Breakout della sessione di New York dopo il range asiatico
- Risultati del Walk-Forward Python — Numeri spettacolari
- E invece — il backtest reale MT5 su 14 anni (USDJPY_NY_BREAKOUT_EA.mq5 v2.0)
- Perché un divario così ampio — 5 ipotesi
- 1. Spread e slippage non considerati
- 2. Qualità dei dati
- 3. Divario nel modello di esecuzione
- 4. Fragilità pratica del TP a due stadi basato su ATR
- 5. Effetto negativo del semi-interesse composto CASCADE sul conto reale
- Lezioni a livello di settore
- 1. Il backtest/Walk-Forward Python **non è un riferimento valido per il conto reale MT5**
- 2. Anche un'"ipotesi economicamente razionale" richiede la verifica sul conto reale
- 3. Ulteriore conferma della regola del CLAUDE.md sulla "verifica obbligatoria su conto reale"
- La decisione di FXEA365
- Un suggerimento per il settore — a chi utilizza il backtest Python
- Link correlati
Il divario del 92-98% tra il backtest Python e il conto reale MT5
Sono il gestore di FXEA365.
Questo articolo racconta integralmente come, il 2026-05-29, il confronto tra il Walk-Forward Python e il backtest reale MT5 su 14 anni della strategia NY Session Breakout abbia rivelato un divario di PF del 92-98%.
Si tratta di un dato fondamentale che riconferma, a livello di settore, che "numeri spettacolari in un backtest Python non garantiscono affatto lo stesso risultato su un conto reale MT5".
Specifiche della strategia — Breakout della sessione di New York dopo il range asiatico
| Voce | Impostazione |
|---|---|
| Timeframe | H1 |
| Range asiatico | 0-4h UTC (formazione del range nell'orario asiatico) |
| Orario di trading | 15-20h UTC (durante la sessione di New York) |
| Ingresso | Breakout dell'High/Low dell'orario asiatico |
| Uscita | SL = ATR × 0,5 / TP1 = ATR × 0,5 (chiusura del 50%) / TP2 = ATR × 7,0 |
| Lottaggio | Rischio 2% (semi-interesse composto CASCADE) |
Una strategia con un vantaggio teoricamente solido:
- La sessione di New York (15-20 UTC) coincide con l'orario di massima attività degli investitori istituzionali e con la concentrazione di liquidità
- Il range asiatico rappresenta un riferimento naturale, e il suo superamento verso l'alto o il basso è un segnale direzionale forte
- La chiusura in due fasi (TP1=ATR×0,5/TP2=ATR×7) protegge dai falsi breakout e cattura il trend
Risultati del Walk-Forward Python — Numeri spettacolari
Tra il 2026-05-27 e il 28, tramite scripts/gen_h1_ny_walkforward.py, è stato eseguito un Walk-Forward (Train 60% / Test 40%) su 9 valute:
| Coppia | PF train | PF test | DD test | WR test | Coerenza | Tasso di sopravvivenza OOS |
|---|---|---|---|---|---|---|
| EURUSD | 7,42 | 9,03 | 5,47% | 79,6% | 0,82 | 500/500 |
| GBPUSD | 11,78 | 13,00 | 31,85% | 84,2% | 0,91 | 500/500 |
| XAUUSD | 7,76 | 11,96 | 13,18% | 80,9% | 0,65 | (verifica precedente) |
| EURJPY | 9,41 | 7,93 | 7,46% | 79,2% | 0,84 | 500/500 |
| GBPJPY | 9,74 | 8,24 | 12,30% | 79,3% | 0,85 | 500/500 |
| USDJPY | 6,12 | 11,62 | 36,24% | 80,7% | 0,53 | (verifica precedente) |
| CADJPY | 7,59 | 5,76 | 32,81% | 75,9% | 0,76 | 499/500 |
| AUDJPY | 8,49 | 6,32 | 27,33% | 74,4% | 0,74 | 351/500 |
| NZDJPY | 9,22 | 6,51 | 15,05% | 70,6% | 0,71 | 500/500 |
Su tutte e 9 le valute: PF≥5 × win rate≥70% × tasso di sopravvivenza OOS 500/500.
Secondo la prassi del settore, un risultato simile andrebbe pubblicato sul sito con toni come "scoperto un vantaggio universale da sogno!" oppure "espansione della lineup su tutte le valute!".
E invece — il backtest reale MT5 su 14 anni (USDJPY_NY_BREAKOUT_EA.mq5 v2.0)
Seguendo la regola del CLAUDE.md sulla "verifica obbligatoria su conto reale", sono state riverificate con un backtest reale MT5 su 14 anni le 4 valute più forti nel Walk-Forward Python:
| Coppia | Walk-Forward Python (test) | Backtest reale MT5 su 14 anni | Divario | Risultato del conto |
|---|---|---|---|---|
| USDJPY | PF 11,62 / DD 36% | PF 0,77 / DD 99,72% | −93% | -$9.966 (quasi azzerato) |
| EURUSD | PF 9,03 / DD 5,47% | PF 0,73 / DD 99,84% | −92% | -$9.984 (quasi azzerato) |
| GBPUSD | PF 13,00 / DD 31,85% | PF 0,21 / DD 101,12% | −98% | -$10.112 (conto azzerato) |
| EURJPY | PF 7,93 / DD 7,46% | PF 0,49 / DD 100,01% | −94% | -$10.001 (conto azzerato) |
Sconfitta totale su tutte e 4 le valute, con un divario di PF rispetto al Walk-Forward Python del 92-98%.
Perché un divario così ampio — 5 ipotesi
1. Spread e slippage non considerati
Il backtest Python calcola su base close-to-close. Sul conto reale, ogni esecuzione è penalizzata da spread (0,5-2 pips) e slippage, con una perdita di 1-3 pips per operazione che si accumula nel tempo.
2. Qualità dei dati
Python utilizza dati Dukascopy M5 aggregati in H1. Il conto reale MT5 utilizza invece dati tick del broker (movimenti di prezzo molto più precisi). Anche a parità di "candela H1", il movimento interno dei prezzi è diverso.
3. Divario nel modello di esecuzione
Python simula un'esecuzione ideale (sempre al prezzo desiderato). Il conto reale MT5 è soggetto a vincoli di volume e spread, che generano un divario tra il prezzo desiderato e quello effettivamente eseguito, particolarmente evidente nelle fasce orarie ad alta volatilità (ad esempio subito dopo l'apertura di New York).
4. Fragilità pratica del TP a due stadi basato su ATR
Un design teoricamente elegante, ma il TP2=ATR×7 non viene quasi mai raggiunto sul conto reale:
- Backtest Python: calcola SL/TP ottimali "a posteriori" sui dati storici
- Conto reale: lo SL=ATR×0,5 scatta di frequente, mentre il trend raramente prosegue fino al TP2=ATR×7, generando una serie di stop loss consecutivi
5. Effetto negativo del semi-interesse composto CASCADE sul conto reale
Il meccanismo che adatta dinamicamente il lottaggio al saldo accelera i danni nelle fasi di perdita:
- Saldo $10K → Rischio 2% → Lotto 0,2
- Dopo una serie di perdite, saldo $8K → Rischio 2% → Lotto 0,16 (riduzione minima)
- Dopo un'ulteriore serie di perdite, saldo $5K → Rischio 2% → Lotto 0,10 (la riduzione non basta a contenere le perdite)
La "magia dell'interesse composto" teorica si trasforma in un effetto contrario sul conto reale.
Lezioni a livello di settore
1. Il backtest/Walk-Forward Python non è un riferimento valido per il conto reale MT5
- Anche "PF≥5 × WR≥70% × tasso di sopravvivenza OOS 500/500" risulta privo di significato sul conto reale
- Il giudizio di "robustezza" o "solidità OOS" del Walk-Forward valuta la robustezza all'interno dei dati Python, non è un sostituto della verifica sul conto reale
2. Anche un'"ipotesi economicamente razionale" richiede la verifica sul conto reale
- Affermazioni come "gli investitori istituzionali sono attivi nell'orario di New York" o "il superamento del range asiatico è un segnale direzionale" sono teoricamente corrette
- Tuttavia, una sconfitta totale su 14 anni di conto reale MT5 dimostra un divario enorme tra teoria e realtà
3. Ulteriore conferma della regola del CLAUDE.md sulla "verifica obbligatoria su conto reale"
- Con 25 EA + 4 strategie NY Session, per un totale di 29 verifiche, è ormai definitivamente accertato che il backtest Python non è affidabile
- Questo dato rafforza, a livello di settore, l'identità di FXEA365 (basata sulla "dimostrazione su conto reale, non su numeri spettacolari")
La decisione di FXEA365
Poiché tutte e 9 le valute della strategia NY Session hanno fallito la verifica sul conto reale MT5, la pubblicazione sul sito non è possibile.
La lineup pubblicata resta invariata: solo i quattro pilastri principali EURJPY ASIA / GBPJPY ASIA / BLAZE GOLD / AUDCAD PEACE-CLONE.
Un rendimento annuo complessivo di +35,5% (Rischio 5%) non è certo spettacolare, ma è un numero reale, dimostrato da 14 anni di backtest su conto reale.
Un suggerimento per il settore — a chi utilizza il backtest Python
Questo non vuole essere una critica al backtest Python. Consigliamo però il seguente uso corretto:
| Uso corretto del backtest Python | Consigliato |
|---|---|
| Verifica iniziale di un'idea di strategia (capire se la direzione è promettente) | ✅ Consigliato |
| Screening dell'intervallo dei parametri (individuare cosa verificare con precisione) | ✅ Consigliato |
| Verifica della robustezza tramite Walk-Forward (controllo dell'overfitting con separazione Train/Test) | ✅ Consigliato |
| Base per i numeri pubblicati sul sito | ❌ Vietato (divario rispetto al conto reale) |
| Uso del "tasso di sopravvivenza OOS" come argomento di vendita | ❌ Vietato (non sostituisce il conto reale) |
| Decisione sulla pubblicazione di un EA | ❌ Vietato (richiede la verifica sul conto reale MT5) |
I numeri del backtest Python sono solo un "indicatore di screening iniziale". Per la pubblicazione ufficiale è necessaria la verifica sul conto reale MT5.
Link correlati
- EA principali (verificati su conto reale):
- ★1 EURJPY ASIA BREAKOUT (PF reale su 14 anni = 1,18)
- ★2 GBPJPY ASIA BREAKOUT (PF reale su 14 anni = 1,38)
- ★3 BLAZE GOLD v2.30 (PF reale su 7 anni = 1,61)
- ★4 AUDCAD PEACE-CLONE (PF reale su 10 anni = 1,36)
- Articoli correlati:
FXEA365 — pubblichiamo gratuitamente solo strategie che funzionano davvero, verificate con 14 anni di backtest reale su MT5, non numeri ufficiali roboanti.
📧 Avvisi prima degli aumenti di prezzo + corso email gratuito di 5 giorni
Tutti gli EA sono a prezzo di lancio e salgono a scatti con le vendite. Ricevi un avviso prima di ogni aumento, più un'email al giorno su trading algoritmico, lettura dei backtest e scelta del broker.
* Privacy rigorosamente protetta. Potete cancellarvi in qualsiasi momento.