Unisciti alla nostra fan page
Gestore dell'evento multicurrency OnTick(simbolo stringa) - sistema esperto per MetaTrader 5
- Visualizzazioni:
- 87
- Valutazioni:
- Pubblicato:
-
Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance
Descrizione:
Questa è un'altra versione del modo in cui è possibile organizzare una modalità multi-currency completa in MetaTrader 5. Si tratta di un gestore di tick standard OnTick(string symbol).
Vantaggi:
- Vero multicurrency su demo e reale.
- Impostazioni semplici.
- È possibile configurare quali eventi ricevere in OnTick(string symbol): NewTick e/o NewBar.
- È possibile configurare la ricezione degli eventi per gli strumenti della finestra "Market Watch" o per la propria lista di simboli.
- Quando si lavora con i simboli della finestra Market Watch, è possibile controllare al volo quali simboli ricevere in OnTick(string symbol).
- Non è necessario spiegarne il funzionamento. Tutto il codice è inserito in un file di inclusione e non è di intralcio quando si scrive il proprio.
- Funziona nel tester.
Il modello EA ha questo aspetto:
//+------------------------------------------------------------------+ //|OnTick(simbolo stringa).mq5 | //|Copyright 2010, Lizar | //| https://www.mql5.com/it/users/Lizar | //+------------------------------------------------------------------+ #define VERSION "1.00 Build 1 (01 Fab 2011)" #property copyright "Copyright 2010, Lizar" #property link "https://www.mql5.com/it/users/Lizar" #property version VERSION #property description "Modello esperto quando viene utilizzato". #property description "del gestore multicurrency OnTick(simbolo stringa)". //+------------------------------------------------------------------+ //| IMPOSTAZIONI DELLA MODALITÀ MULTICURRENCY| //| per il gestore dell'evento OnTick(simbolo stringa) | //|| //| 1.1 Elenco dei simboli per i quali devono essere ricevuti gli eventi: //| 1.1 Elenco dei simboli per i quali devono essere ricevuti gli eventi: | #define SYMBOLS_TRADING "EURUSD","GBPUSD","USDJPY","USDCHF" //| 1.2 Ricevere gli eventi per tutti i simboli dalla finestra "Market Watch": || //#definire SYMBOLS_TRADING "MARKET_WATCH" //| Nota: è necessario selezionare il punto 1.1 o il punto 1.2. || //|| //| 2. Tipo di evento per OnTick(simbolo stringa): | #define CHART_EVENT_SYMBOL CHARTEVENT_TICK //| Nota: il tipo di evento deve corrispondere all'enumerazione | //| ENUM_CHART_EVENT_SYMBOL.| //|| //| 3. Un file plug-in contenente tutte le funzionalità: //| 3. Un file plug-in contenente tutte le funzionalità: //| 3. Un file plug-in contenente tutte le funzionalità: //| #include <OnTick(string symbol).mqh> //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Funzione di inizializzazione dell'esperto| //| Questa funzione deve essere presente nel codice dell'esperto. //| anche se è vuoto| //+------------------------------------------------------------------+ int OnInit() { //--- Ecco il codice... return(0); } //+------------------------------------------------------------------+ //| Funzione Expert multi tick| //| Questa funzione sostituisce la funzione standard OnTick() | //+------------------------------------------------------------------+ void OnTick(string symbol) { //--- Ecco il codice... Print("Nuovo evento per simbolo: ",symbol); } //+------------------------------------------------------------------+ //| Funzione ChartEvent| //| Questa funzione deve essere presente nel codice dell'esperto. //| anche se è vuoto| //+------------------------------------------------------------------+ void OnChartEvent(const int id, // identificatore dell'evento const long& lparam, // parametro dell'evento di tipo long const double& dparam, // parametro dell'evento di tipo double const string& sparam) // parametro dell'evento di tipo stringa { //--- Ecco il codice... } //+------------------------------------------------------------------+ //| Funzione di deinizializzazione dell'esperto| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Ecco il codice... } //+------------------------------ end -------------------------------+
Alcune caratteristiche:
- Impostazioni.
Tutte le impostazioni vengono effettuate utilizzando le direttive del preprocessore #define. Affinché OnTick(simbolo stringa) funzioni correttamente , è necessario impostare solo due parametri: SYMBOLS_TRADING e CHART_EVENT_SYMBOL. Il parametro SYMBOLS_TRADING imposta i simboli per i quali verranno ricevuti gli eventi. Il parametro CHART_EVENT_SYMBOL specifica i tipi di evento per tutti i simboli.
SYMBOLS_TRADING può essere impostato, ad esempio, come un elenco di simboli:
#define SYMBOLS_TRADING "EURUSD","GBPUSD","USDJPY","USDCHF"L'elenco deve essere costituito da costanti di stringa separate da virgole. L'elenco termina alla fine della riga e non può essere riportato alla riga successiva.
È possibile impostare SYMBOLS_TRADING in questo modo:
#define SYMBOLS_TRADING "MARKET_WATCH"In questo modo si intende utilizzare i simboli della finestra Market Watch invece di un elenco. Questo metodo è comodo perché durante il lavoro dell'Expert Advisor è possibile cambiare al volo i simboli per i quali si riceveranno eventi in OnTick(string symbol). A tal fine, è sufficiente aggiungere o eliminare strumenti di trading nella finestra "Market Watch".
Il tipo di evento CHART_EVENT_SYMBOL è specificato da un flag o da una combinazione di flag dell'enumerazione ENUM_CHART_EVENT_SYMBOL. Per ulteriori informazioni su questa enumerazione, vedere qui. Esempi di impostazione del tipo di evento:
//--- Esempio 1. Gli eventi vengono ricevuti a ogni tick: #define CHART_EVENT_SYMBOL CHARTEVENT_TICK //--- Esempio 2. Gli eventi per i personaggi arrivano ogni minuto e ora: #define CHART_EVENT_SYMBOL CHARTEVENT_NEWBAR_H1|CHARTEVENT_NEWBAR_M1
2. Includere il file.
La direttiva #include con il file OnTick(string symbol).mqh, che contiene tutte le funzionalità della funzione OnTick(string symbol), deve essere collocata dopo le impostazioni e prima degli altri gestori di eventi standard. Il file è disposto in modo tale che tutto il codice che serve per OnTick(simbolo stringa) non sia visibile. Pertanto, la presenza di alcune funzioni standard nel modello di cui sopra è da considerarsi obbligatoria.
3. Tester.
Come sapete, al momento della pubblicazione il tester non supporta il gestore di eventi OnChartEvent. Per poter testare gli Expert Advisor, il codice prevede il passaggio degli eventi attraverso le variabili globali del terminale. Questo viene fatto esclusivamente per il tester della strategia, mentre nelle strategie reali e demo gli eventi vengono passati attraverso OnChartEvent. Naturalmente, queste aggiunte hanno reso il codice non così bello, ma ora è possibile utilizzare il tester.
Una sfumatura. Nel tester OnTick(string symbol) funziona sui tick del simbolo, che è impostato nelle impostazioni del tester. In generale, funziona quasi come OnTick(), solo che gli eventi per ogni tick vengono ricevuti dagli strumenti di trading selezionati. Per funzionare nel tester, i simboli nel parametro SYMBOLS_TRADING devono essere impostati come elenco.
4. Spie.
Vengono utilizzati indicatori spia. Pertanto, è importante la presenza del pannello di controllo delle spie MCM.ex5 nel catalogo \MQL5\Indicators\. Il file allegato contiene una nuova versione del pannello di controllo delle spie MCM.mq5. In essa è stata aggiunta la trasmissione di eventi tramite variabili globali per il tester.
5. L'archivio allegato deve essere scompattato nella directory \MQL5. I file saranno posizionati come segue:
- /mql5/experts/OnTick(simbolo stringa).mq5 - esempio di esperto, sorgente del modello;
- /mql5/experts/OnTick(string symbol).ex5 - esempio di Expert Advisor, file eseguibile;
- /mql5/indicators/Spy Control panel MCM.mq5 - indicatore - agente, file sorgente;
- /mql5/indicators/Spy Control panel MCM.ex5 - indicatore - agente, file eseguibile;
- /mql5/include/OnTick(string symbol).mqh - file di inclusione contenente tutte le funzionalità di OnTick(string symbol).
Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/280
Zig Zag non parametrico, modelli alla Clyde Lee
Uno zigzag non parametrico basato sui modelli di Clyde Lee.
Round Levels MT5
Indicatore Round Levels MetaTrader - un indicatore MT4/MT5 in grado di visualizzare livelli rotondi e zone vicine ad essi in base alla configurazione. Può essere utile per fare trading sulle zone di supporto e resistenza psicologiche naturali. Può anche emettere avvisi quando il prezzo si trova in una zona di supporto o di resistenza.
eKeyboardTrader
Expert Advisor per eseguire le azioni di trading di base dalla tastiera.
Recent High/Low Alert MT5
Indicatore MetaTrader Recent High/Low Alert - visualizza due bande di livelli massimi e minimi su N candele recenti. Per impostazione predefinita, la banda massima viene visualizzata con una linea blu; la banda minima viene visualizzata con una linea gialla. Inoltre, può richiamare un avviso a comparsa, inviare un avviso via e-mail o emettere un avviso di notifica quando il prezzo corrente (Bid) rompe il livello alto o basso recente. Tutti gli avvisi possono essere disattivati. Se si utilizza la funzione di avviso via e-mail, non bisogna dimenticare di impostare le impostazioni dell'e-mail nella finestra delle opzioni della piattaforma MetaTrader. Lo stesso vale per le notifiche push. L'indicatore è disponibile sia per MT4 che per MT5.