L'ora del server MetaTrader e perché il tuo EA effettua operazioni all'ora sbagliata
Quasi tutte le segnalazioni relative a un EA che “opera nel momento sbagliato” si riducono a un unico motivo: gli orari indicati nelle impostazioni sono quelli del broker, non i tuoi. I broker seguono fusi orari diversi, che cambiano due volte all’anno, e nessuno dei due corrisponde a quello del luogo in cui vivi. Calcolare lo scostamento richiede un minuto ed è la differenza tra operare durante l’intera sessione di Londra e operare solo per due ore di essa.
Tre orologi, e solo uno di essi segna l'ora
Quando un EA è in esecuzione, sono in gioco tre diversi intervalli di tempo:
- L'orologio del tuo computer. Non è rilevante. MetaTrader non lo utilizza né per i grafici né per la logica degli EA.
- L'orologio del server del broker. È questo il simbolo impresso sulle candele ed è ciò che legge un EA quando chiede che ora sia.
- GMT/UTC. Il parametro di riferimento rispetto al quale viene descritto tutto il resto e che viene utilizzato dal calendario economico.
Ogni impostazione oraria all'interno di un EA — l'ora di inizio, l'ora di fine, la regola "nessuna negoziazione il venerdì dopo" — è contenuta nella seconda.
Calcolare l'offset in un minuto
- Apri Osservatorio di mercato con Ctrl+M. L'orologio sopra l'elenco dei simboli indica l'ora del server.
- Confrontalo con l'ora UTC attuale.
- La differenza è l'offset del tuo broker, solitamente +2 o +3.
Un secondo controllo: apri un grafico M1 e controlla l'ora indicata sull'ultima candela. Dovrebbe corrispondere all'orologio di Market Watch.
Prendi nota da qualche parte dell'offset, perché ti servirà ogni volta che leggerai la descrizione di una strategia che fa riferimento alle sessioni in GMT.
Perché la maggior parte dei broker utilizza il fuso orario GMT+2 o GMT+3
Non è una scelta arbitraria. Un server GMT+3 durante il periodo dell'ora legale negli Stati Uniti fissa la chiusura giornaliera della candela alle 00:00 (ora del server), il che coincide con la chiusura di New York alle 17:00 (ora locale).
È proprio questa corrispondenza il motivo per cui esiste tale convenzione, e ciò comporta una conseguenza: cinque candele giornaliere a settimana anziché sei, ciascuna delle quali copre un’intera giornata di negoziazione anziché una frazione di essa. Un broker con fuso orario GMT+0 genera una sesta candela domenicale della durata di poche ore, il che modifica i valori di ogni indicatore giornaliero rispetto al grafico di un broker con fuso orario GMT+3.
Questo è importante se si esegue il backtest sui dati storici di un broker e si opera su quelli di un altro. Stessa strategia, candele diverse, segnali diversi.
Come l'ora legale influisce sulle tue impostazioni
La maggior parte dei broker segue il calendario statunitense, quindi il server rimane su GMT+3 durante l'estate e su GMT+2 durante l'inverno. Le date di passaggio sono la seconda domenica di marzo e la prima domenica di novembre.
Le impostazioni orarie non cambiano di conseguenza. Un intervallo orario dalle 8 alle 17 stabilito in estate, in termini di mercato, slitta di un’ora in avanti a partire da novembre.
Due risposte ragionevoli:
- Operazioni 24 ore su 24 se la strategia non dipende dalla sessione. Niente da gestire, niente che possa andare storto.
- Regolare la finestra due volte all'anno, e inserisci un promemoria nel tuo calendario per quelle due domeniche. Alcuni assistenti elettronici dispongono di una funzione di programmazione oraria proprio per questo scopo.
Come impostare correttamente una finestra di sessione
Supponiamo che tu voglia la sessione di Londra, dalle 08:00 alle 17:00 (ora del Regno Unito), e che il tuo broker sia a GMT+3 durante l'estate. L'ora legale del Regno Unito è GMT+1, quindi il broker è due ore avanti rispetto a Londra: nelle impostazioni dell'EA, la finestra diventa dalle 10 alle 19.
Procedi sempre in quest’ordine — calcola l’ora della sessione secondo l’ora locale, convertila in GMT, poi aggiungi l’offset del broker — e controlla poi il risultato confrontandolo con il grafico. Il modo più semplice per verificare è osservare dove inizia effettivamente la sessione sul grafico e leggere l’ora sull’asse.
Quando questo si manifesta come un bug
"È stato negoziato solo per due ore." L'intervallo è corretto secondo il tuo orario, ma errato secondo l'orario del server, quindi la maggior parte di esso non rientra nell'orario di mercato.
"Non è mai stato negoziato." La finestra si apre in orari in cui la coppia è chiusa o inattiva, spesso durante la sessione asiatica per una coppia europea.
"A novembre ha cambiato improvvisamente comportamento." Il passaggio all’ora legale ha comportato lo spostamento del server, ma le impostazioni sono rimaste invariate.
"Il filtro delle notizie si attiva in momenti imprevedibili." Il calendario di MetaTrader funziona internamente in UTC, quindi un EA che combina gli orari del calendario con quelli del server deve effettuare la conversione. Se il tuo EA dispone di un'opzione di regolazione manuale dell'ora per il filtro delle notizie, è proprio a questo che serve.
Se l'EA non sta facendo assolutamente nulla invece di operare in orari insoliti, la causa è molto probabilmente una delle sette indicate in EA non apre posizioni.
Una nota sul backtesting
Lo Strategy Tester utilizza i dati storici del broker a cui sei connesso, quindi riprende l'ora del server di quel broker. Un test eseguito su un broker con fuso orario GMT+2 e con operazioni effettuate su uno con fuso orario GMT+3 mette alla prova una serie di candele leggermente diversa e una finestra di sessione sfalsata.
Per la maggior parte delle strategie l'effetto non è significativo, mentre risulta determinante per qualsiasi strategia che utilizzi un filtro temporale ristretto. Effettuate dei test nel mercato in cui intendete operare, o almeno accertatevi di sapere in che modo variano gli orari.