Oggi parliamo di una novità interessante per tutti gli appassionati di trading: l'implementazione avanzata della modalità multivaluta in MetaTrader 5. Questa funzionalità è integrata nella funzione OnTick(string symbol), e offre numerosi vantaggi per i traders che vogliono ottimizzare le loro strategie.
Benefici:
- Consente di operare in un vero ambiente multivaluta sia su conti demo che reali.
- Ha impostazioni semplici e facili da configurare.
- La lista degli eventi per OnTick(string symbol) è personalizzabile: puoi scegliere tra NewTick e/o NewBar.
- La lista dei simboli è configurabile (puoi utilizzare tutti i simboli da Market Watch o solo alcuni specifici).
- Quando lavori con i simboli di Market Watch, puoi gestire gli eventi "al volo" in OnTick(string symbol).
- Non è necessario comprendere i dettagli tecnici: tutto il codice è contenuto nel file di inclusione.
- Può essere utilizzato anche nel Tester di Strategie.
Il template dell'Expert Advisor è strutturato come segue:
//+------------------------------------------------------------------+ //| OnTick(string symbol).mq5 | //| Copyright 2010, Lizar | //| https://www.mql5.com/ru/users/Lizar | //+------------------------------------------------------------------+ #define VERSION "1.00 Build 1 (01 Fab 2011)" #property copyright "Copyright 2010, Lizar" #property link "https://www.mql5.com/ru/users/Lizar" #property version VERSION #property description "Template dell'Expert Advisor" #property description "con gestore eventi multivaluta OnTick(string symbol)" //+------------------------------------------------------------------+ //| IMPOSTAZIONI MODALITÀ MULTIVALUTA | //| del gestore eventi OnTick(string symbol) | //| 1.1 Lista dei simboli necessari per procedere con gli eventi: | #define SYMBOLS_TRADING "EURUSD","GBPUSD","USDJPY","USDCHF" //| 1.2 Se vuoi tutti i simboli da Market Watch, usa questo: | //#define SYMBOLS_TRADING "MARKET_WATCH" //| Nota: Seleziona solo un modo tra 1.1 o 1.2. | //| 2. Tipo di evento per OnTick(string symbol): | #define CHART_EVENT_SYMBOL CHARTEVENT_TICK //| Nota: il tipo di evento deve corrispondere alla | //| | //| 3. File di inclusione: | #include <OnTick(string symbol).mqh> //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Funzione di inizializzazione dell'Expert | //| Questa funzione deve essere dichiarata, anche se vuota. | //+------------------------------------------------------------------+ int OnInit() { //--- Aggiungi il tuo codice qui... return(0); } //+------------------------------------------------------------------+ //| Funzione multi tick dell'Expert | //| Usa questa funzione invece della standard OnTick() | //+------------------------------------------------------------------+ void OnTick(string symbol) { //--- Aggiungi il tuo codice qui... Print("Nuovo evento sul simbolo: ",symbol); } //+------------------------------------------------------------------+ //| Funzione ChartEvent | //| Questa funzione deve essere dichiarata, anche se vuota. | //+------------------------------------------------------------------+ void OnChartEvent(const int id, // id evento const long& lparam, // parametro evento di tipo long const double& dparam, // parametro evento di tipo double const string& sparam) // parametro evento di tipo string { //--- Aggiungi il tuo codice qui... } //+------------------------------------------------------------------+ //| Funzione di de-inizializzazione dell'Expert | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Aggiungi il tuo codice qui... } //+------------------------------ end -------------------------------+
Alcune caratteristiche:
1. Impostazioni
Tutte le impostazioni possono essere configurate utilizzando le direttive #define. Per un corretto funzionamento della funzione OnTick(string symbol), è necessario specificare solo due parametri: SYMBOLS_TRADING e CHART_EVENT_SYMBOL. Il primo (SYMBOLS_TRADING) definisce la lista dei simboli utilizzati per gli eventi. Il secondo (CHART_EVENT_SYMBOL) definisce i tipi di eventi per tutti i simboli.
Il SYMBOLS_TRADING contiene l'elenco dei simboli, per esempio:
#define SYMBOLS_TRADING "EURUSD","GBPUSD","USDJPY","USDCHF"La lista deve essere preparata come stringhe, separate da virgola. La lista termina con la fine della riga.
Il SYMBOLS_TRADING può essere definito come segue:
#define SYMBOLS_TRADING "MARKET_WATCH"Questo significa che saranno utilizzati tutti i simboli da Market Watch. Questo metodo può essere utilizzato per cambiare la lista di simboli "al volo". Basta aggiungere o rimuovere i simboli necessari da Market Watch.
Il tipo di evento CHART_EVENT_SYMBOL è definito da flag o dalla loro combinazione dall'enumerazione ENUM_CHART_EVENT_SYMBOL. Vedi i dettagli qui (in russo).
Ecco alcuni esempi dei tipi di eventi:
//--- Esempio 1. Evento OnTick: #define CHART_EVENT_SYMBOL CHARTEVENT_TICK //--- Esempio 2. NewBar M1 e New Bar H1: #define CHART_EVENT_SYMBOL CHARTEVENT_NEWBAR_H1|CHARTEVENT_NEWBAR_M1
2. File di inclusione.
Il #include OnTick(string symbol).mqh è necessario, questo file contiene l'implementazione della funzione OnTick(string symbol). Fornisce un modo semplice per utilizzare la funzione OnTick(string symbol). Alcune delle funzioni standard devono essere dichiarate nel codice dell'Expert Advisor, anche se vuote.
3. Tester di Strategie.
Come sapete (al momento), l'OnChartEvent non è supportato nel Tester di Strategie. Per risolvere questo problema, vengono utilizzate le variabili globali per gestire gli eventi. Questo metodo viene utilizzato solo nel Tester di Strategie, in tutti gli altri casi (su conti reali/demo) gli eventi vengono elaborati tramite l'OnChartEvent.
In Tester di Strategie, OnTick(string symbol) funzionerà sui tick del simbolo specificato nelle impostazioni del Tester di Strategie. In altre parole, funziona come OnTick(), ma viene chiamato anche quando arrivano nuovi tick sui simboli selezionati. Per lavorare con il Tester di Strategie, il SYMBOLS_TRADING deve essere specificato come lista di simboli.
4. Spie.
Utilizza le
Post correlati
- Dematus: Il Sistema di Trading per MetaTrader 5
- Rilevare il Venerdì della Prima Settimana del Mese: La Guida per il Giorno NFP
- EA Efficiente: Come Aggiungere la Chiusura del Venerdì per Migliorare le Performance
- Utilità Market Watch Panel: il tuo alleato in MetaTrader 4
- Gestione Visiva degli Ordini: Potenzia il Tuo Trading su MetaTrader 4