Hallo,
ich stehe mal wieder vor einer programmiertechnischen Herausforderung, bei der ich nicht weiterkomme.
Der Timeframe ist willkürlich auf M1 gewählt, da geht in der Erprobung vieles schneller.
Wie verbindet man denn die Highs der letzten 100 Candles mit einer Linie?
Ich habe es mal mit der Funktion "Trendlinie" versucht.
Code:
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
int ii;
string Nummer;
int Zeittakt=1;
datetime dt;
bool NeueKerze=false;
datetime An[101];
double Hi[101];
datetime En[101];
string NameHi;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
ObjectsDeleteAll();
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(dt!=iTime(_Symbol,Zeittakt,0))
{
dt=iTime(_Symbol,Zeittakt,0);
for(ii=1;ii<100;ii++)
{
An[ii]=iTime(_Symbol,1,ii);// Anfangszeit des ersten Bars (auf M1)
Hi[ii]=NormalizeDouble(iHigh(_Symbol,1,ii),5);// Höhe des Bars
En[ii]=An[ii];//Endzeit des auf den ersten folgenden Bars (auf M1)
}
Nummer=IntegerToString(ii);// Nummerierung der Linien und Umwandeln in einen String
NameHi="MinuteBarHigh"+Nummer;// Namensgebung der jeweiligen Linie und indizieren des Namens
ObjectCreate(0,NameHi,OBJ_TREND,0,An[ii],Hi[ii],En[ii+1],Hi[ii+1]);
ObjectSetDouble(0,NameHi,OBJPROP_PRICE1,Hi[ii]);
ObjectSetDouble(0,NameHi,OBJPROP_PRICE2,Hi[ii+1]);
ObjectSetInteger(0,NameHi,OBJPROP_TIME1,An[ii]);
ObjectSetInteger(0,NameHi,OBJPROP_TIME2,En[ii+1]);
ObjectSetInteger(0,NameHi,OBJPROP_STYLE,1);
ObjectSetInteger(0,NameHi,OBJPROP_WIDTH,5);
ObjectSetInteger(0,NameHi,OBJPROP_COLOR,clrBlue);
ObjectSetInteger(0,NameHi,OBJPROP_RAY_RIGHT,false);
}
NeueKerze=false;
}
Also, ich weiß da echt nicht weiter. Kann mir da jemand bitte mal weiterhelfen...?