Можно так:
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)); }
Алексей, спасибо! Я правильно понимаю, что при 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))); }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день, уважаемые коллеги!
Что-то не соображу... Прошу подсказать, как определить начальную и конечную дату оптимизации советника из советника?
Эти даты есть в *.set, в разделе [Tester], в параметрах FromDate и ToDate. А как туда добраться? Можно, конечно, считать файл, разобрать и пр., но должен быть какой-то простой способ... По форуму не нашел. :(