Может быть, я сделал что-то не так, но попробуйте кто-нибудь в тестере:
voidOnTick()
{
//---if (isNewBar())
{
Print("New bar!!!!!!!!!!!!!!!!!!");
// выполняем что необходимо при открытии бара
}
// выполняем общие проверки, не зависящие от открытия бара.
}
//+------------------------------------------------------------------+//| Возвращает true, если появился новый бар для пары символ/период |//+------------------------------------------------------------------+bool isNewBar()
{
//--- в статической переменной будем помнить время открытия последнего бараstaticdatetime last_time=0;
//--- текущее времяdatetime lastbar_time=SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE);
//--- если это первый вызов функцииif(last_time==0)
{
//--- установим время и выйдем
last_time=lastbar_time;
return(false);
}
//--- если время отличаетсяif(last_time!=lastbar_time)
{
//--- запомним время и вернем true
last_time=lastbar_time;
return(true);
}
//--- дошли до этого места - значит бар не новый, вернем falsereturn(false);
}
Люди Добрые!!!!!! Что происходит???!!!!!!! :)) Что бы я не делал, советник меня информирует несколько раз за секунду(в тестере). Может, кто-нибудь знает решение этого вопроса?
Может быть, я сделал что-то не так, но попробуйте кто-нибудь в тестере:
//+------------------------------------------------------------------+//| Возвращает true, если появился новый бар для пары символ/период |//+------------------------------------------------------------------+bool isNewBar()
{
//--- в статической переменной будем помнить время открытия последнего бараstaticdatetime last_time;
//--- текущее время//datetime lastbar_time=SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE);datetime lastbar_time=Time[0];
//--- если это первый вызов функцииif(last_time==0)
{
//--- установим время и выйдем
last_time=lastbar_time;
return(false);
}
//Print("last_time=",TimeToString(last_time,TIME_SECONDS),// "; lastbar_time=",TimeToString(lastbar_time,TIME_SECONDS));//--- если время отличаетсяif(last_time!=lastbar_time)
{
//--- запомним время и вернем true
last_time=lastbar_time;
return(true);
}
//--- дошли до этого места - значит бар не новый, вернем falsereturn(false);
}
Буду ждать открытия рынка и пробовать на демо-счете. Мне кажется, что в тестере есть какие-то ограничения по функциям. Я уже и через объем пытался-все равно несколько оповещений в секунду в журнал записывает. Всем спасибо за то, что уделили время моей проблеме. Если есть еще какие-то идеи-пишите.
В MT4 данная функция не работает.
Может быть, я сделал что-то не так, но попробуйте кто-нибудь в тестере:
В MT4 данная функция не работает.
Может быть, я сделал что-то не так, но попробуйте кто-нибудь в тестере:
SeriesInfo в MT4 не работает!
Что за "SeriesInfo"? Нет такой функции.
Всё работает.
Раскоментируйте мой код:
Если есть еще какие-то идеи-пишите.