Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Делай скриншоты в MetaTrader и управляй ими в галерее!
adilbek
90
adilbek 2013.06.07 17:57 

добрый день,

Я оптимизирую советник написанный на MQL4, на датах с 2008 по 2012 год. У меня есть критерий в программе, после которого результат прогона считается провальным. В одном случае это условие наступает в 2008 году, но советник дальше работает до 2012 года, что занимает дополнительное время при оптимизации. Как досрочно завершить выполнение прогона теста? Свойства советника, параметры оптимизации не решают задачу, так как критерий завершения частный и не приведен в списке. Какую команду нужно вызывать в программе, чтобы принудительно досрочно завершить прогон теста?

Спасибо.

Alexey Subbotin
4999
Alexey Subbotin 2013.06.07 20:06  

в функцию start добавтье:

bool fail=false;

int start()
{
if(fail) return(0);

……
……

// в том месте, где поняли, что все плохо:
if(все плохо) fail=true;


}
adilbek
90
adilbek 2013.06.07 20:14  
alsu:

в функцию start добавтье:


да, согласен, это ускорит исполнение программы, но тики все равно будут генерироваться. Есть ли другой способ типа deinit() и все?
Alexey Subbotin
4999
Alexey Subbotin 2013.06.07 20:21  
adilbek:

да, согласен, это ускорит исполнение программы, но тики все равно будут генерироваться. Есть ли другой способ типа deinit() и все?

deinit это просто функция, ее вызов к завершению работы не приведет.

Можно попытаться программно нажать кнопку Стоп, но тогда накроется вся оптимизация, а это вам не нужно, я так понимаю.

Так ведь пустой прогон по тикам даже за 5 лет - это всего несколько секунд, много ли теряем?

adilbek
90
adilbek 2013.06.07 20:38  
alsu:

deinit это просто функция, ее вызов к завершению работы не приведет.

Можно попытаться программно нажать кнопку Стоп, но тогда накроется вся оптимизация, а это вам не нужно, я так понимаю.

Так ведь пустой прогон по тикам даже за 5 лет - это всего несколько секунд, много ли теряем?



да, оптимизацию завершать всю не нужно, только текущий прогон. У меня в коде до return( 0 ) перед проверкой статистику собирает, пробегается по всем открытым сделкам и пишет логи. Убрал это все за return и прогон быстрее стал исполняться в 5 раз. Спасибо за совет.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий