Чем перехватывается запуск советника при запуске МТ?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Reactor555
417
Reactor555  
Если просто запустить советника из платформы, то выполняется OnInit. А если я закрываю платформу с работающим советником (или индикатором), а потом запускаю платформу снова? Как перехватить такое начало работы советника (индикатора)?
Evgeniy Zhdan
14015
Evgeniy Zhdan  
Reactor555:
Если просто запустить советника из платформы, то выполняется OnInit. А если я закрываю платформу с работающим советником (или индикатором), а потом запускаю платформу снова? Как перехватить такое начало работы советника (индикатора)?

Тоже в OnInit

Sergey Kolemanov
988
Sergey Kolemanov  
Reactor555:
Если просто запустить советника из платформы, то выполняется OnInit. А если я закрываю платформу с работающим советником (или индикатором), а потом запускаю платформу снова? Как перехватить такое начало работы советника (индикатора)?

OnInit выполняется и при перезапуске платформы. Похоже Вам надо отследить сам факт запуска платформы?

Aleksey Semenov
6307
Aleksey Semenov  
Reactor555:
Если просто запустить советника из платформы, то выполняется OnInit. А если я закрываю платформу с работающим советником (или индикатором), а потом запускаю платформу снова? Как перехватить такое начало работы советника (индикатора)?
не знаю как перехватить, но можно в функции Деинит ловить причину номер 9 - "Терминал был закрыт" и далее при старте поднимать информацию из лога или к примеру при деинициализации по причине №9 создавать глоб переменную
Reactor555
417
Reactor555  
Sergey Kolemanov:

OnInit выполняется и при перезапуске платформы. Похоже Вам надо отследить сам факт запуска платформы?

Нет. Не запускается. Я бы не спрашивал, если бы все было так просто.

Reactor555
417
Reactor555  
Aleksey Semenov:
...  или к примеру ... создавать глоб переменную

Была такая мысль. Надеялся, что есть способ проще.

Sergey Kolemanov
988
Sergey Kolemanov  
Reactor555:

Нет. Не запускается. Я бы не спрашивал, если бы все было так просто.

Всё запускается.

#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
    Print("Запуск!");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
Reactor555
417
Reactor555  
Странно. Сообщение пишется, а индикатор не рисуется. Если удалить окно индикатора и запустить его снова, то все рисуется.
Taras Slobodyanik
35715
Taras Slobodyanik  
Reactor555:
Странно. Сообщение пишется, а индикатор не рисуется. Если удалить окно индикатора и запустить его снова, то все рисуется.

советники не рисуют индикаторы (индикаторные буферы)

Reactor555
417
Reactor555  
У меня происходит следующая непонятка.
Запускаю в окне советника и в отдельном окне рисую индикатор. Если это делать руками, то индикатор рисуется, а советник запускается. Если это делать при включении МТ, то индикатор не рисуется, а у советника некоторые переменные не принимают значения, которые я задаю в OnInit. Правда в случае с советником это происходит через раз. А индикатор не рисуется вообще никогда. Он начинает рисоваться с того места, где я запустил МТ.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий