Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Много подписчиков на сигнале? Задумайся о платной подписке!
sdm02808
22
sdm02808 2016.11.10 09:45 

Почему советник запускается повторно после ExpertRemove() ?

 Всем привет. Ситуация такая. Открываюсь не кнопкой buy/sell, а простым советником с целью поймать лучший спрэд.

В конце советника использую функцию ExpertRemove ("Прекращает работу эксперта и выгружает его с графика" - по документации). Советник успешно выгружается с графика и действительно ничего больше не делает.

 Однако, если закрыть MT4, а потом запустить опять, то иногда (вроде бы не всегда), советник опять автоматически загружается и открывает позицию, не смотря на то, что я его к графику не присоединял.

Что нужно сделать, чтобы не было неразрешенной мной загрузки советника после старта терминала? Ниже исходник и скриншоты вкладок терминала "Эксперты" и "История счёта".

----------------

input int Best_Spread = 12;

input double Lots = 0.01;

bool opensell;

void OnTick()

{

if (Best_Spread >= MarketInfo(Symbol(),MODE_SPREAD))

  {opensell=OrderSend(Symbol(), OP_SELL, Lots, Bid, 0, Ask+200*Point, Bid-200*Point, " ", 111, 0, Red);

  ExpertRemove();

}

Vitalie Postolache
11954
Vitalie Postolache 2016.11.10 09:47  
sdm02808:

Почему советник запускается повторно после ExpertRemove() ?

 Всем привет. Ситуация такая. Открываюсь не кнопкой buy/sell, а простым советником с целью поймать лучший спрэд.

В конце советника использую функцию ExpertRemove ("Прекращает работу эксперта и выгружает его с графика" - по документации). Советник успешно выгружается с графика и действительно ничего больше не делает.

 Однако, если закрыть MT4, а потом запустить опять, то иногда (вроде бы не всегда), советник опять автоматически загружается и открывает позицию, не смотря на то, что я его к графику не присоединял.

Что нужно сделать, чтобы не было неразрешенной мной загрузки советника после старта терминала? Ниже исходник.


После ExpertRemove() надо добавить return().

И читать справку не по диагонали, там написано. 

Для публикации кода есть кнопочка SRC на верхней панели редактирвания сообщения.
Vladimir
309
Vladimir 2016.11.10 10:22  
Припоминаю, что, когда мне надо было, чтобы при перезапуске терминала эксперт и скрипт сразу самостоятельно появлялись на графике, я указывал их то ли в шаблоне графика, то ли в файле конфигурации при старте (там, где можно задать логин и пароль к счету). Может быть, у Вас там где-нибудь указано именно так?
Dmitry Sumsky
1177
Dmitry Sumsky 2016.11.12 16:12  
Vitalie Postolache:

После ExpertRemove() надо добавить return().

И читать справку не по диагонали, там написано. 

Для публикации кода есть кнопочка SRC на верхней панели редактирвания сообщения.

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

А на счет шаблона, то это скорее всего так и есть, другого объяснения этому не находятся...

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