Почему _UninitReason и UninitializeReason() в событии OnInit() индикатора всегда возвращает 0 независимо от причины деинциализации?
Почему _UninitReason и UninitializeReason() в событии OnInit() индикатора всегда возвращает 0 независимо от причины деинциализации?
При каком сценарии видится правильным ненулевое значение в OnInit?
Не так давно я перечитывал обсуждение последовательности выполнения OnInit и OnDeinit в индикаторах. Обсуждение длинное, не всегда понятное, но в каждом сообщении Славы, кажется он участвовал в этом обсуждении, звучало именно то, что сказал Артём. При любой причине деинициализации, загружается новый индикатор который ничего не знает о существовании какого-то «родственника». И последовательность выполнения, для меня так и осталось тайной, в каких-то случаях выгружается «родственник», а потом загружается новорожденный, а в каких-то наоборот. Сначала новый, а потом выгружается «убитый».
В MT5-индикаторах OnInit не может вызваться повторно.
#property indicator_chart_window #property indicator_plots 0 void OnInit() { static int i = 0; Print(__FUNCSIG__ + ": " + (string)i++); } int OnCalculate( const int rates_total, const int, const int, const double &[] ) { return(rates_total); }Даже если меняете счет без смены символа.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
