Новое значение param будет известно после OnDeinit(), т.е. когда эксперт перезапустится - эксперт увидит его в OnInit следующего запуска). Текущий OnDeinit работает со старыми параметрами.
Сохраняйте старые значения (в файле, в глобальных переменных...) и сравнивайте с текущими в OnInit
Сохраняйте старые значения (в файле, в глобальных переменных...) и сравнивайте с текущими в OnInit
Значение reason в OnDeint указывает, что юзер изменил параметры
По логике здесь можно увидеть изменения, однако фигвам (только после перезапуска)
В общем опять решение через костыль ;-) Глоб.переменные не нужны
input int param = 0; // Параметр эксперта bool isParamChanged; // Признак изменения параметров юзером int OnInit() { Print(__FUNCTION__); if (isParamChanged) { Print("Новое значение=", param); isParamChanged = false; } return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { Print(__FUNCTION__, " reason=", reason); if (reason == REASON_PARAMETERS) { // юзер изменил параметры Print("Старое значение=", param); isParamChanged = true; } }
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2017.11.30 09:48
Памятка
Действие/тип программы | Смена ТФ или символа | Смена счета |
---|---|---|
Индикатор | Запуск OnDeinit и OnInit, объект глобального класса меняется (полная перезагрузка). | Ничего не происходит, кроме обнуления prev_calculated. |
Советник | Запуск OnDeinit и OnInit, объект глобального класса не меняется. | Запуск OnDeinit и OnInit, объект глобального класса меняется (полная перезагрузка). |
следовало бы добавить и смену входных параметров.
Интересно, что программно изменить входные параметры без перезапуска советника никак нельзя. Только руками через F7.
Интересно, что программно изменить входные параметры без перезапуска советника никак нельзя. Только руками через F7.
Можно, если объявить параметр как extern вместо input
extern int param = 0;
Можно, если объявить параметр как extern вместо input
Только в MT4.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования