Скачать MetaTrader 5

Нужна помощь. Определение начала оптимизации МТ4

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Делись ссылками с других ресурсов. Теперь они имеют описание!
Mikhail Sergeev
85061
Mikhail Sergeev 2015.11.23 22:33 
МТ4. Существует ли способ определить первый прогон оптимизации в ondeinit() ?
Stanislav Korotky
17884
Stanislav Korotky 2015.11.23 23:35  
Mikhail Sergeev:
Существует ли способ определить первый прогон оптимизации в ondeinit() ?
Это про МТ4 или МТ5? В МТ5 для начала оптимизации есть событие OnTesterInit.
Mikhail Sergeev
85061
Mikhail Sergeev 2015.11.24 04:54  
Stanislav Korotky:
Это про МТ4 или МТ5? В МТ5 для начала оптимизации есть событие OnTesterInit.
МТ4
Sergei Vladimirov
8764
Sergei Vladimirov 2015.11.24 12:39  

В четвёрке - только костыльными методами. Вот так, например:

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 == ... и т.д.
}

 

В общем, голь на выдумки хитра, извращайтесь. ) 

Yuri Evseenkov
2301
Yuri Evseenkov 2015.11.24 12:52  
Если хотите что то поменять после какого то прогона то просто а=1,2,3 - оптимизируемый параметр

extern int a; int x; void OnInit() { if (a==2){x=3.14;// хочу что то изменить в советнике после первого прогона

} }

Mikhail Sergeev
85061
Mikhail Sergeev 2015.11.25 15:19  
Спасибо. Буду выдумывать костыли, наиболее подходящие для моих задач.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий