Trattare la volatilità come direzione
Un'alta volatilità dice che il prezzo si muove molto, non che sta salendo. Tendenza e volatilità sono misurazioni separate — un range violento è ad alta volatilità e senza tendenza allo stesso tempo.
La volatilità è il grado di variazione del prezzo nel tempo: quanto si muove, non in che direzione. In statistica è la deviazione standard dei rendimenti; in un EA per MT5 si legge come Average True Range e decide se la distanza di stop del mese scorso è ancora giusta oggi.
anche: market volatility, price volatility
Aggiornato · Revisionato
Quanto tende a muoversi il prezzo, non in che direzione. Un mercato tranquillo e uno violento possono chiudere la settimana allo stesso prezzo; la volatilità è la differenza tra i due percorsi.
Ogni distanza di stop, target e dimensione del lotto dentro un EA è calibrata su qualche ipotesi di quanto il prezzo si muove in una sessione. La volatilità è quell'ipotesi resa esplicita. Quando cambia dopo la messa in produzione, un EA che era corretto diventa sbagliato senza che una sola riga della sua logica sia cambiata.
σ = deviazione standard dei rendimenti periodici · σ annualizzata = σ_giornaliera × √252 La definizione statistica è la deviazione standard dei rendimenti, ed è quella usata dall'indice di Sharpe, dal Value at Risk e da ogni modello di rischio. La definizione pratica dentro un EA è l'Average True Range, che misura la stessa idea in unità di prezzo e non ha bisogno di una serie di rendimenti per essere calcolato. Due cifre chiamate «volatilità» sono spesso queste due cose diverse.
Nessun numero da solo descrive una strategia. Queste metriche cambiano la lettura di questo valore.
Un'illustrazione pratica: lo stesso EA usa uno stop fisso di 30 pip attraverso due regimi. Cambia solo l'ampiezza di un movimento orario ordinario.
La versione basata su ATR si allarga con il mercato — ma la dimensione del lotto deve allora ridursi con essa.
Calcolo 30 ÷ 12 = 2,5 ampiezze · 30 ÷ 34 = 0,88 ampiezze
Risultato Uno stop fisso cambia significato di un fattore quasi tre; uno stop basato su ATR no
Le pagine EA di mt5depot indicano la finestra testata e la fonte dei dati per ogni scheda, quindi dalle date si può leggere se un risultato copre più di un regime. Ogni cifra misurata in questa pagina proviene dai registri di operazioni pubblicati di quelle schede (EXP-VOL-REGIME-001), su base operazioni chiuse.
Un'alta volatilità dice che il prezzo si muove molto, non che sta salendo. Tendenza e volatilità sono misurazioni separate — un range violento è ad alta volatilità e senza tendenza allo stesso tempo.
Sui registri pubblicati, il trimestre più volatile del P/L giornaliero di un EA è stato in profitto in 13 su 22, e il peggior singolo giorno è caduto fuori da quel trimestre in 15 su 22. Un filtro che spegne l'EA in alta volatilità avrebbe saltato quel trimestre e mancato comunque la maggior parte dei giorni peggiori.
Uno stop basato su ATR che triplica in un regime volatile triplica il denaro a rischio, a meno che la dimensione della posizione non scenda con esso. Lo stop adattivo aiuta solo quando è abbinato a un dimensionamento adattivo.
Il tester non stampa mai una cifra di volatilità. Tre delle sue impostazioni decidono quanta ne raggiunge il report.
Modellazione. Every tick based on real ticks riproduce il percorso registrato dentro ogni candela, quindi uno stop dentro una candela ordinaria viene colpito quando sarebbe stato colpito. Every tick generato dalle candele M1 interpola quel percorso, e Open prices only lo scarta. Una strategia il cui stop è più stretto dell’ampiezza della candela non può essere giudicata su nessuna delle due — vedi dati tick e qualità di modellazione.
Spread. Strategy Tester → Settings → Spread offre Current oppure un numero fisso di punti. Entrambi fissano un solo valore per anni interi, quindi l’allargamento che arriva con un picco di volatilità è assente da un test a tick generati. Sui tick reali lo spread è quello che il file dei tick conteneva.
Input. Uno stop dimensionato sull’ATR espone due input nella scheda Inputs,
il periodo e il moltiplicatore. Un moltiplicatore che funziona a 2,0 ma non a
1,8 o 2,2 è stato adattato ai ritracciamenti di una finestra, non alla
volatilità. In MQL5 l’handle si crea una sola volta con
iATR(_Symbol, PERIOD_CURRENT, 14) in OnInit. Il valore si legge
dall’ultima candela completata, indice 1, così la distanza di stop non dipende
dal momento in cui il segnale è scattato. La voce ATR ha le
impostazioni.
Ogni scheda porta con sé il suo elenco di operazioni chiuse, quindi la σ del P/L giornaliero di un EA può essere misurata per trimestre di calendario e confrontata con l’intera finestra. Due delle 24 schede non raggiungono mai 10 giorni attivi in alcun trimestre e sono state saltate, non riempite.
| Misura (base operazioni chiuse, trimestri con 10+ giorni attivi) | Mediana sui 22 EA | Intervallo o conteggio |
|---|---|---|
| Trimestri qualificati per EA | 15,5 | 375 in totale |
| Ampiezza di regime: σ del trimestre più volatile ÷ σ del più calmo | 2,29× | da 1,25× a 5,33× |
| EA la cui ampiezza di regime supera 2× | — | 15 su 22 |
| Trimestri entro ±25 % della σ dell’intera finestra | 78,76 % | 282 su 375 |
| Peggior singolo giorno dentro il trimestre più volatile | — | 7 su 22 |
| Il trimestre più volatile ha perso denaro | — | 9 su 22 |
| σ dell’ultimo trimestre qualificato ÷ σ dell’intera finestra | 0,91× | sotto 1 in 17 su 22 |
Due righe contraddicono ciò che un filtro di volatilità presuppone. Il giorno peggiore è caduto fuori dal trimestre più volatile in 15 EA su 22, e quel trimestre ha guadagnato in 13 casi su 22. Un singolo giorno cattivo non è un regime, e una misura mobile non lo vede arrivare.
L’ampiezza maggiore appartiene a Murmuration: una σ trimestrale del 4,591 % nel 2026-Q1 contro lo 0,862 % nel trimestre successivo, 5,33 volte di distanza con impostazioni identiche. Il suo giorno peggiore, 9,579 % il 2020-03-18, stava sei anni prima in un trimestre più calmo.
Leggi il regime, non il livello: confronta l’ATR di oggi con l’ATR sulla finestra testata, sul timeframe su cui l’EA opera.
CopyBuffer(handle, 0, 1, bars, array) e fai la media dell’array.Come eseguire un backtest in MT5 copre le impostazioni qui sopra, e l’ottimizzazione dei parametri il controllo sui valori vicini per un moltiplicatore dell’ATR. Come un picco si trasforma in denaro è l’argomento di dimensionamento della posizione, slippage e drawdown massimo.