МТ4. Существует ли способ определить первый прогон оптимизации в ondeinit() ?
Mikhail Sergeev:
Существует ли способ определить первый прогон оптимизации в ondeinit() ?
Это про МТ4 или МТ5? В МТ5 для начала оптимизации есть событие OnTesterInit.
Существует ли способ определить первый прогон оптимизации в ondeinit() ?
Stanislav Korotky:
Это про МТ4 или МТ5? В МТ5 для начала оптимизации есть событие OnTesterInit.
МТ4
Это про МТ4 или МТ5? В МТ5 для начала оптимизации есть событие OnTesterInit.
В четвёрке - только костыльными методами. Вот так, например:
void OnDeinit(const int nReason) { // флаг первого прогона оптимизатора bool bFirstRun = false; // если переменной GV не существует, значит это первый прогон if(GlobalVariableCheck("GV") == false) { bFirstRun = true; GlobalVariableSet("GV", 1); } }
Не забудьте удалить переменную перед запуском оптимизатора.
Ещё можно в коде проверять, являются ли текущие значения входных параметров начальными для оптимизации:
void OnDeinit(const int nReason) { // флаг первого прогона оптимизатора bool bFirstRun = inputParam1 == ... && inputParam2 == ... и т.д. }
В общем, голь на выдумки хитра, извращайтесь. )
Если хотите что то поменять после какого то прогона то просто а=1,2,3 - оптимизируемый параметр
extern int a; int x; void OnInit() { if (a==2){x=3.14;// хочу что то изменить в советнике после первого прогона
} }
Спасибо. Буду выдумывать костыли, наиболее подходящие для моих задач.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь