Обнова и скорость оптимизации.

 

Прилетела обнова... Шок. Билд 610:

А было, билд 509:

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

 
Figar0:

Прилетела обнова... Шок. Билд 610:

А было, билд 509:

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

Посмотрите на экран оптимизации в тестере и уберите из оптимизации несущественные параметры.
 
tara:
Посмотрите на экран оптимизации в тестере и уберите из оптимизации несущественные параметры.


О каких параметрах идет речь? Если о входных подвергающихся оптимизации, то такой параметр всего один. Убрать его и отказаться от оптимизации вообще?)

Речь о том, что 100000 проходов в оптимизаторе одного советника в Билд 509 - 3 минуты, в билд 610 - 26 минут.

 
Figar0:


О каких параметрах идет речь? Если о входных подвергающихся оптимизации, то такой параметр всего один. Убрать его и отказаться от оптимизации вообще?)

Речь о том, что 100000 проходов в оптимизаторе одного советника в Билд 509 - 3 минуты, в билд 610 - 26 минут.


Уберите все, кроме этого одного и посмотрите, что получится.
 
tara:

Уберите все, кроме этого одного и посмотрите, что получится.
Я же сказал, он и так один, от 0 до 99999 с шагом 1.
 
напиши это всё сюда : MetaTrader 4 Client Terminal build 610
 
MetaDriver:
напиши это всё сюда : MetaTrader 4 Client Terminal build 610


Они без кода и разговаривать не будут) Код пока жалко))

Проверил на стандартном Moving Average, там скорость у 610 даже чуток выше. Но какие-то инструкции в 610 стали работать сильно медленнее, возможно работа с файлами, ибо ничем другим мой советник от стандартных не отличается.

 
Figar0:


Они без кода и разговаривать не будут) Код пока жалко))

Проверил на стандартном Moving Average, там скорость у 610 даже чуток выше. Но какие-то инструкции в 610 стали работать сильно медленнее, возможно работа с файлами, ибо ничем другим мой советник от стандартных не отличается.

FileFlush() используешь? Вот он реально тормозной. В пятёрке тоже.

Если да - закомментируй и попробуй снова.

 
Профайлером смотрел?
 

Нашёл, работа с файлами. Вставка такой элементарной конструкции в start стандартного Moving Average:

     int handle=FileOpen(WindowExpertName()+"_"+Symbol()+"_"+Period()+".dat",FILE_BIN|FILE_WRITE);       
     int err = GetLastError();
     if (handle < 0 || err > 0)  { Print ("Ошибка открытия файла  => ", err); }
     FileWriteDouble(handle,  AccountEquity(), DOUBLE_VALUE);    
     FileClose(handle);

и 610 уже в 2,5 раза медленнее.... Интересно, это какой-то косяк и "осознанная позиция отныне и навсегда"? Ежели так - печаль...

Стоит в сервисдеск писать? Может кто-то посерьезнее меня в программировании возьмется оформить и поинтересоваться?

 
Figar0:

Нашёл, работа с фалам. Вставка такой элементарной конструкции в start:

и 610 уже в 2,5 раза медленнее.... Интересно, это какой-то косяк и "осознанная позиция отныне и навсегда"? Ежели так - печаль...

зачем тебе закрывать файл на каждом тике?

если даже тебе кажется, что это нужно для реала, то уж для тестера точно не нужно.

оставь один FileClose() в ДеИните и будет щастье. // открывай в Ините, соответственно, тоже один раз.

Причина обращения: