Guarda come scaricare robot di trading gratuitamente
Ci trovi su Facebook!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Sistemi Esperti

Pannello di controllo della modalità multicurrency "Pannello di controllo MCM". - sistema esperto per MetaTrader 5

Visualizzazioni:
136
Valutazioni:
(45)
Pubblicato:
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Introduzione

Uno dei vantaggi del linguaggio di programmazione MQL5 è la possibilità di creare strumenti per gli indicatori e gli Expert Advisor per lavorare in modalità multicurrency. Lo script che ho pubblicato nella Code Base "Multicurrency tick handler OnTickMarketWatch" lo conferma.

L'utilizzo diretto della variante proposta nello script crea una serie di inconvenienti. Ad esempio, un numero elevato di tick in arrivo alla funzione OnChartEvent() può portare a un "ingombro" della coda di eventi. Ecco un'avvertenza tratta dalla guida:

Все возникающие события клиентский терминал складывает в общую очередь. Таким образом события обрабатываются одно за другим в порядке поступления. Исключение составляет событие NewTick. Если в очереди уже есть такое событие либо это событие находится в состоянии обработки, то новое событие NewTick в очередь не ставится.
Очередь событий имеет ограниченный размер. При переполнении очереди старые события удаляются без обработки для того, чтобы освободить место для вновь поступающих событий. Поэтому крайне рекомендуется писать эффективные обработчики событий и не рекомендуется использовать бесконечные циклы.

Inoltre, a volte è necessario fare trading o calcolare indicatori solo quando appare una nuova barra. Oppure per disattivare urgentemente il trading multicurrency su qualche strumento senza interromperne il lavoro, per così dire "al volo". Oppure per cambiare, ad esempio, il periodo di un simbolo senza interrompere il trading multicurrency. O molte altre cose... E queste "molte altre cose" sono spesso dati provenienti dall'ambiente esterno in cui lavora l'indicatore o l'Expert Advisor.

È per impostare l'ambiente esterno in cui opera l'indicatore o l'Expert Advisor multicurrency che è stato concepito il pannello di controllo della modalità multicurrency "Pannello di controllo MCM" (Pannello di controllo della modalità multicurrency).

Questo pannello può comunque essere facilmente utilizzato per il trading su una sola valuta.


Vantaggi della versione di "Control panel MCM" presentata al concorso

Funzionalità
La versione presentata ha tutte le minimo set minimo di funzioni necessarie per l'impostazione della modalità multicurrency degli indicatori e degli Expert Advisor, ovvero:

  • Collegare/disconnettere i simboli dalla finestra "Market Watch" per il trading o l'analisi.
  • Impostare la modalità di trading per tick o per evento "nuova barra" per qualsiasi periodo e simbolo selezionato in "Market Watch".
  • Modificare tutte le impostazioni di cui sopra "al volo" senza dover scaricare, arrestare o accedere alla finestra delle proprietà di un Expert Advisor o di un indicatore.
  • Il pannello può essere installato come unità indipendente su un grafico e quindi gli Expert Advisor e gli indicatori compatibili con il pannello possono essere "lanciati" sul grafico.
  • Il pannello può essere incluso come unità composita di indicatori o Expert Advisor. Verrà caricato insieme ad essi.
  • Tutto ciò non limita la vostra creatività nella creazione di indicatori ed Expert Advisor multivaluta. Inoltre, grazie a "Control panel MCM" non dovrete "cucire" nel vostro codice ciò che questo sviluppo vi offre.

Studiando il menu "Pannello di controllo MCM", potrete vedere il servizio aggiuntivo, che è possibile, ma non è incluso nella versione competitiva.

Una descrizione più dettagliata delle funzionalità del "Pannello di controllo MCM" è riportata nella sezione "Lavorare con il pannello di controllo in modalità multicurrency".

Limitazione della funzionalità: questa versione non salva le impostazioni quando si ricarica il pannello e non include moduli aggiuntivi che estendono le funzionalità di base.


Facilità di installazione e manutenzione del pannello

L'installazione del pannello di controllo MCM è semplice. Si può fare in tre modi:

  • Caricare l'indicatore "iControl panel MCM", che è il "motore" del pannello, sul grafico desiderato.
  • Eseguire lo script "scControl panel MCM". Questo script è stato creato solo a titolo di esempio, ma esegue l'indicatore "iControl panel MCM".
  • Abilitare il caricamento del pannello dal proprio indicatore o EA. L'esempio di Expert Advisor si trova nel file "exControl panel MCM".

Nell'ultima variante il pannello verrà caricato insieme all'indicatore o all'Expert Advisor in un'unica finestra. Nelle prime due varianti, il pannello viene installato da solo. In questa finestra è possibile installare l'Expert Advisor o l'indicatore, che deve essere compatibile con "Control panel MCM". L'unico requisito di compatibilità per i programmi MQL è la presenza del gestore di eventi standard OnChartEvent().


Progettazione dell'interfaccia

Semplice. Ha la forma di un menu tradizionale. La regolazione dei colori e delle dimensioni avviene attraverso le proprietà dell'indicatore. Il pannello e i pulsanti del pannello hanno questo aspetto:

Impostazione dei colori e delle dimensioni del display MCM del pannello iControl


Ergonomia del lavoro nelle attività quotidiane

Anche in questo caso, tutto è molto semplice. Il pannello stesso è necessario solo per impostare gli eventi necessari per il sistema multicurrency all'inizio del lavoro. Le dimensioni della finestra sono adattate, se possibile, alle dimensioni della finestra del grafico. Se il menu è sufficientemente lungo, appare una linea di scorrimento verticale dell'elenco dei menu. Dopo la regolazione, il pannello può essere ridotto a icona e "dorme" nell'angolo in basso a sinistra della finestra finché non viene risvegliato. Non ingombra il grafico e non interferisce molto.

Pannello iControl ripiegato Pannello nidificatore MCM

Le dimensioni del pannello possono essere modificate cambiando la dimensione dei caratteri nelle "Proprietà" dell'indicatore. La dimensione predefinita dei caratteri è 10:

Impostazioni del font dell'indicatore MCM del pannello iControl

Ad esempio, per i blaaaandini glamour ciechi, il pannello potrebbe avere il seguente aspetto:

Impostazione dei colori del pannello iControl Pannello di visualizzazione MCM

E per i misteriosi EMO onniveggenti, il pannello potrebbe avere questo aspetto, ad esempio:

Impostazione dei colori del pannello iControl Pannello di visualizzazione MCM


Azioni facili da imparare e memorizzare

Il menu del pannello è intuitivo. Essendo composto da pochi pulsanti, è difficile confondersi e facile da memorizzare.

Il pulsante del menu "Pannello di controllo MCM" contiene strumenti aggiuntivi che ampliano le funzionalità del pannello (non collegati in questa versione):

Strumenti aggiuntivi del pannello iControl Pannello indicatore MCM

Il pulsante di menu "Grafico" contiene le impostazioni per il simbolo e il periodo del grafico corrente. Selezionando un simbolo o un periodo diverso, è possibile modificare i parametri del grafico corrente:

Modifica dei parametri del grafico MCM corrente del pannello iControl

Il pulsante di menu "Eventi" consente di attivare/disattivare al volo (senza disattivare l'Expert Advisor o l'indicatore) i simboli per il trading o l'analisi, nonché di impostare gli eventi necessari per i simboli selezionati. Questi eventi possono essere monitorati dalla funzione OnChartEvent() di un Expert Advisor o di un indicatore.

Il menu visualizza solo i simboli selezionati nella finestra "Market Watch". È possibile selezionare qualsiasi evento singolo "da gustare" o combinare più eventi insieme. Tutti questi eventi verranno inseriti nel monitor multicurrency. Ora, nei vostri indicatori o Expert Advisor non dovrete più preoccuparvi, ad esempio, della comparsa di una nuova barra su qualsiasi timeframe: questo pannello se ne occuperà e vi informerà di questo evento tramite il gestore di eventi OnChartEvent():

Evento nuovo pannello iControl Barra del pannello MCM

Il pulsante del menu "Aiuto" è stato creato per puro interesse personale, per testimoniare la mia paternità e per inviarvi, nel senso di "indirizzarvi", a questo forum:

Aiuto per il pannello iControl MCM


Soluzioni di Know-How o Approccio interessante

In realtà, ho rivelato la mia soluzione Know-How quando ho pubblicato "OnTickMarketWatch multi-currency tick handler". Ma questo pannello contiene ulteriori soluzioni ed esclude tutti gli svantaggi dello script precedentemente proposto:

  • "Il pannello di controllo MCM fornisce un servizio che non è implementato in modo standard nel terminale. In particolare, offre la possibilità di una vera e propria modalità multivaluta attraverso il gestore di eventi OnChartEvent() e consente di spostare alcune impostazioni al di fuori degli Expert Advisor, con la possibilità di modificarle rapidamente "al volo".
  • Per generare gli eventi per il gestore di eventi standard OnChartEvent(), il pannello utilizza i propri "agenti", che forniscono gli eventi corrispondenti per l'Expert Advisor multicurrency. Ciò consente di "scaricare" l'Expert Advisor multicurrency parallelizzando le operazioni di elaborazione dei dati. Per agenti si intendono gli indicatori che vengono lanciati dal "Pannello di controllo MCM" sul simbolo selezionato.
  • Il pannello può essere utilizzato come strumento indipendente o incorporato in Expert Advisor o indicatori. Ciò consente di utilizzarlo in modo piuttosto flessibile.
  • Il "Control panel MCM" non limita il potenziale creativo dei programmatori nella creazione di indicatori e Expert Advisor multivaluta. Inoltre, grazie a "Control panel MCM" ora non dovrete "cucire" nel codice ciò che questo sviluppo fornisce.
  • Crea (o almeno pretende di creare) un nuovo standard più semplice di architettura degli Expert Advisor e degli indicatori. IMHO, naturalmente. Se avrò tempo, posterò un paio di esempi.


Supporto informativo degli eventi e degli avvisi del trader

A questo scopo, il pannello ha una barra di stato in cui vengono visualizzati tutti gli eventi e le azioni dell'operatore. In realtà, esiste un modulo plug-in per il registro degli eventi, ma per dispetto non l'ho incluso in questa versione.


Alcune particolarità del lavoro con il "Pannello di controllo MCM".

Installazione del pannello.

Per installare il pannello è necessario scompattare il file di archivio "Control panel MCM.rar" nella directory mql5. Durante la decompressione si otterranno diversi file :

  • /mql5/experts/exControl panel MCM.mq5 - un esempio di Expert Advisor che utilizza il modello;
  • /mql5/scripts/scControl panel MCM.mq5 - script che carica il pannello di controllo;
  • /mql5/indicators/iControl panel MCM.mq5 - indicatore - motore "Control panel MCM";
  • /mql5/indicators/Spy Control panel MCM.mq5 - indicatore - agente "Control panel MCM";
  • /mql5/include/Control panel MCM.mqh - raccolta di funzioni e classi di "Control panel MCM".

Compilare l'Expert Advisor, lo script ed entrambi gli indicatori.

Caricamento del pannello

Il caricamento del pannello è semplice: eseguite l'indicatore "iControl panel MCM.mq5" su qualsiasi simbolo e timeframe. Tutto qui. Poi si può giocare con il pannello. È possibile collegare al grafico Expert Advisor e indicatori compatibili con "Control panel MCM".

Per me, caricare il pannello dall'Expert Advisor ha più senso pratico. Avviare l'Expert Advisor "exControl panel MCM" e ottenere:

Esempio di utilizzo del pannello iControl MCM

Inoltre, ad esempio, ho allegato il mio indicatore multicurrency MultiTrend, appositamente progettato per essere utilizzato con il pannello di controllo in modalità multicurrency. L'indicatore mostra il movimento del dollaro (linea rosa) sulla base dell'analisi del movimento di quattro valute.

Il codice dell'Expert Advisor è riportato di seguito:

//+------------------------------------------------------------------+ 
//|MultiTrend.mq5 | 
//|Copyright 2010, Lizar | 
//| https://www.mql5.com/it/users/Lizar | 
//+------------------------------------------------------------------+ 
#define VERSION       "1.00 Build 2 (09 Dec 2010)" 
#property copyright   "Copyright 2010, Lizar"
#property link        "https://www.mql5.com/it/users/Lizar"
#property version     VERSION
#property description "L'esperto dimostra il funzionamento del pannello di controllo della modalità multicurrency".
#property description "\Control panel MCM\" (Control panel the MultiCurrency Mode)."
input color bg_color=Gray;        // Colore del menu 
input color font_color=Gainsboro; // Colore del carattere 
input color select_color=Yellow;  // Colore di selezione 
input int font_size=10;         // Dimensione del carattere 
#include <Control panel MCM.mqh> //<--- File del plug-in MCM del pannello di controllo 
//+------------------------------------------------------------------+ 
//| Funzione di inizializzazione dell'esperto| 
//+------------------------------------------------------------------+ 
int OnInit()
  {    //--- Inizializzazione del pannello di controllo MCA. 
//--- Non è necessario specificare i parametri del colore (verrà impostata la colorazione predefinita del menu). 
   InitControlPanelMCM(bg_color,font_color,select_color,font_size);
//--- 
  return(0);   
  } 
//+------------------------------------------------------------------+ 
//| Funzione di deinizializzazione dell'esperto| 
//+------------------------------------------------------------------+ 
void OnDeinit(const int reason)
  {
   DeinitControlPanelMCM();   //<--- Deinizializzazione del pannello di controllo MCA: 
  }
//+------------------------------------------------------------------+ 
//| Una funzione standard di gestione degli eventi. Può essere usata | 
//| per lo scopo previsto, come descritto nella documentazione. 
//|| 
//| Insieme al pannello di controllo, MCM è uno strumento utile per la gestione delle risorse. 
//||il trading multicurrency.| 
//+------------------------------------------------------------------+ 
void OnChartEvent(const int id, // identificatore dell'evento: 
                  // se id-CHARTEVENT_CUSTOM==0 - inizializzazione, corrisponde al momento prev_calculated==0
                  // se id-CHARTEVENT_CUSTOM!=0 - posizione del simbolo nella finestra "Market Watch 
                  const long&   lparam, // periodo del grafico 
                  const double& dparam, // prezzo 
                  const string& sparam  // strumento 
                  )
  {
   if(id>=CHARTEVENT_CUSTOM)
     {
      Print(TimeToString(TimeCurrent(),TIME_SECONDS)," -> id=", id-CHARTEVENT_CUSTOM,
                         ":  ",sparam," ",EventDescription(lparam)," price=",dparam);
     }
  }
//+------------------------------------------------------------------+ 


Descrizione dei parametri di input OnChartEvent()

Il pannello di controllo genera eventi dell'utente e li traduce sul grafico installato per poterli poi elaborare nell'Expert Advisor o nell'indicatore tramite la funzione OnChartEvent(). I parametri di ingresso di questa funzione (nel nostro caso) devono essere interpretati come segue:

  • id - identificatore dell'evento:
    if id-CHARTEVENT_CUSTOM !=0 - posizione del simbolo nella finestra "Market Watch";
  • lparam; - flag dell'evento ricevuto dall'agente del pannello. I flag corrispondono all'enumerazione ENUM_CHART_EVENT_SYMBOL, che si trova all'inizio del file MCM.mqh del pannello di controllo, mentre la descrizione si trova un po' più in basso nel testo.
  • dparam - prezzo del tick o prezzo di apertura di una nuova barra su un determinato timeframe.
  • sparam - nome dello strumento di trading per il quale si è verificato l'evento.


Elenco degli eventi forniti Pannello di controllo MCM

Tramite lparam il pannello di controllo può fornire, a seconda delle impostazioni, fino a 64 diversi eventi personalizzati per simbolo. In questa versione di Control panel MCM può trasmettere i seguenti eventi:

  • Evento di inizializzazione (Initialisation);
  • Evento "nuovo tick";
  • Evento "nuova barra" sul grafico a 1 minuto (M1);
  • Evento "nuova barra" sul grafico a 2 minuti (M2);
  • Evento "nuova barra" sul grafico a 3 minuti (M3);
  • Evento "nuova barra" sul grafico a 4 minuti (M4);
  • Evento "nuova barra" sul grafico a 5 minuti (M5);
  • Evento "nuova barra" sul grafico a 6 minuti (M6);
  • Evento "nuova barra" sul grafico a 10 minuti (M10);
  • Evento "nuova barra" sul grafico a 12 minuti (M12);
  • Evento "nuova barra" sul grafico a 15 minuti (M15);
  • Evento nuova barra sul grafico a 20 minuti (M20);
  • Evento "nuova barra" sul grafico a 30 minuti (M30);
  • Nuova barra sul grafico a 1 ora (H1);
  • Nuovo evento barra sul grafico a 2 ore (H2);
  • Nuovo evento barra sul grafico a 3 ore (H3);
  • Nuovo evento barra sul grafico a 4 ore (H4);
  • Nuovo evento barra sul grafico a 6 ore (H6);
  • Nuovo evento barra sul grafico a 8 ore (H8);
  • Nuovo evento barra sul grafico a 12 ore (H12);
  • Nuovo evento barra sul grafico giornaliero (D1);
  • Nuovo evento barra sul grafico settimanale (W1);
  • Nuovo evento barra sul grafico mensile (MN1);

La descrizione dell'evento restituita dalla funzione EventDescription() è riportata tra parentesi. La funzione stessa si trova anche all'inizio del file MCM.mqh del pannello di controllo, dopo l'enumerazione ENUM_CHART_EVENT_SYMBOL.

Si noti che l'evento "Inizializzazione" corrisponde al momento in cui il parametro di input prev_calculated dell'indicatore viene azzerato sul simbolo da cui proviene l'evento. Pertanto, nel nostro indicatore multicurrency o Expert Advisor è necessario adottare misure appropriate. Ad esempio, ricalcolare l'indicatore in base a questo simbolo.


Impostazione degli eventi

L'impostazione degli eventi che verranno ricevuti dagli agenti del pannello di controllo si effettua tramite il pulsante del menu "Eventi". Premendo il pulsante, apparirà un elenco di tutti i simboli attualmente selezionati nella finestra "Market Watch". Per attivare gli eventi per ogni simbolo, è necessario fare doppio clic su di esso con il mouse. È meglio farlo lentamente, per provare tutto il piacere dell'azione.

Se gli eventi sono già stati attivati da un simbolo (questo simbolo è evidenziato con un colore brillante), è sufficiente fare clic su di esso una volta. Apparirà un elenco di eventi. È possibile selezionare uno o più eventi, tutti saranno ricevuti dalla multicurrency. Affinché le modifiche abbiano effetto, è necessario premere il pulsante "Abilita/Disabilita eventi". E così via per tutti i simboli richiesti.

Selezione degli eventi del pannello iControl MCM

Ecco il risultato della collaborazione tra l'Expert Advisor demo e il pannello:

Esempio di funzionamento dell'indicatore MCM del pannello iControl

Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/215

YURAZ_CreateCSV_HistoryFile_From_MT5_For_MT4 YURAZ_CreateCSV_HistoryFile_From_MT5_For_MT4

Questo script vi aiuterà ad ottenere per MetaTrader 4 una cronologia completa senza buchi dal database di MetaTrader 5.

GraficoReinit GraficoReinit

La reinizializzazione di un grafico con ricalcolo di tutti gli indicatori e un esempio semplice e trasparente di elaborazione di tutti i grafici da un Expert Advisor.

Indicatore di equilibrio di tendenza TrendEQ Indicatore di equilibrio di tendenza TrendEQ

Trend Equilibrium Indicator TrendEQ analizza dinamicamente le tendenze del mercato combinando momentum e volatilità. Misurando il momentum rispetto alle tendenze del mercato, TrendEQ fornisce una misura affidabile della forza e della direzione del trend.

Calendar-Based Backtesting: an Event-Driven Trading EA Calendar-Based Backtesting: an Event-Driven Trading EA

Questo script e EA consente ai codificatori di eseguire il backtest delle loro strategie basate sulle notizie che utilizzano il calendario MQL5.