Home Trading Sistematico Post

Guida all'Utilizzo del Gestore di Eventi Multivaluta OnTick in MetaTrader 5

Allegato
280.zip (5 KB, Scarica 0 volte)

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

Commento (0)