![Das Expertensystem "Kommentator". Die praktische Verwendung der eingebauten Indikatoren im MQL4-Programm](https://c.mql5.com/i/articles/overlay.png)
Das Expertensystem "Kommentator". Die praktische Verwendung der eingebauten Indikatoren im MQL4-Programm
Ein erfahrener Trader öffnet nie eine Position, wenn kein technischer Indikator seine Entscheidung bestätigt hat. Zum Beispiel, wenn der Trader durch eine technische Analyse festgestellt hat, dass eine Long-Position bei einigem Währungswerkzeug, sagen wir mal EURUSD, geöffnet werden kann. Um in den Markt beim aktuellen Preis (Siehe das Bild) richtig einzugehen, schaut der erfahrene Trader auf die Ergebnisse des Indikators, beispielsweise auf Stochastic Oscillator, und wartet auf ein Bestätigungssignal, welches vom Indikator gegeben wird. Die Beschreibung des Indikators und seiner Signale kann man hier lesen (https://www.metatrader5.com/en/terminal/help/indicators/oscillators/so). Als Beispiel nehmen wir ein solches Signal, welches in dem obigen Link beschrieben wurde.
"...Kaufen, wenn die Linie %K über der Linie %D steigt. Verkaufen, wenn die Linie %K unter der Linie %D sinkt."
%K – die Hauptlinie, und %D – die gestrichelte Linie (Signallinie). Die MQL4-Sprache lässt die Verwendung der eingebauten Funktionen, welche die Indikatoren berechnen, zu. Die ganze Liste aus diesen Funktionen ist am Ende dieses Artikels und in der Dokumentation MQL4 gegeben. Der Indikator Stochastic Oscillator ist da auch zu finden. Um die Werte der Haupt - und der Signallinie zu berechnen, wird die untere Funktion verwendet
double iStochastic( string symbol, int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift)
Die genauere Beschreibung der Funktion finden Sie in der Dokumentation MQL4.
Die Wert-Berechnung der Hauptlinie des "Stochastic Oscillator" -Indikators in MQL4 wird so aussehen:
iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN, i)
Hier bedeuten 3,5,5 – den Periodenwert der durchschnittlichen Indikatoren, MODE_SMA – die Berechnungsmethode des Mittelwertes, i – die Nummer der Kerze, für die der Wert berechnet wird , und der Parameter MODE_MAIN hinweist, dass die Hauptlinie (%K) berechnet werden muss. Unten ist die Berechnung der Signallinie:
iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL, i)
Bei der Verwendung der eingebauten Funktionen, welche Indikatoren berechnen, müssen die Periode des Kurs-Charts (timeframe) und das Symbolfenster angegeben werden. In unserem Fall werden das aktuelle Symbolfenster und die aktuelle Periode des Kurs-Charts (Parameter NULL und 0 ) betrachtet. Denken Sie daran, dass die Berechnungen auf jedem Symbolfenster und mit verschiedenen Timeframes gemacht werden können. In der Grafik des Stochastic Oscillators sieht man, dass der Wert der Hauptlinie 54,4444 ist und die Signallinie 46,1238 ist, das heißt
iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN, i) > iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL, i)
Es fällt uns jetzt leicht den Berechnungsprozess zu automatisieren. Es wäre sehr bequem, wenn der Indikator auf dem Kurs-Chart keinen Platz besetzt hätte. Die beste Lösung, den Indikator aus dem Chart zu beseitigen, ist überhaupt auf die Indikator-Grafik zu verzichten, und im Kurs-Chart nur das aktuelle Signal anzuzeigen. Die beliebteste Methode, Signale anzuzeigen, ist die Platzierung der Schrift-Symbols Wingdings im Kurs-Chart. Wir werden noch diese Methode erwähnen, und jetzt versuchen wir, eine weitere Option der MQL4-Sprache zu verwenden. Die Option lautet - der Operator Comment()
void Comment( ...)
Sie ermöglicht uns jeden Kommentar ins Kurs-Chart zu liefern.
//STOCH double valSTOCH=0; string commentSTOCH = "Stoch: "; string commentSTOCHAdd = " keine Daten "; if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0) >iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0)) commentSTOCHAdd = " Kaufen ist möglich"; if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0) <iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0)) commentSTOCHAdd = " Verkaufen ist möglich"; commentSTOCH = commentSTOCH + commentSTOCHAdd;
Der oben genannte Anfangscode interpretiert das Signal in einen Text, um ihn im Chart zu zeigen.
Comment(commentSTOCH + "\n");
Comment ist da bequem, weil der Benutzer das Zeilenumbruchzeichen benutzen kann, um Kommentare zu visualisieren. Die Verwendung des Codes oben, bringt dem Trader die Möglichkeit, die Grafik Stochastic Oscillator zu beseitigen. Dadurch bekommt er ein Alarmsystem, das die aktuelle Lage im Markt schriftlich anzeigt.
Zum Beispiel, der technische Indikator Commodity Channel Index, CCI
"...misst die Abweichung der Rohstoffpreise von ihren durchschnittlichen statistischen Preisen. Hohe Werte des Index weisen darauf hin, dass der Preis ungewöhnlich hoch ist im Vergleich mit dem durchschnittlichen Preis, und niedrige Werte zeigen, dass der Preis zu niedrig ist. Trotz seines Namens kann der Commodity Channel Index auf jedes Finanzinstrument angewendet werden, und nicht nur auf die Waren. "
Mit automatisierten Signalberechnungen des Indikators CCI werden wir einen weiteren Kommentar bekommen, wie "Der Preis ist vermutlich zu hoch". Und die Verwendung des technischen Indikators Beschleunigung / Verzögerung (Acceleration/Deceleration, AC) der die Beschleunigung / Verzögerung des aktuellen Trends misst, kann den Trader noch besser informieren. "...Wenn Sie den AC mit Verstand realisieren, dass es ein Signal einer früheren Warnung gibt, dann gibt es einen klaren Vorteil."
Dies ist, wie der Code aussehen kann, der die Signale von mehreren Indikatoren anzeigt:
// Demarker double valDem=iDeMarker(NULL, 0, 13, 0); string commentDem = "DeMarker: "; string commentDemAdd = " keine Daten"; if (valDem < 0.30) commentDemAdd = " Die Erwartung, dass die Preise hoch steigen"; if (valDem > 0.70) commentDemAdd = " Die Erwartung, dass die Preise sinken"; commentDem = commentDem + commentDemAdd; //ATR double valATR=iATR(NULL, 0, 12, 0); string commentATR = "ATR: "; commentATR=commentATR + " Trend wird wahrscheinlich ändern " + valATR; //CCI double valCCI=iCCI(NULL,0,12,PRICE_MEDIAN,0); string commentCCI = "CCI: "; string commentCCIAdd = " keine Daten "; if (valCCI > 100) commentCCIAdd = " Überkauft"+ "(eine Korrektur des Trends nach unten ist möglich) "; if (valCCI < -100) commentCCIAdd = " Überverkauft " + "(eine Korrektur des Trends nach oben ist möglich) "; commentCCI = commentCCI + commentCCIAdd + valCCI; //MFI double valMFI=iMFI(NULL,0,14,0); string commentMFI = "MFI: "; string commentMFIAdd = " keine Daten "; if (valMFI > 80) commentMFIAdd = " eine mögliche Markt-Spitze "; if (valMFI < 20) commentMFIAdd = " eine mögliche Markt-Trog "; commentMFI = commentMFI + commentMFIAdd + valMFI;
Berechnungen können auch auf Arrays gemacht werden. Zu diesem Zweck werden Funktionen verwendet, die mit OnArray enden, zum Beispiel gibt es die Funktion iMAOnArray, welche den Mittelwert auf dem Daten-Array berechnet. Interessant ist, dass einige Indikatoren manchmal widersprüchliche Signale geben. Aber für den Trader ist die Abwesenheit eines Signals auch ein Signal. Denn das Handeln auf dem Markt besteht nicht nur aus Entscheidungen, in welche Richtung eine Position eröffnet werden muss, sondern auch aus der Eröffnungszeit. Das Expertensystem "Kommentator" berechnet Signale nur für den aktuellen Timeframe, aber es ist kein Problem für den Trader, die Berechnungen von Indikatoren der größeren oder kleineren Timeframes im Programmcode hinzuzufügen. Es soll auch beachtet werden, dass die Verwendung der MQL4-Sprache den Händler nicht etwa begrenzt, sondern ganz im Gegenteil seine Funktionalität und die Übersicht auf den Markt verbessert.
Die Funktionen, welche die eingebetteten Indikatoren in der MQL4-Sprache berechnen, sind unten angegeben:
iAC iAD iAlligator iADX iATR iAO iBearsPower iBands iBandsOnArray iBullsPower iCCI iCCIOnArray iCustom iDeMarker iEnvelopes iEnvelopesOnArray iForce iFractals iGator iIchimoku iBWMFI iMomentum iMomentumOnArray iMFI iMA iMAOnArray iOsMA iMACD iOBV iSAR iRSI iRSIOnArray iRVI iStdDev iStdDevOnArray iStochastic iWPR
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/1406
![MQL4 wie ein Traders Werkzeug oder Advanced Technical Analysis](https://c.mql5.com/2/13/137_1.png)
![Die Synchronisation Experts,Skripts und Indikatoren](https://c.mql5.com/2/13/117_1.gif)
![Hier sind der neue MetaTrader 5 und MQL5](https://c.mql5.com/2/0/851_25.jpg)
![Informationsspeicherung und Informations-Darstellung](https://c.mql5.com/2/13/128_4.gif)
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.