Hi, ich denke das wird dir weiterhelfen.
Gilt für MT4 und MT5.
Code:
int nBars=10;
int OnInit()
{
int bar;
for(bar=0; bar<nBars; bar++)
Print(BarTimeAsDate(bar));
for(bar=0; bar<nBars; bar++)
Print(BarTimeAsString(bar));
for(bar=0; bar<nBars; bar++)
{
int h,m;
BarTime(bar,h,m);
Print("\nCandleStart: ",h,":",m);
}
return(INIT_SUCCEEDED);
}
void OnTick()
{
}
//+------------------------------------------------------------------+
//| Variante 1 |
//+------------------------------------------------------------------+
datetime BarTimeAsDate(int bar)
{
MqlRates rates[1];
int result=CopyRates(_Symbol,_Period,bar,1,rates);
return(rates[0].time);
}
//+------------------------------------------------------------------+
//| Variante 2 |
//+------------------------------------------------------------------+
string BarTimeAsString(int bar, int mode=TIME_DATE|TIME_MINUTES)
{
return(TimeToString(BarTimeAsDate(bar), mode));
}
//+------------------------------------------------------------------+
//| Variante 3 |
//+------------------------------------------------------------------+
bool BarTime(int bar, int &hour, int &min)
{
if(bar<0)
bar=0;
if(bar>Bars-1)
bar=Bars-1;
MqlRates rates[1];
if(CopyRates(_Symbol,_Period,bar,1,rates)!=1)
return(false);
MqlDateTime DateTime;
TimeToStruct(rates[0].time,DateTime);
hour=DateTime.hour;
min =DateTime.min;
return(true);
}
Ich denke du benötigst Variante 3
Sieh dir in der Reference CopyRates(..) an, damit du die richtige Kerze erwischst.
Grüße Otto