Почему советник запускается повторно после ExpertRemove() ?
Всем привет. Ситуация такая. Открываюсь не кнопкой buy/sell, а простым советником с целью поймать лучший спрэд.
В конце советника использую функцию ExpertRemove ("Прекращает работу эксперта и выгружает его с графика" - по документации). Советник успешно выгружается с графика и действительно ничего больше не делает.
Однако, если закрыть MT4, а потом запустить опять, то иногда (вроде бы не всегда), советник опять автоматически загружается и открывает позицию, не смотря на то, что я его к графику не присоединял.
Что нужно сделать, чтобы не было неразрешенной мной загрузки советника после старта терминала? Ниже исходник.
После ExpertRemove() надо добавить return().
И читать справку не по диагонали, там написано.
Для публикации кода есть кнопочка SRC на верхней панели редактирвания сообщения.После ExpertRemove() надо добавить return().
И читать справку не по диагонали, там написано.
Для публикации кода есть кнопочка SRC на верхней панели редактирвания сообщения.Остановка эксперта не происходит немедленно при вызове функции ExpertRemove(), производится лишь взвод флага для прекращения работы эксперта. Т.е., любое следующее событие эксперт обрабатывать уже не будет, произойдет вызов OnDeinit() и выгрузка с удалением с графика.
А на счет шаблона, то это скорее всего так и есть, другого объяснения этому не находятся...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Почему советник запускается повторно после 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();
}
}