Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Expert Advisors

Multicurrency Event-Handler OnTick(string symbol) - Experte für den MetaTrader 5

Ansichten:
1439
Rating:
(45)
Veröffentlicht:
2016.09.02 11:05
onmultitick.zip (5.38 KB)
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Beschreibung:

Das ist eine weitere Variante des vollständigen Mehrwährungsmodus in MetaTrader 5. Diese ist als standardmäßiger Tick-Handler OnTick(string symbol) implementiert. 

Vorteile:

  • Multicurrency Mode auf Demo- und realen Konten.
  • Einfache Einstellungen.
  • Die Event-Liste für OnTick(string symbol) kann konfiguriert werden: NewTick und/oder NewBar.
  • Die Liste der Symbole kann konfiguriert werden (Events für alle Finanzinstrumente aus dem Marktübersicht-Fenster oder nur für bestimmte Symbole erhalten).
  • Bei der Arbeit mit den Symbolen aus dem Marktübersicht-Fenster kann man sozusagen "on the fly" bestimmen, für welche Symbole man Events in OnTick(string symbol) zu erhalten.
  • Es ist nicht nötig, sich damit auseinanderzusetzen, wie das funktioniert. Der Code befindet sich in einer Include-Datei und stört nicht, wenn Sie Ihren eigenen Code schreiben.
  • Funktioniert im Tester.

Die Vorlage des Expert Advisors sieht folgendermaßen aus:

//+------------------------------------------------------------------+
//|                                        OnTick(string symbol).mq5 |
//|                                            Copyright 2010, Lizar |
//|                              https://www.mql5.com/de/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 "Vorlage des Expert Advisors"
#property description "mit dem mehrwährungsfähigen Event-Handler OnTick(string symbol)"

//+------------------------------------------------------------------+
//|                EINSTELLUNGEN DES MEHRWÄHRUNGSMODUS               |
//|          für den Event-Handler OnTick(string symbol)             |
//|                                                                  |
//| 1.1 Liste der Symbole, für welche Events benötigt sind:          |
#define  SYMBOLS_TRADING    "EURUSD","GBPUSD","USDJPY","USDCHF"      
//| 1.2 Events für alle Symbole im Fenster "Marktübersicht" erhalten:|
//#define  SYMBOLS_TRADING    "MARKET_WATCH"
//|     Anmerkung:  man muss entweder 1.1 oder 1.2. auswählen        |
//|                                                                  |
//| 2. Eventtyp für OnTick(string symbol):                           |
#define  CHART_EVENT_SYMBOL CHARTEVENT_TICK 
//|     Anmerkung: der Typ des Ereignisses muss der Aufzählung       |
//|                 ENUM_CHART_EVENT_SYMBOL entsprechen.             |
//|                                                                  |
//| 3.  Include-Datei:                                               |
#include <OnTick(string symbol).mqh>
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//| Diese Funktion muss unbedingt im Code des EAs enthalten sein,    |
//| auch wenn sie leer ist                                           |
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Ihr Code...   
   return(0);
  }
  
//+------------------------------------------------------------------+
//| Expert multi tick function                                       |
//| Nutzen Sie diese Funktion statt der Standardfunktion OnTick()    |
//+------------------------------------------------------------------+
void OnTick(string symbol)
  {
   //--- Ihr Code...
   Print("Neues Ereignis für das Symbol: ",symbol);
  }
  
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//| Diese Funktion muss unbedingt im Code des EAs enthalten sein,    |
//| auch wenn sie leer ist                                           |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // Identifikator des Ereignisses
                  const long& lparam,   // Parameter des Events vom Typ long
                  const double& dparam, // Parameter des Events vom Typ double
                  const string& sparam) // Parameter des Events vom Typ string
  {
   //--- Ihr Code...   
  }
  
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   //--- Ihr Code...   
  }

//+------------------------------ end -------------------------------+

Spezielle Eigenschaften:

  1.  Einstellungen
Alle Einstellungen werden mit den Anweisungen #define konfiguriert. Damit OnTick(string symbol) richtig funktioniert, braucht man nur zwei Parameter zu setzen: SYMBOLS_TRADING und CHART_EVENT_SYMBOL. Mit dem Parameter SYMBOLS_TRADING werden Symbole gesetzt, für welche Events eingehen werden. Der Parameter CHART_EVENT_SYMBOL setzt den Eventtyp für alle Symbole.

SYMBOLS_TRADING kann als eine Liste mit Symbolen definiert werden, zum Beispiel:

#define  SYMBOLS_TRADING    "EURUSD","GBPUSD","USDJPY","USDCHF"

Die Liste muss als durch ein Komma voneinander getrennte Strings gestaltet werden. Die Liste endet mit dem Ende der Zeile.

SYMBOLS_TRADING kann auch folgenderweise definiert werden:

#define  SYMBOLS_TRADING    "MARKET_WATCH"

Das bedeutet, dass Sie statt der Liste Symbole aus dem Fenster "Marktübersicht" nutzen wollen. Das ist besonders bequem, denn die Symbole, für welche Ereignisse in OnTick(string symbol) eingehen werden, können im Laufe der Arbeit des Experten geändert werden. Dafür brauchen Sie nur Symbole im Fenster "Marktübersicht" hinzufügen bzw. löschen.

Der Eventtyp CHART_EVENT_SYMBOL wird durch eine Flagge oder eine Kombination von Flaggen aus der ENUM_CHART_EVENT_SYMBOL Aufzählung definiert. Mehr Informationen über diese Aufzählung finden Sie hier. Beispiele für Eventtypen:

//--- Beispiel 1. OnTick event:
#define  CHART_EVENT_SYMBOL CHARTEVENT_TICK 
//--- Beispiel 2. NewBar M1 und NewBar H1:
#define  CHART_EVENT_SYMBOL CHARTEVENT_NEWBAR_H1|CHARTEVENT_NEWBAR_M1

     2. Include-Datei.

Der Befehl #include mit der Datei OnTick(string symbol).mqh, die das ganze Funktional für die Funktion OnTick(string symbol) enthält, muss nach den Einstellungen und vor anderen standardmäßigen Event-Handlern platziert werden. Die Datei ermöglicht es, den Code für die Funktion OnTick(string symbol) wegzuräumen. Aus diesem Grund wurden einige standardmäßige Funktionen in der oben angeführten Vorlage als obligatorisch bezeichnet. 

     3.  Tester.

Zum Zeitpunkt der Veröffentlichung hat der Tester den OnChartEvent Event-Handler nicht unterstützt. Um die Möglichkeit zu haben, Expert Advisors zu testen, muss der Code die Übertragung der Events über globale Variablen des Terminals enthalten. Dies wurde ausschließlich für den Strategientester getan, auf realen Konten und Demo-Konten werden die Events mithilfe von OnChartEvent übertragen. Wegen dieser Ergänzungen sihet der Code nicht mehr schön aus, aber nun kann man den Tester nutzen.

Eine Nuance. OnTick(string symbol) funktioniert im Tester auf den Ticks desjenigen Symbols, das in den Einstellungen des Testers festgelegt wurde. Im Allgemeinen funktioniert es wie OnTick(), wird aber auch aufgerufen, wenn neue Ticks für ausgewählte Symbole eingehen. Für die Arbeit im Tester müssen Symbole im Parameter SYMBOLS_TRADING als Liste gesetzt werden.

     4. "Spione".

Es werden Spione (Indikatoren) verwendet. Aus diesem Grund ist das Vorhandensein des Spions Spy Control panel MCM.ex5 im Verzeichnis \MQL5\Indicators\ wichtig. In der angehängten Datei finden Sie einen neuen Build von Spy Control panel MCM.mq5. Da wurde die Übertragung von Events über globale Variablen hinzugefügt.

     5. Entpacken Sie die angefügte ZIP-Datei in \MQL5. Die Dateien werden in der folgenden Reihenfolge platziert:

    • /mql5/experts/OnTick(string symbol).mq5       - ein Beispiel für Expert Advisor,  Quellcode der Vorlage;
    • /mql5/experts/OnTick(string symbol).ex5        - ein Beispiel für Expert Advisor, Include-Datei;
    • /mql5/indicators/Spy Control panel MCM.mq5  - Agent-Indikator, Quellcode;
    • /mql5/indicators/Spy Control panel MCM.ex5   - Agent-Indikator, Include-Datei;
    • /mql5/include/OnTick(string symbol).mqh       - Include-Datei, die alle Funktionen von OnTick(string symbol) enthält.
       

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/280

MQL5 Wizard - Handelssignale basierend auf Umkehrkerzenformationen MQL5 Wizard - Handelssignale basierend auf Umkehrkerzenformationen

Handelssignale basierend auf Umkehrkerzenformationen "Signals based on reversal candlestick patterns".

MQL5 Wizard - Handelssignale basierend auf der Kreuzung der Linien des Alligator Indikators MQL5 Wizard - Handelssignale basierend auf der Kreuzung der Linien des Alligator Indikators

Handelssignale basierend auf der Kreuzung der Linien des Alligator Indikators.

eKeyboardTrader eKeyboardTrader

Ein Expert Advisor für die Ausführung von Transaktionen über die Tastatur.

Exp_i_Trend Exp_i_Trend

Der Experte Exp_i_Trend wurde aufgrund der Signalen des Oszillators i_Trend gebaut.