und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
- Ansichten:
- 908
- Rating:
- Veröffentlicht:
- 2017.03.28 16:09
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Die Klasse ermöglicht es, auf einfache Weise von Ihrem MQL5-Programme, Änderungen im Fenster "Market Watch" (Symbolsortierung, neue und gelöschte Symbole oder einer Reihe von Symbolen), sowie das Öffnen und Schließen von Charts und die Verfügbarkeit des Ein-Klick-Handels auf dem Chart zu kontrollieren, auf dem das Programm ausgeführt wird. Diese Klasse sendet Nutzerereignisse an das Kontrollprogramm.
Folgende public Methoden stehen zur Verfügung:
Methoden | Beschreibung | Rückgabewert |
---|---|---|
Methoden des Charts | ||
bool IsChartOneClick(void) | Abfrage, ob der Ein-Klick-Handel auf dem Chart verfügbar ist | bool true/false |
uchar GetChartNumbers(void) | Rückgabe der Anzahl der offenen Charts | uchar Anzahl der geöffneten Charts |
long GetOpenedChartID(void) | Rückgabe der ID des zuletzt geöffneten Charts | long ChartID() |
string GetOpenedSymbol(void) | Rückgabe des Symbols des zuletzt geöffneten Charts | string ChartSymbol() |
ENUM_TIMEFRAMES GetOpenedTimeframe(void) | Rückgabe des Zeitrahmens des zuletzt geöffneten Charts | ENUM_TIMEFRAMES ChartPeriod() |
long GetClosedChartID(void) | Rückgabe der ID des zuletzt geschlossenen Charts | long ChartID() |
string GetClosedSymbol(void) | Rückgabe des Symbols des zuletzt geschlossenen Charts | string ChartSymbol() |
ENUM_TIMEFRAMES GetClosedTimeframe(void) | Rückgabe des Zeitrahmens des zuletzt geschlossenen Charts | ENUM_TIMEFRAMES ChartPeriod() |
bool IsOpenedIsObject(void) | Abfrage ob der geöffnete Chart ein Objekt ist | bool true/false |
bool IsClosedIsObject(void) | Abfrage ob der geschlossene Chart ein Objekt ist | bool true/false |
bool CheckOpenChart(string symbol_name); | Abfrage, ob das Symbol in einem Chart geöffnet ist | bool true/false |
bool CheckOpenChart(string symbol_name,ENUM_TIMEFRAMES timeframe) | Abfrage, ob ein Symbol mit angegebenen Zeitrahmen in einem Chart geöffnet ist | bool true/false |
long OpenChart(string symbol_name,ENUM_TIMEFRAMES timeframe) | Öffnet das Symbol in einem Chart | long ChartID() |
bool IsOpenedAllCharts(void) | Abfrage, ob alle Symbole des Market Watch in Chart geöffnet wurden | bool true/false |
Methoden des Market Watch | ||
bool PutSymbolToMarketWatch(string symbol_name) | Hinzufügen eines Symbols in den Market Watch | bool true/false |
bool IsExistSymbolInMW(string symbol_name, bool select=false) | Abfrage, ob eine Symbol im Market Watch/auf dem Server existiert | bool true/false |
int GetNumSymbolsInMW(void) | Rückgabe des Anzahl von Symbolen im Market Watch | int Die Anzahl der Symbole im Market Watch |
int GetNumAllSymbols(void) | Rückgabe der Anzahl verfügbarer Symbole | int Anzahl der Symbole des Servers |
void ClearMarketWatch(void) | Löschen aller möglichen Symbole aus dem Market Watch | void |
Bezeichnung | Value | Beschreibung |
---|---|---|
CHARTEVENT_CHART_OPEN | 32 | Ereignis, neuer Chart geöffnet |
CHARTEVENT_CHART_CLOSE | 33 | Ereignis, Chart geschlossen |
CHARTEVENT_MW_SYMBOL_ADD | 34 | Ereignis, ein Symbol dem Market Watch hinzugefügt |
CHARTEVENT_MW_FEW_SYMBOL_ADD | 35 | Ereignis, mehrere Symbole dem Market Watch hinzugefügt |
CHARTEVENT_MW_SYMBOL_DEL | 36 | Ereignis, ein Symbol vom Market Watch gelöscht |
CHARTEVENT_MW_FEW_SYMBOL_DEL | 37 | Ereignis, mehrere Symbole vom Market Watch gelöscht |
CHARTEVENT_MW_CHANGE_SORT | 38 | Ereignis, die Sortierfolge der Symbole im Market Watch geändert |
CHARTEVENT_CHART_CHANGE_ONE_CLICK | 39 | Ereignis, der Ein-Klick-Handel wurde geöffnet/gelöscht |
Die Identifikatoren beziehen sich auf die Identifikatoren der Grafikbibliothek von Anatoli Kazharski, Sie können sie nach eigenem Ermessen verändern.
Die Werte werden dem Kontrollprogramm beim Auftreten des Ereignisses übergeben:
Bezeichnung | lparam | dparam | sparam |
---|---|---|---|
CHARTEVENT_CHART_OPEN | long ChartID des geöffneten Charts | ENUM_TIMEFRAMES Zeitrahmen des geöffneten Charts | string Symbol des geöffneten Chart |
CHARTEVENT_CHART_CLOSE | long ChartID des geschlossenen Charts | ENUM_TIMEFRAMES Zeitrahmen des geschlossenen Charts | string Symbol des geschlossenen Charts |
CHARTEVENT_MW_SYMBOL_ADD | int Aktuelle Zahl von Symbolen | int Vorherige Zahl von Symbolen | string Hinzugefügtes Symbol |
CHARTEVENT_MW_FEW_SYMBOL_ADD | int Aktuelle Zahl von Symbolen | int Vorherige Zahl von Symbolen | string Zuletzt verwendetes Symbol |
CHARTEVENT_MW_SYMBOL_DEL | int Aktuelle Zahl von Symbolen | int Vorherige Zahl von Symbolen | string Gelöschtes Symbol |
CHARTEVENT_MW_FEW_SYMBOL_DEL | int Aktuelle Zahl von Symbolen | int Vorherige Zahl von Symbolen | string Zuletzt verwendetes Symbol |
CHARTEVENT_MW_CHANGE_SORT | int Aktuelle Zahl von Symbolen | int Aktuelle Zahl von Symbolen | string Zuletzt verwendetes Symbol |
CHARTEVENT_CHART_CHANGE_ONE_CLICK | int Die X-Koordinate der rechten Kante des Panels | int Die Y-Koordinate der rechten Kante des Panels | string Beschreibung des Status des Panels: "CHART_IS_ONE_CLICK_ON" - es gibt ein Panel "CHART_IS_ONE_CLICK_OFF" - es gibt kein Panel |
Um die Klasse verwenden zu können, muss die Datei im globalen Teil geladen werden und eine Instanz der Klasse erstellt werden:
CChartsMW mw;
Dann, in der Funktion OnTimer() des Programms, fügen Sie den Timer der Klasse hinzu:
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
//--- Hinzufügen des Timers der Klasse
mw.OnTimerEvent();
}
//+------------------------------------------------------------------+
Hinzufügen der Klasse der Ereignisbehandlung OnChartEvent():
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//--- Hinzufügen der Klasse der Ereignisbehandlung
mw.OnEvent(id,lparam,dparam,sparam);
}
//+------------------------------------------------------------------+
Jetzt können Ereignisse, die die Klasse liefert, empfangen und von der Funktion OnChartEvent() weiterverarbeitet werden.
Ein Beispiel für das Empfangen von Ereignissen der Klasse findet sich im beigefügten Expert Advisor exTestChartsMWClass.mq5
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/17448

Der Signalindikator basiert auf einer "Price Action Strategy", die sich den stärksten Innertagestrend sucht, die über über eine Trendumkehr durch einen Warnhinweis, eine Email oder eine "Push Notification" an eine Handy informiert.

Das Handelssystem des Exp_TDI-2_ReOpen basiert auf der Kreuzung der Indikatorlinien des TDI-2 und es werden dem Trend folgend weitere Position eröffnet.