Thema: Trendlinien
Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 05.08.17
Lena Lena ist offline
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 105
Lena befindet sich auf einem aufstrebenden Ast
Standard Trendlinien

Mal wieder am basteln und an einem Hindernis angekommen. Diesmal hapert es am automatischen platzieren einer Trendlinie.

Erst einmal den Code der dafür zuständigen Funktion:
Code:
void Func_Trend_Lines () {
   int      Pos1  =iHighest      (NULL,PERIOD_H1,MODE_HIGH,24,1);                                                             //Ermitteln welcher Bar den höchsten Preis aufweist
   double   Price1=iHigh         (NULL,0,Pos1);                                                                               //Den höchsten Preis abfragen
   datetime Time1 =StringToTime  ((string)TimeYear(Time[0])+"."+(string)TimeMonth(Time[0])+"."+(string)TimeDay(Time[Pos1]));  //Ermitteln zu welcher Zeit der höchste Preis war 
   int      Pos2  =iHighest      (NULL,PERIOD_H1,MODE_HIGH,48,25);
   double   Price2=iHigh         (NULL,0,Pos2);
   datetime Time2 =StringToTime  ((string)TimeYear(Time[0])+"."+(string)TimeMonth(Time[0])+"."+(string)TimeDay(Time[Pos2]));   

   int      Pos3  =iLowest       (NULL,PERIOD_H1,MODE_LOW,24,1);
   double   Price3=iLow          (NULL,0,Pos3);
   datetime Time3 =StringToTime  ((string)TimeYear(Time[0])+"."+(string)TimeMonth(Time[0])+"."+(string)TimeDay(Time[Pos3]));   
   int      Pos4  =iLowest       (NULL,PERIOD_H1,MODE_LOW,48,25);
   double   Price4=iLow          (NULL,0,Pos4);
   datetime Time4 =StringToTime  ((string)TimeYear(Time[0])+"."+(string)TimeMonth(Time[0])+"."+(string)TimeDay(Time[Pos4]));   

   if(Price2<Price1){
      ObjectCreate(0,"High_Trendline",OBJ_TREND,0,Time1,Price1,Time2,Price2);
      ObjectSetInteger(0,"High_Trendline",OBJPROP_COLOR,clrAqua); 
      ObjectSetInteger(0,"High_Trendline",OBJPROP_WIDTH,1);
      ObjectSetInteger(0,"High_Trendline",OBJPROP_STYLE,STYLE_DOT);
   }
   if(Price4>Price3){
      ObjectCreate(0,"Low_Trendline",OBJ_TREND,0,Time3,Price3,Time4,Price4);
      ObjectSetInteger(0,"Low_Trendline",OBJPROP_COLOR,clrAqua); 
      ObjectSetInteger(0,"Low_Trendline",OBJPROP_WIDTH,1);
      ObjectSetInteger(0,"Low_Trendline",OBJPROP_STYLE,STYLE_DOT);
   }
}
Kurz und Knapp, die Funktion soll zwischen dem höchsten Punkt von vorgestern und gestern eine Linie zeichnen. Ebenso zwischen den beiden tiefsten Punkten. Dafür sollen/werden in den ersten beiden Abschnitten die entsprechenden Werte ermittelt.
In den letzten beiden Absätzen werden dann die Linien gesetzt und formatiert. Ein Fehler oder Warnung wird nicht ausgegeben. Ich denke es ist ein Problem beim ermitteln der benötigten Werte.