Candle Markieren bei bestimmten Indikatorwerten

 

Hallo zusammen,

vermutlich eine total doofe Anfängerfrage, aber ich finde einfach keine Lösung.

Ich poste mal einen Teil des Codes. Ich möchte gerne, dass das Objekt dann gezeichnet wird, wenn der Trend long ist. Der soll durch drei Gleitende Durchschnitte bestimmt werden. Leider bekomme ich die Werte für diese offenbar nicht rein. Könnt ihr mir sagen, was da falsch ist?

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {

   int i = prev_calculated == 0 ? 1 : prev_calculated - 1;
   for(; i < rates_total; i++)
     {
     string Trend = "Neutral";
     if(iMA(_Symbol,_Period,10,0,MODE_EMA,PRICE_CLOSE)>iMA(_Symbol,_Period,20,i,MODE_EMA,PRICE_CLOSE) &&
        iMA(_Symbol,_Period,20,0,MODE_EMA,PRICE_CLOSE)>iMA(_Symbol,_Period,30,i,MODE_SMA,PRICE_CLOSE))
        {Trend = "Long";}
     if(iMA(_Symbol,_Period,10,0,MODE_EMA,PRICE_CLOSE)<iMA(_Symbol,_Period,20,i,MODE_EMA,PRICE_CLOSE) &&
       iMA(_Symbol,_Period,20,0,MODE_EMA,PRICE_CLOSE)<iMA(_Symbol,_Period,30,i,MODE_SMA,PRICE_CLOSE))
       {Trend = "Short";}
     
      //Durschnittskerzengröße
      double MinCandleSize = iATR(NULL,0,10);
      CreateObject(time[i], low[i], 233, 1, clrYellow, MinCandleSize);
      
      if(IsGreenHammer(i, open, close, high, low, MaxRatioShortWick, MinRatioLongWick, MinCandleSize) &&
         Trend == "Long")
        {
        CreateObject(time[i], low[i], 233, 1, clrGreen, "Green Hammer");
        }
     }

   return (rates_total);
  }

Danke schon mal im Voraus.

Habt ihr vielleicht auch einen Tipp, wie mal MQl5 am besten von Grund auf erlenen kann. Sowas wie ein Lerntutorial wäre super.

Beste Grüße

Mirko

 

Lies mal die Referenz!

Stell den Kursor auf iMA und drück F1, dann kannst Du lesen, iMA liefert keine MA-Werte, sondern Handles zum Indikator, wie Du an die Werte kommst, steht dann auch da!

Übrigens, es gibt fast nichts, was nicht schon programmiert wurde. Gerade für Anfänger ist suche und kopieren oftmals schneller als jedes Fettnäpfchen auszuprobieren ;)

 
Carl Schreiber #:

Lies mal die Referenz!

Stell den Kursor auf iMA und drück F1, dann kannst Du lesen iMA liefert keine MA-Werte, sondern Handles zum Indikator, wie Du an die Werte kommst, steht dann auch da!

Übrigens, es gibt fast nichts, was nicht schon programmiert wurde. Gerade für Anfänger ist suche und kopieren oftmals schneller als jedes Fettnäpfchen auszuprobieren ;)

BEsten DAnk für den Tipp. Als Anfänger ist die Vielzahl einfach überfordernd und man sieht den Wald vor lauter Bäumen nicht. Ich versuche es mal so.