Home Trading Sistematico Post

MCM Control Panel: Potenzia il Tuo Trading Multivaluta con MetaTrader 5

Allegato
215.zip (19.4 KB, Scarica 0 volte)

Uno dei vantaggi del linguaggio MQL5 è la possibilità di utilizzare indicatori e Expert Advisors multivaluta. Puoi dare un'occhiata al gestore eventi OnTickMarketWatch multivaluta in MQL5 su CodeBase.

L'uso del concetto proposto nello script non è sempre conveniente. Ad esempio, in caso di molti eventi, potrebbe verificarsi un overflow della coda degli eventi.

Ecco una nota dalla documentazione MQL5:

Il terminale client aggiunge eventi in arrivo alla coda degli eventi. Gli eventi vengono elaborati uno dopo l'altro secondo l'ordine in cui sono stati ricevuti. C'è un'eccezione per l'evento NewTick. Se nella coda è già presente tale evento o se questo evento è in fase di elaborazione, il nuovo evento NewTick non viene inserito nella coda.

La coda degli eventi ha una dimensione limitata. In caso di overflow della coda, gli eventi più vecchi vengono rimossi senza essere elaborati per consentire la ricezione di nuovi eventi. Pertanto, è consigliato scrivere gestori di eventi efficienti e non utilizzare cicli infiniti (eccetto per gli script che gestiscono solo l'evento Start).

Inoltre, a volte è necessario eseguire il ricalcolo dei valori dell'indicatore solo quando appare una nuova barra. L'altro caso è se hai bisogno di disabilitare il trading "al volo" su un simbolo in un Expert Advisor multivaluta, cambiare il timeframe di un simbolo o altro.

Il "qualcos'altro" potrebbe essere dati esterni. Il Pannello di Controllo MCM (MultiCurrency Mode) si basa su questa idea.

Tra l'altro, può essere utilizzato anche nel trading a singola valuta.

Caratteristiche del "Pannello di Controllo MCM" (versione contest):

Dispone di un numero minimo di funzioni necessarie per utilizzare la modalità multivaluta in Expert Advisors e Indicatori:

  • Aggiungi/Rimuovi simboli per trading e analisi.
  • Permette di monitorare gli eventi "nuovo tick" e "nuova barra" per qualsiasi simbolo e periodo.
  • Tutte le impostazioni possono essere modificate "al volo" senza riavviare l'Expert Advisor o l'Indicatore. 
  • Il Pannello può essere utilizzato con i nostri Expert Advisors e Indicatori.
  • Può anche essere incluso nel tuo codice, verrà caricato con essi.
  • È trasparente. Non è necessario aggiungere il codice del Pannello di Controllo MCM ai tuoi Expert Advisors o Indicatori.

Utilizzando il "Pannello di Controllo MCM" puoi aggiungere le tue funzionalità. Vedi di seguito per i dettagli.

Il salvataggio/ripristino delle impostazioni del Pannello di Controllo non è supportato in questa versione.


Avvio del Pannello di Controllo MCM

Il lancio del "Pannello di Controllo MCM" può avvenire in diversi modi: 

  • Collega l'indicatore "iControl panel MCM" al grafico.
  • Avvia lo script "scControl panel MCM". Lo script carica l'indicatore "iControl panel MCM".
  • Carica il Pannello dal tuo Expert Advisor o Indicatore. Vedi "exControl panel MCM" per dettagli.

Nel terzo caso, il Pannello verrà caricato con il nostro Expert Advisor o Indicatore e collegato al grafico.

Il tuo Expert Advisor deve avere un gestore di eventi OnChartEvent() per elaborare gli eventi del Pannello di Controllo MCM.

Interfaccia

L'interfaccia utente è semplice, implementata come un menu. La dimensione e i colori del menu possono essere configurati tramite parametri di input.

Si presenta come segue:


 

Design

Il Pannello viene utilizzato per configurare gli eventi per gli Expert Advisors e Indicatori multivaluta.

La dimensione e la posizione del Pannello dipendono dalla dimensione del grafico e dalla dimensione del font (definiti nei parametri di input). Per liberare spazio di lavoro, il Pannello può essere ridotto.


 

La dimensione del Pannello può essere modificata cambiando la dimensione del font nei parametri di input (dimensione font=10 per impostazione predefinita):

 

Puoi impostare i colori che desideri.

Ad esempio, lo schema Rosa:


Lo schema EMO:


 

 

Facile da usare

Il menu è intuitivo, facile da usare.

Il pulsante "Pannello di Controllo MCM" contiene funzionalità aggiuntive (non incluse in questa versione):


Utilizzando il pulsante "Grafico" puoi facilmente cambiare simbolo e timeframe attuali, basta sceglierlo:


 

Il pulsante "Eventi" ti consente di abilitare/disabilitare eventi "al volo" (senza riavviare l'Expert Advisor o l'Indicatore) per un certo simbolo e specificare l'evento necessario. Questi eventi possono essere elaborati all'interno della funzione OnChartEvent() dell'Expert Advisor o dell'Indicatore. Il menu dei simboli contiene solo i simboli selezionati da "Market Watch". Puoi combinare eventi qualsiasi, tutti verranno elaborati.

Ad esempio, non è necessario preoccuparsi dell'apparizione di un nuovo tick/bar per simboli su timeframe, il motore del Pannello invierà gli eventi:


  

Ecco la sezione "Aiuto":


 

Know How e la sua Implementazione

La mia soluzione è pubblicata in gestore eventi OnTickMarketWatch multivaluta, ma questo Pannello ha alcune funzionalità aggiuntive:

  • Il "Pannello di Controllo MCM" fornisce un'interfaccia non implementata direttamente nel terminale client. Ti consente di utilizzare la modalità multivaluta tramite il gestore di eventi OnChartEvent(). Un'altra caratteristica è la possibilità di cambiare le impostazioni "al volo".
  • Per generare gli eventi per il gestore eventi OnChartEvent() il Pannello di Controllo utilizza i propri "agenti" (indicatori, avviati dal Pannello di Controllo MCM su un certo simbolo), fornendo l'evento per il trading multivaluta.
  • Il Pannello può essere incluso in Expert Advisors o Indicatori.
  • Il Pannello di Controllo MCM offre nuove possibilità per gli sviluppatori MQL5.
  • IMHO, il Pannello è un esempio di una nuova struttura per Expert Advisors e Indicatori. Fornirò alcuni esempi più avanti.

Informazioni sugli eventi e gli avvisi

Il Pannello ha una barra di stato per mostrare gli eventi.


Installazione del Pannello di Controllo MCM

Decomprimi il file zip mcm_control_panel.zip nella cartella del terminale client. Dopo di che appariranno i seguenti file:

  • /mql5/experts/exControl panel MCM.mq5 - esempio di Expert Advisor;
  • /mql5/scripts/scControl panel MCM.mq5  - esempio di Script;
  • /mql5/indicators/iControl panel MCM.mq5 - indicatore, il principale motore del "Pannello di Controllo MCM";
  • /mql5/indicators/Spy Control panel MCM.mq5 - indicatore, agente del "Pannello di Controllo MCM"
  • /mql5/include/Control panel MCM.mqh - un insieme di classi e funzioni per il "Pannello di Controllo MCM".

Poi, compila gli Indicatori, lo Script e l'Expert Advisor.


Lancio del Pannello di Controllo MCM

Il lancio del Pannello di Controllo MCM prevede di allegare l'indicatore iControl panel MCM.mq5 a qualsiasi grafico.

Il Pannello può essere avviato da Expert Advisor, basta attaccare l'Expert Advisor "exControl panel MCM" al grafico:


 

Come esempio di trading multivaluta, ho scritto l'Expert Advisor MultiTrend. L'indicatore traccia la tendenza del USD, basandosi sull'analisi di 4 coppie di valute:

Ecco il codice:

//+------------------------------------------------------------------+ 
//|                                                   MultiTrend.mq5 | 
//|                                                  Copyright 2010, Lizar | 
//|                            https://www.mql5.com/ru/users/Lizar | 
//+------------------------------------------------------------------+ 
#define VERSION       "1.00 Build 2 (09 Dec 2010)" 
#property copyright   "Copyright 2010, Lizar"
#property link        "https://www.mql5.com/ru/users/Lizar"
#property version     VERSION
#property description "Questo Expert Advisor utilizza il Pannello di Controllo MCM"
input color bg_color=Gray;         // Colore del menu 
input color font_color=Gainsboro; // Colore del testo 
input color select_color=Yellow  // Colore del testo selezionato 
input int font_size=10;          // Dimensione del font 
#include <Control panel MCM.mqh> //<--- Include file 
//+------------------------------------------------------------------+ 
//| Funzione di inizializzazione dell'Expert Advisor                                   | 
//+------------------------------------------------------------------+ 
int OnInit()
  {    //--- Inizializzazione del Pannello di Controllo MCM.     
//--- Non è necessario impostare i colori, se non specificato, verranno utilizzati i colori predefiniti.      
   InitControlPanelMCM(bg_color,font_color,select_color,font_size);
//---    
  return(0);   
  } 
//+------------------------------------------------------------------+ 
//| Funzione di deinizializzazione dell'Expert Advisor                                 | 
//+------------------------------------------------------------------+ 
void OnDeinit(const int reason)
  {
   DeinitControlPanelMCM();   //<--- Deinizializzazione del Pannello di Controllo MCM  
  }
//+------------------------------------------------------------------+ 
//| Gestore eventi OnChartEvent.                                      | 
//| Vedi la documentazione MQL5 per dettagli.                                  | 
//| Può essere utilizzato con il Pannello di Controllo MCM per trading multivaluta     | 
//+------------------------------------------------------------------+ 
void OnChartEvent(const int id, // identificatore evento:                                      
                  // se id-CHARTEVENT_CUSTOM==0 - evento di inizializzazione (quando prev_calculated==0)
                   // se id-CHARTEVENT_CUSTOM!=0 - indice simbolo nella finestra "Market Watch"   
                  const long&   lparam, // timeframe 
                  const double& dparam, // prezzo    
                  const string& sparam  // simbolo 
                  )
  {
   if(id>=CHARTEVENT_CUSTOM)
     {
      Print(TimeToString(TimeCurrent(),TIME_SECONDS)," -> id=", id-CHARTEVENT_CUSTOM,
                         ":  ",sparam," ",EventDescription(lparam)," prezzo=",dparam);
     }
  }
//+------------------------------------------------------------------+ 

I parametri di OnChartEvent().

Il Pannello genera eventi personalizzati. Questi eventi possono essere elaborati in Expert Advisor o Indicatore utilizzando il gestore eventi OnChartEvent().

I parametri di input:

  • id - id evento:
          se id-CHARTEVENT_CUSTOM !=0 - è uguale all'indice simbolo nella finestra "Market Watch";
  • lparam  -  flag evento. Vedi l'enumerazione ENUM_CHART_EVENT_SYMBOL in Control panel MCM.mqh.
  • dparam -  prezzo tick o prezzo di apertura della nuova barra su un certo timeframe.
  • sparam -  nome simbolo

Elenco degli eventi supportati nel Pannello di Controllo MCM

Utilizzando il parametro lparam, il Pannello di Controllo può inviare fino a 64 eventi personalizzati diversi sul simbolo. In questa versione sono supportati i seguenti eventi : 

  • "Evento di inizializzazione" (Initialization);
  • "Nuovo tick" (tick);
  • "Nuova barra" sull grafico M1 (M1);
  • "Nuova barra" sull grafico M2 (M2);
  • "Nuova barra" sull grafico M3 (M3);
  • "Nuova barra" sull grafico M4 (M4);
  • "Nuova barra" sull grafico M5 (M5);
  • "Nuova barra" sull grafico M6 (M6);
  • "Nuova barra" sull grafico M10 (M10);
  • "Nuova barra" sull grafico M12 (M12);
  • "Nuova barra" sull grafico M15 (M15);
  • "Nuova barra" sull grafico M20 (M20);
  • "Nuova barra" sull grafico M30 (M30);
  • "Nuova barra" sull grafico H1 (H1);
  • "Nuova barra" sull grafico H2 (H2);
  • "Nuova barra" sull grafico H3  (H3);
  • "Nuova barra" sull grafico H4 (H4);
  • "Nuova barra" sull grafico H6 (H6);
  • "Nuova barra" sull grafico H8 (H8);
  • "Nuova barra" sull grafico H12 (H12);
  • "Nuova barra" sull grafico giornaliero D1);
  • "Nuova barra" sull grafico settimanale (W1);
  • "Nuova barra" sull grafico mensile (MN1); 

La descrizione dell'evento, restituita da EventDescription() è presentata tra parentesi (Initialization, tick, Mxx ecc). La funzione EventDescription può essere trovata in Control panel MCM.mqh (seguendo l'enumerazione ENUM_CHART_EVENT_SYMBOL).

L'evento di "inizializzazione" viene generato quando prev_calculated=0, può essere utilizzato per preparare i dati, ad esempio, puoi ricalcolare i valori dell'indicatore.


Impostazione degli Eventi

Per impostare gli eventi necessari, fai clic sul pulsante "Eventi", seleziona il simbolo e il tipo di evento. Gli eventi selezionati vengono mostrati in giallo (o nel colore selezionato nei parametri di input dell'indicatore). Puoi scegliere uno o più eventi, tutti possono essere elaborati dal nostro Expert Advisor multivaluta. Per applicare le modifiche, fai clic sul pulsante "Abilita/Disabilita eventi".

Lo stesso processo può essere fatto per tutti i simboli necessari.


 

Qui c'è un log dalla scheda "Esperti": 


 

Post correlati

Commento (0)