Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Хочешь стать известным разработчиком? Выполняй заказы трейдеров в сервисе Фриланс!
yerlan Imangeldinov
1145
yerlan Imangeldinov 2015.02.24 07:34 

if (Percent > 10)  {                     // Задано ошибочно ..

          ExpertRemove();                   

          Print("Превышен максимальный процент риска");

           Message("Превышен максимальный процент риска");

           }

 if (screenshot)fscreen(); // разве может выполнятся этот кусок кода, после вызова функции ExpertRemove();    

 

 

Хоть и выполняется функция ExpertRemove. скрипт успевает выполнить следуюшие  за ним функции. Вроде должно событие прекрашение, работы скрипта произойти или я чего то не понял.

Victor Nikolaev
Модератор
14078
Victor Nikolaev 2015.02.24 07:50  
subutai:

if (Percent > 10)  {                     // Задано ошибочно ..

          ExpertRemove();                   

          Print("Превышен максимальный процент риска");

           Message("Превышен максимальный процент риска");

           }

 if (screenshot)fscreen(); // разве может выполнятся этот кусок кода, после вызова функции ExpertRemove();    

 

 

Хоть и выполняется функция ExpertRemove. скрипт успевает выполнить следуюшие  за ним функции. Вроде должно событие прекрашение, работы скрипта произойти или я чего то не понял.

функция должна закончить свою работу. Команда на завершение работы советника отправлена
yerlan Imangeldinov
1145
yerlan Imangeldinov 2015.02.24 07:58  
Vinin:
функция должна закончить свою работу. Команда на завершение работы советника отправлена
Но скрин шоты, появляются хоть и скрипт останавливает работу.
yerlan Imangeldinov
1145
yerlan Imangeldinov 2015.02.24 08:17  
Vinin:
функция должна закончить свою работу. Команда на завершение работы советника отправлена
А вы имеете ввиду функцию Start но в теле функции есть куски кода, не только со скрин шотом, и они нормально после команды ExpertRemove();    не выполняются.         
Slawa
Модератор
6681
Slawa 2015.02.24 08:28  

Вы документацию читали?

Остановка эксперта не происходит немедленно при вызове функции ExpertRemove(), производится лишь взвод флага для прекращения работы эксперта. Т.е., любое следующее событие эксперт обрабатывать уже не будет, произойдет вызов OnDeinit() и выгрузка с удалением с графика.

yerlan Imangeldinov
1145
yerlan Imangeldinov 2015.02.24 08:54  
stringo:

Вы документацию читали?


Ну да что то я не до глядел. Но вот в чем еще большая странность уже как 3 года пользуюсь этой функцией, для остановки работы скрипта, все как часы  скрипт открывал позицию, только когда когда были условия. Хотя функция открытия позиции в теле есть.
evnt
208
evnt 2015.02.25 20:35  
Vinin:
функция должна закончить свою работу. Команда на завершение работы советника отправлена

Довьте return  и будет OK, вот так, например:

if (Percent > 10)  {                     // Задано ошибочно ..

          ExpertRemove();                   

          Print("Превышен максимальный процент риска");

           Message("Превышен максимальный процент риска");

return(0);  

           }

 if (screenshot)fscreen(); // разве может выполнятся этот кусок кода, после вызова функции ExpertRemove();     

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий