Закрыта ли свеча?

 

Господа хорошие, подозреваю, что это должно быть просто, но как определить средствами MQL Закрыта ли свеча или еще нет? Видимо над сравнивать с системным временем, или есть другие варианты? Кто подскажет?

 
Системное время -- это то,что вы в БИВЕСе выставили...
 
fxrobots:
Системное время -- это то,что вы в БИВЕСе выставили...


В том то и проблема... есть другие варианты?

 
Факт закрытия свечи определяется только по факту начала отсчета следующей на сервере. Если играешь на часовках, и сейчас 15:59:59, у тебя нет абсолютной гарантии, что эта свеча закрыта: тик пожет придти в последнюю долю секунды. И сравнивать надо не с системным, а со временем сервера.
 
paparazzo:

Господа хорошие, подозреваю, что это должно быть просто, но как определить средствами MQL Закрыта ли свеча или еще нет? Видимо над сравнивать с системным временем, или есть другие варианты? Кто подскажет?

if ( iTime( System(), PERIOD_H1,0) != savetimeh1 )
{
// новая свеча H1
savetimeh1 = iTime( System(), PERIOD_H1,0);
}
 
а не проще через iVolume()? если меньше одного, то новая свеча только началась, т.е. старая только закончилась...
 
Kharin:
а не проще через iVolume()? если меньше одного, то новая свеча только началась, т.е. старая только закончилась...

YuraZ:
paparazzo:

Господа хорошие, подозреваю, что это должно быть просто, но как определить средствами MQL Закрыта ли свеча или еще нет? Видимо над сравнивать с системным временем, или есть другие варианты? Кто подскажет?

if ( iTime( System(), PERIOD_H1,0) != savetimeh1 )
{
// новая свеча H1
savetimeh1 = iTime( System(), PERIOD_H1,0);
}

Спасибо, но для моей задачи не пойдет. А задача, собственно, обратная. Эксперт (скрипт) должен обработать все бары за исключением того, который еще не закрылся.

 
paparazzo:
Kharin:
а не проще через iVolume()? если меньше одного, то новая свеча только началась, т.е. старая только закончилась...

YuraZ:
paparazzo:

Господа хорошие, подозреваю, что это должно быть просто, но как определить средствами MQL Закрыта ли свеча или еще нет? Видимо над сравнивать с системным временем, или есть другие варианты? Кто подскажет?

if ( iTime( System(), PERIOD_H1,0) != savetimeh1 )
{
// новая свеча H1
savetimeh1 = iTime( System(), PERIOD_H1,0);
}

Спасибо, но для моей задачи не пойдет. А задача, собственно, обратная. Эксперт (скрипт) должен обработать все бары за исключением того, который еще не закрылся.

Ну так и бери все бары кроме нулевого. Напимер, Close[1] даст цену закрытия последнего полного бара на текущем таймфрейме и инструменте.

 
lusp:
paparazzo:
Kharin:
а не проще через iVolume()? если меньше одного, то новая свеча только началась, т.е. старая только закончилась...

YuraZ:
paparazzo:

Господа хорошие, подозреваю, что это должно быть просто, но как определить средствами MQL Закрыта ли свеча или еще нет? Видимо над сравнивать с системным временем, или есть другие варианты? Кто подскажет?

if ( iTime( System(), PERIOD_H1,0) != savetimeh1 )
{
// новая свеча H1
savetimeh1 = iTime( System(), PERIOD_H1,0);
}

Спасибо, но для моей задачи не пойдет. А задача, собственно, обратная. Эксперт (скрипт) должен обработать все бары за исключением того, который еще не закрылся.

Ну так и бери все бары кроме нулевого. Напимер, Close[1] даст цену закрытия последнего полного бара на текущем таймфрейме и инструменте.


Ха, так и делаю пока... А если суббота, или просто связь пропала, или еще что? Если число факторов типа «еще что» конечно и предсказуемо, то проще, видимо поставить соответствующие условия. Можете перечислить подобные факторы?

 

Спасибо всем, решение найдено, тема закрыта.