datetime time; //global var (глобальная перемення)
int init()
{
time=Time[0];
// код
return(0);
}
int start()
{
if(time!=Time[0]) // если уже новый бар
{
time=Time[0];
// код
}
// код
return(0);
}
datetime time; //global var (глобальная перемення)
int init()
{
time=Time[0];
// код
return(0);
}
int start()
{
if(time!=Time[0]) // если уже новый бар
{
time=Time[0];
// код
}
// код
return(0);
}
Спасибо.
Получается при старте я всегда будут терять первый бар. Но это в общем мелочи.
Но это не красиво, но это уже к разрабочикам MT4.
По хорошему должна быть CallBack функция или процедура как даже не по профессионально сделано.
Хорошо бы еще передавать CallBack процедуру в качестве параметра на открытие, изменение и закрытие ордера.
Если передал NULL то у меня нет данной callBack функции.
Вот посудите сами: а так сколько ждать одну секунду, минуту не известно сколько будет обрабатываться распоряжение ...
Получается я постоянно должен насиловать всю систему в целом создавать никому не нужную нагрузку на тот же сервер про клиент я молчу.
А тут вообще бывают разработки MT? Хорошо бы что бы они увидили это сообщение.
Система в общем неплохая но есть обидные недоработки которые с профессиональной точки зрения.
int start() { if( !NevBar() ) return(0); /* Ваш код */ } //=============================================================================== // Функция контроля нового бара //=============================================================================== bool NevBar(){ static int PrevTime=0; if (PrevTime==Time[0]) return(false); PrevTime=Time[0]; return(true); }
Спасибо.
Получается при старте я всегда будут терять первый бар. Но это в общем мелочи.
Но это не красиво, но это уже к разрабочикам MT4.
По хорошему должна быть CallBack функция или процедура как даже не по профессионально сделано.
Хорошо бы еще передавать CallBack процедуру в качестве параметра на открытие, изменение и закрытие ордера.
Если передал NULL то у меня нет данной callBack функции.
Вот посудите сами: а так сколько ждать одну секунду, минуту не известно сколько будет обрабатываться распоряжение ...
Получается я постоянно должен насиловать всю систему в целом создавать никому не нужную нагрузку на тот же сервер про клиент я молчу.
А тут вообще бывают разработки MT? Хорошо бы что бы они увидили это сообщение.
Система в общем неплохая но есть обидные недоработки которые с профессиональной точки зрения.
1. Мне кажется вы не совсем понимаете, что бары в МТ4 начинаются не с 1, а с нуля. Но если вы хотите именно уже сформировавшийся, то тут один ответ - 1. То есть предшествующий текущему.
2. Это сайт разработчиков терминала, поэтому они здесь бывают и частенько. Также как и профессиональные советчики, как чего сделать лучше.
if ( Volume(0) == 1 )
{
//код
}
Думаю так будет еще проще ))
Scriptong писал (а) >>
Есть еще один метод определения того, что бар сформировался до прихода первого тика нового бара - сравнить текущее время с временем формирования бара. Если их разница больше или равна периоду графика (приведенное в секунды), то все - бар сформирован. Но для этого нужно все время мониторить текущее время (решение пока одно - скрипт). Вот когда получим событийную модель в MQL, тогда можно будет решить проблему простым таймером.
не обязательно мониторить время
можно по приходу тика... правда тик может прийти с опозданием несколько минут - обычно по ночам такое
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
не хочу лишний раз насиловать железо, так сказать есть желание оптимизировать экперт.
где-то видел пример но немогу вспомнить где.
очень надо!
Спасибо.