MQL4 wie ein Traders Werkzeug oder Advanced Technical Analysis

Andrey Opeyda | 23 Dezember, 2015

    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.

    Lassen Sie uns fragen: "Welche Kerzen-Farbe herrscht in dem einstündigen Chart für EURUSD?" Wir können erstmal beginnen, schwarze Kerzen zu zählen, und jeden neuen hundert davon im Schreibblock zu schreiben, danach genauso weiße zählen. Wir können aber auch etwa ein Dutzend Codezeilen schreiben, die das automatisch erledigen. Im Grunde ist alles logisch und es gibt hier nichts Ungewöhnliches. Aber Lassen Sie uns die Antwort auf die obige Frage finden. Erstmal lassen Sie uns die Erkennung der Kerzen-Farbe vereinfachen:

bool isBlack(int shift)
  {
    if(Open[shift] > Close[shift])
        return (true);
    return (false);
  }
//+------------------------------------------------------------------+
bool isWhite(int shift)
  {
    if(Open[shift] < Close[shift]) 
        return (true);
    return (false);
  }
//+------------------------------------------------------------------+

    Unter Verwendung des bereits geschriebenen Codes, werden wir das Experiment fortsetzen.

//EXAMPLE 1
      //Calculate black and white candles
      double BlackCandlesCount = 0;
      double WhiteCandlesCount = 0;
      double BProbability = 0;
 
      for(int i = 0; i < Bars - 1; i++)
        {
          if(isBlack(i) == true)
              BlackCandlesCount++;
 
          if(isWhite(i) == true)
              WhiteCandlesCount++;
        }
      
      BProbability = BlackCandlesCount / Bars;

    Das Ergebnis ist interessant und war ziemlich vorhersagbar: 52,5426% von 16000 Kerzen sind weiß. Der MQL4-Compiler kann das Problem mit Perioden bei Kerzen auslösen. Wenn beispielsweise eine schwarze Kerze geschlossen wurde, wie ist die Wahrscheinlichkeit der Bildung einer weißen Kerze? Das hängt natürlich von vielen-vielen Faktoren ab, aber lassen Sie uns die Statistik benutzen.

//EXAMPLE 2
      //Calculate seqences of 1st order
      //BW means after black going white candle     
      double BW = 0;
      double WB = 0;
      double BB = 0;
      double WW = 0;
       
      for(i = Bars; i > 0; i--)
        {
         if(isBlack(i) && isWhite(i-1)) 
             BW++;           
         if(isWhite(i) && isBlack(i-1)) 
             WB++;
         if(isBlack(i) && isBlack(i-1)) 
             BB++;            
         if(isWhite(i) && isWhite(i-1)) 
             WW++;
        }

     Das Ergebnis:
     - Weiß, gefolgt von Schwarz - 23,64 %
     - Schwarz, gefolgt von Weiß - 23,67 %
     - Weiß, gefolgt von Weiß - 21,14 %
     - Schwarz, gefolgt von Schwarz - 20,85 %

    Wie wir sehen können, ist die Wahrscheinlichkeit, dass eine Kerze in der gleichen Farbe wird, ist etwas geringer als in der anderen Farbe.

    Die Verwendung MQL4 und historische Daten, ermöglicht dem Trader tiefere Marktforschungen durchzuführen. Im Terminal ist das Zeichnen von Histogrammen vorgesehen. Wir werden diese Funktion verwenden, um die Farbverteilung der Kerzen gemäß von Indikatoren-Werten WPR und RSI zu erledigen.

//EXAMPLE 3.1
      //Build histogram by RSI
      //RSI min/max - 0/100
      
      double RSIHistogramBlack[100];
      double RSIHistogramWhite[100];
      
      for(i = Bars; i > 0; i--)
        {
          int rsi_val = iRSI(NULL,0,12,PRICE_CLOSE,i);
          if(isWhite(i))
              RSIHistogramWhite[rsi_val]++;
          if(isBlack(i))
              RSIHistogramBlack[rsi_val]++;
        }
      for(i = 0; i < 100; i++)
        {
          ExtMapBuffer1[i] = RSIHistogramBlack[i];
          ExtMapBuffer2[i] = -RSIHistogramWhite[i];
        }
 
//EXAMPLE 3.2
      //Build histogram by %R
      //%R min/max - 0/-100

      double WPRHistogramBlack[100];
      double WPRHistogramWhite[100];
      
      for(i = Bars; i > 0; i--)
        {
          int wpr_val = iWPR(NULL,0,12,i);
          int idx = MathAbs(wpr_val);
          if (isWhite(i))
              WPRHistogramWhite[idx]++;
          if (isBlack(i))
              WPRHistogramBlack[idx]++;
        }






    Aber es wäre objektiver, statt schwarze und weiße Kerzen zu zählen, besser eine Statistik der rentablen und unrentablen Trades mit unterschiedlichen Werten von Stoploss und Takeprofit zu halten. Die folgende Methode wird für diesen Zweck hilfreich:

int TestOrder(int shift, int barscount, int spread, int tp, int sl, int operation)
 {
   double open_price = Close[shift];
   
   if (operation == OP_BUY)
      open_price  = open_price + (Point * spread);
      
   if (operation == OP_SELL)
      open_price  = open_price - (Point * spread);
      
   
   for (int i = 0; i<barscount; i++)
    {
      if (operation == OP_BUY)
       {
         //sl
         if (Low[shift-i] <= open_price - (Point * sl) )
            return (MODE_STOPLOSS);
         //tp            
         if (High[shift-i] >= open_price + (Point * tp) )
            return (MODE_TAKEPROFIT);            
       }
      
      if (operation == OP_SELL)
       {
         //sl
         if (High[shift-i] >= open_price + (Point * sl) )
            return (MODE_STOPLOSS);
         //tp            
         if (Low[shift-i] <= open_price - (Point * tp) )
            return (MODE_TAKEPROFIT);            
       }
      
    }  
   return (MODE_EXPIRATION);   
 }

    Ich bin mir sicher, dass die Ergebnisse für Sie erstaunlich sind. Noch erstaunlicher werden Kohonen-Karten, Gauß-Verteilung, Hurst Koeffizient sein. Generell gibt es viele erstaunliche Dinge. Die Hauptsache ist, nicht über das Wesen und den Sinn des Handels zu vergessen.

    Grundsätzlich nutzt jeder Händler seine eigene Trading-Weise. Natürlich stört ihn nichts, wenn er die Effektivität seines Handeln-Systems grafisch darstellen will, dazu noch eine Analyse zu machen und das im Trading zu verwenden. Und wenn es keine Ergebnisse gibt, dann ist es auch eine Erfahrung, die noch mehr seine Handels-Produktivität verstärken wird.