Скачать MetaTrader 5

Вопрос по инициализации (init)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Знаешь C++? MQL5 очень схож с ним, убедись в этом сам!
Forex Trader
114257
Forex Trader 2005.09.19 14:41 
Не могу понять почему инициализации индикатора происходит дважды?
Переименовал этот же индикатор, его копия запускается однократно.
В чем может быть проблема?
aarewrewr wer-werr - оригинал
UpDown - копия

14:34:12 aarewrewr wer-werr EURUSD,Daily: loaded successfully
14:34:18 aarewrewr wer-werr EURUSD,Daily: initialized
14:34:18 aarewrewr wer-werr EURUSD,Daily: initialized
14:34:27 aarewrewr wer-werr EURUSD,Daily: deinitialized
14:34:27 aarewrewr wer-werr EURUSD,Daily: removed
14:34:29 UpDown EURUSD,Daily: loaded successfully
14:34:30 UpDown EURUSD,Daily: initialized
14:34:35 UpDown EURUSD,Daily: deinitialized
14:34:35 UpDown EURUSD,Daily: removed
Forex Trader
114257
Forex Trader 2005.09.19 17:02  
нада код =)
Forex Trader
114257
Forex Trader 2005.09.28 18:35  
нада код =)


Возможно есть какой то умысел, но проблема двойного вызова процедуры инициализации меня лично достала.(Билд 182)
Я начал искать проблему и пришел к выводу что она кроется где то в области обработки входных параметров.
Например следующий код проходит двойную инициализацию, что видно по журналу экспертов.
А если закоментировать единственный входной параметр, то инициализация выполняется только один раз.
Очень хотелось бы получить ответ разработчика умысел это или глюк.

//+------------------------------------------------------------------+
//|                                                          12_.mq4 |
//|                                             Copyright © 2005, AU |
//|                                           http://www.lan.kiev.ua |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, AU"
#property link      "http://www.lan.kiev.ua"

#property indicator_chart_window

// ========== Incomin vars ==============================================
extern string Name="qqq";
int init(){
	return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit(){
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){	// Даже при отсутствии тиков после запуска индикатора Выполняется при присоединении - 1 раз, при переключении периода или перекомпиляции - 2 раза
  return(0);
  }
//+------------------------------------------------------------------+



P.S. Какая то проблема имеет место и с процедурой start(). Я писал себе заметку в коментарии, но разобраться не успел.

Forex Trader
114257
Forex Trader 2005.09.30 00:02  
Я так и не разобрался из-за чего это происходит, скорее всего это глюк и в новых версиях его уже нет (об этом писали, не проверял). Но вот что я заметил: если интикатор просто перетащить на чарт, функция init срабатывает дважды, а если изменить входные параметры, то запускается один раз. В первом случае у меня на графики все объекты дублировались, что несколько искажало его представление. Сколько времени я пропарился перекапывая код в поисках ошибки, затем понял, что бесполезно и плюнул на это дело... :)
PS: MT4.182 (14 sep 2005)
Forex Trader
114257
Forex Trader 2005.09.30 11:16  
будем разбираться
Forex Trader
114257
Forex Trader 2005.09.30 19:28  
будем разбираться

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