Как определить начальную и конечную дату оптимизации советника из советника

 

Добрый день, уважаемые коллеги! 

Что-то не соображу... Прошу подсказать, как определить начальную и конечную дату оптимизации советника из советника? 

Эти даты есть в *.set, в разделе [Tester], в параметрах FromDate и ToDate. А как туда добраться? Можно, конечно, считать файл, разобрать и пр., но должен быть какой-то простой способ... По форуму не нашел. :(

  


Форум трейдеров - MQL5 community
Форум трейдеров - MQL5 community
  • www.mql5.com
MQL5: форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
[Удален]  

Можно так:

datetime start_time=-1, stop_time=-1;

void OnTick()
   {
   if(start_time==-1) start_time=iTime(symbol,frame,0);
   stop_time=iTime(symbol,frame,0);
   }
   
void OnDeinit(const int reason)
   {
   printf(TimeToString(start_time)+" -> "+TimeToString(stop_time));
   }
 
Aleksei Stepanenko #:

Можно так:

Алексей, спасибо! Я правильно понимаю, что при 1-ом вызове OnTick() проинициализируются и start_time, и stop_time? А потом, при каждом обработанном тике, stop_time будет переинициализироваться текущим значением, и в конце концов приобретёт значение последнего тика? Тут единственный минус получается - обработка всего этого на каждом тике. Но, наверное, даже при очень большом объёме оптимизации существенного влияния на скорость оптимизации это не окажет?

[Удален]  
Да всё правильно. Про скорость не волнуйтесь, одно действие сравнения и одно присваивание почти бесплатно.
[Удален]  

Можно попробовать получить время сразу в ините и деините, но не уверен, что всегда будет получаться.

datetime start_time=-1;

int OnInit()
   {
   start_time=iTime(symbol,frame,0);
   return(INIT_SUCCEEDED);
   }

void OnDeinit(const int reason)
   {
   printf(TimeToString(start_time)+" -> "+TimeToString(iTime(symbol,frame,0)));
   }
 
Aleksei Stepanenko #:

Можно попробовать получить время сразу в ините и деините, но не уверен, что всегда будет получаться.

Понял, Алексей. Ещё раз спасибо!