А зачем после ExpertRemove() Sleep(), да ещё с таким временем? Это-же получается час!!! За час можно забыть всё чему учили с детства...:))))
Вообще ExpertRemove() выполняется непосредственно перед выходом из функции OnStart()
А зачем после ExpertRemove() Sleep(), да ещё с таким временем? Это-же получается час!!! За час можно забыть всё чему учили с детства...:))))
Вообще ExpertRemove() выполняется непосредственно перед выходом из функции OnStart()
Не понял.
А Sleep() для того, чтобы он перестал крутиться в "ЛУПЕ".
Кстати, в другом месте в этой же программе это работает.
А здесь игнорирует Sleep(1000*60*60);
Не понял.
Если не понял, прочти ещё раз. ExpertRemove() выполняется непосредственно перед выходом из функции OnTick()
Если в начале поставить условие при выполнении которого надо удалить эксперта с графика, то эксперт будет удалён только после прохода всего кода до конца...
void OnTick() { if(TimeCurrent() > D'2016.03.01') ExpertRemove(); if(OrdersTotal() == 0) OrderSend(**************); }
В этом варианте ордер будет поставлен и после 01.03.2016
ps; Я только сейчас обратил внимание на свою невнимательность. конечно-же OnTick() а не OnStart(). В скриптах эта функция бесполезна, но об этом в документации ничего не пишут.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, дорогие Форумчане!
У меня вопрос:
Почему эти команды не работают?
Вот отрывок из кода:
if(LastError != 0)
{
Print("7.GetLastError: ",LastError," TicketVector: ",TicketVector[x]," x: ",x," Stavka: ",OrdSnd_Stavka);
Print("77. ExpertRemove();");
ExpertRemove();
Sleep(1000*60*60);
}
Експерт пишет оба принта и продолжает крутиться в петле "Start()"