Происходит вызов OnInit(), но не сразу при переключении, а на первом тике, или вообще когда-то там, зависит от условий при которых вызывается индикатор.
Ещё раз повторюсь: iCustom инициализация/деинициализация не проходит если повторно менять период графика.
Вот логи, можете проверить:
0 17:00:08.326 Expert Test_iCustom_init EURUSD,H1: loaded successfully 0 17:00:08.336 Test_iCustom_init EURUSD,H1: ----------Init ---------------- expert: 0 17:00:08.336 Test_iCustom_init EURUSD,H1: ----- Indicator Call ---------- 0 17:00:08.354 Bulls.ex4 EURUSD,H1: ----------Init ---------------- idicator: // Первый раз все ок 0 17:00:08.356 Test_iCustom_init EURUSD,H1: initialized 0 17:00:27.635 Test_iCustom_init EURUSD,H1: uninit reason 3 0 17:00:27.635 Test_iCustom_init EURUSD,H1: ----------DeInit ---------------- expert: 0 17:00:27.731 Test_iCustom_init EURUSD,M30: ----------Init ---------------- expert: 0 17:00:27.731 Test_iCustom_init EURUSD,M30: ----- Indicator Call ---------- 0 17:00:27.761 Bulls.ex4 EURUSD,M30: ----------Init ---------------- idicator: // Первый раз все ок 0 17:00:27.764 Test_iCustom_init EURUSD,M30: initialized 0 17:00:31.104 Test_iCustom_init EURUSD,M30: uninit reason 3 0 17:00:31.104 Test_iCustom_init EURUSD,M30: ----------DeInit ---------------- expert: 0 17:00:31.105 Test_iCustom_init EURUSD,H1: ----------Init ---------------- expert: 0 17:00:31.105 Test_iCustom_init EURUSD,H1: ----- Indicator Call ---------- 0 17:00:31.106 Test_iCustom_init EURUSD,H1: initialized // повторно, здесь должен быть Init idicator - нету 0 17:00:35.400 Test_iCustom_init EURUSD,H1: uninit reason 3 0 17:00:35.400 Test_iCustom_init EURUSD,H1: ----------DeInit ---------------- expert: 0 17:00:35.401 Test_iCustom_init EURUSD,M30: ----------Init ---------------- expert: 0 17:00:35.401 Test_iCustom_init EURUSD,M30: ----- Indicator Call ---------- 0 17:00:35.405 Test_iCustom_init EURUSD,M30: initialized // повторно, здесь должен быть Init idicator - нету 0 17:00:53.882 Test_iCustom_init EURUSD,M30: uninit reason 3 0 17:00:53.882 Test_iCustom_init EURUSD,M30: ----------DeInit ---------------- expert: 0 17:00:53.981 Test_iCustom_init EURUSD,H4: ----------Init ---------------- expert: 0 17:00:53.981 Test_iCustom_init EURUSD,H4: ----- Indicator Call ---------- 0 17:00:53.999 Bulls.ex4 EURUSD,H4: ----------Init ---------------- idicator: // Первый раз H4 все ок 0 17:00:54.001 Test_iCustom_init EURUSD,H4: initialized
Если вернуть назад таймфрейм, то не происходит. Потому что индикатор не выгрузился еще. Зачем его заново инициализировать, если с ним все нормально?
Но если непременно надо, добавить индикатору еще один параметр-пустышку и передавать в него какое-нибудь уникальное число при инициализации эксперта. Но зачем?
//+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- Print("----------Init ---------------- expert: "); Print("----- Indicator Call ----------"); iCustom(NULL,0,"Bulls.ex4",2,6); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Print("----------DeInit ---------------- expert: "); }
В индикаторе проста Print в OnInit добавил.
Print("----------Init ---------------- idicator: ");
Если вернуть назад таймфрейм, то не происходит. Потому что индикатор не выгрузился еще. Зачем его заново инициализировать, если с ним все нормально?
Но если непременно надо, добавить индикатору еще один параметр-пустышку и передавать в него какое-нибудь уникальное число при инициализации эксперта. Но зачем?
Я понял, тогда поставлю параметр-пустышку. Мне индикатор рисуется от массивов, без инициализация/деинициализация не происходит
сброс массивов.
Спасибо!
Но через несколько минут индикатор все-таки выгружается. Если переключиться назад через несколько минут, то вызывается инит.
Да, тоже только что заметил. Но мне надо было сразу и эта проблема решена. Еще раз спасибо!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как проще всего заставить индикатор через iCustom инициализироваться/деинициализироваться всегда вместе с экспертом.
P.S. Индикатор подключен через ресурс.