Нужна помощь. Определение начала оптимизации МТ4
Существует ли способ определить первый прогон оптимизации в ondeinit() ?
Это про МТ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 == ... и т.д. }
В общем, голь на выдумки хитра, извращайтесь. )
extern int a; int x; void OnInit() { if (a==2){x=3.14;// хочу что то изменить в советнике после первого прогона
} }