English Русский 中文 Español 日本語 Português
Das Expertensystem "Kommentator". Die praktische Verwendung der eingebauten Indikatoren im MQL4-Programm

Das Expertensystem "Kommentator". Die praktische Verwendung der eingebauten Indikatoren im MQL4-Programm

MetaTrader 4Handel | 23 Dezember 2015, 10:50
995 0
Andrey Opeyda
Andrey Opeyda


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

Beigefügte Dateien |
Commentator.mq4 (14.2 KB)
MQL4 wie ein Traders Werkzeug oder Advanced Technical Analysis MQL4 wie ein Traders Werkzeug oder Advanced Technical Analysis
Trading ist vor allem eine Wahrscheinlichkeitsrechnung. Und das Sprichwort «Faulheit ist der Motor für den Fortschritt» zeigt uns den Grund, warum all diese Indikatoren und Handelssysteme entwickelt worden sind. Daraus folgt, dass der größte Teil von neuen Tradern schon die entwickelten Handelstheorien lernt. Aber es gibt immer noch Markt-Geheimnisse, und Werkzeuge für die Analyse der Preisbewegungen, existieren meistens in der Form von realisierten technischen Indikatoren, mathematischen und statistischen Paketen. Vielen Dank Bill Williams für seinen Beitrag in der Marktbewegungen-Theorie. Aber man soll damit nicht aufhören.
Die Synchronisation Experts,Skripts und Indikatoren Die Synchronisation Experts,Skripts und Indikatoren
Betrachtet wird die Notwendigkeit und allgemeine Grundlagen zum Aufbau des Programmkomplexes, der einen Experte, einen Skript und einen Indikator enthält.
Hier sind der neue MetaTrader 5 und MQL5 Hier sind der neue MetaTrader 5 und MQL5
Dies ist nur ein kurzer Überblick über MetaTrader 5. Ich kann nicht alle neuen Funktionen des Systems in so kurzer Zeit beschreiben. Die Tests begannen am 09.09.2009. Das ist ein symbolisches Datum und ich bin sicher, dass es eine Glückszahl werden wird. Es sind ein paar Tage vergangen, seit ich die Beta-Version des MetaTrader-5-Terminals und MQL5 bekommen habe. Ich konnte noch nicht alle Funktionen ausprobieren, doch ich bin jetzt schon beeindruckt.
Informationsspeicherung und Informations-Darstellung Informationsspeicherung und Informations-Darstellung
Der Artikel ist den bequemen und praktischen Speichermethoden und der Informations-Darstellung gewidmet. Hier werden Alternativen zur Standard-Log-Datei des Terminals und der Funktion Comment() betrachtet.