Jump to content

Рубрика: оптимизация кода и подбор железа для ускорения оптимизации советников


Recommended Posts

Programmer
На сайте http://articles.mql4.com/ru/80 написано:
Особенности работы тестера стратегий на истории

- Некоторые функции отрабатываются/пропускаются без вывода

Это Sleep(), Alert(), SendMail(), SpeechText(), PlaySound(), MessageBox(), WindowFind(), WindowHandle(), WindowIsVisible()

 

Это не совсем точно. Посмотрите логи в ходе тестирования советника на истории. Ф-я Alert() отрабатывается и выводится в них.

Link to post
Share on other sites
ReasonMan
Я придерживаюсь своей т. зр.: Alert() и Print() замедляют оптимизацию.

Поясню.

Когда происходит компиляция кода в рабочий файл *.ex4 компилятор выбрасывает все закомментированные строки. Поэтому, если Alert() и Print() закомментированы, то повлиять они никак на оптимизацию не могут.

Идём далее. Пусть Alert() и Print() не закомментированы. Действительно, при оптимизации в логи ничего не выводится, но за счёт чего это достигается? Ведь, эти ф-ии всё же присутствуют в исполняемом файле. Достигается вот за счёт чего: программа-оптимизатор, выполняя Ваш код, каждый раз, когда натыкается на ф-ю, которая должна быть проигнорирована, принимает решение об игнорировании оной. Это занимает процессорное время, соответственно, тормозит оптимизацию.

Логично, согласен. По тестам как раз и получается разница в несколько процентов видимо из-за этого.

Только что проверил. Alert действительно выводится в логи в режиме тестирования. М-да, таки не всему написанному можно верить...

Спасибо за пояснения! :yes:

Link to post
Share on other sites
Programmer
Логично, согласен. По тестам как раз и получается разница в несколько процентов видимо из-за этого.

Только что проверил. Alert действительно выводится в логи в режиме тестирования. М-да, таки не всему написанному можно верить...

Спасибо за пояснения! :yes:

 

Нет проблем. :beer_drink:

Обращайтесь!

Link to post
Share on other sites
  • 10 years later...
Aleks54321

Привет! Подскажите, пожалуйста, оптимизировал советник полгода назад за 2005 - 2015 года и подобрал хороший сет за 2000 - 2020 года. Сделки на реале совпадают с тестером. Сейчас прогнал этот сет у того же брокера, с тем же спредом и на том же периоде, а результаты другие, намного хуже. Брокер Альпари, хотя у других брокеров то же самое выявил. В чем может быть проблема.

Link to post
Share on other sites
Ugar68
6 часов назад, Aleks54321 сказал:

Привет! Подскажите, пожалуйста, оптимизировал советник полгода назад за 2005 - 2015 года и подобрал хороший сет за 2000 - 2020 года. Сделки на реале совпадают с тестером. Сейчас прогнал этот сет у того же брокера, с тем же спредом и на том же периоде, а результаты другие, намного хуже. Брокер Альпари, хотя у других брокеров то же самое выявил. В чем может быть проблема.

По описанию похоже что проблема в советнике. Особенно если он старый.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
  • 4 weeks later...
BauBok

Поделюсь определенным опытом.

1. Начинал оптимизирвоать а MT4 генетическим алгоритмом. Штука прикольная, но работает не очень быстро.

2. Написал свой тестировщик на Delphi. Загружаю графики и тестирую стратегию. Затем эти коэффициенты дают приблизительно похожие результаты с тестированием на MT4. Получается можно писать свои тестировщики на разных языках.

3. Подбор параметров (оптимизацию) сначала осуществлял генетичесиким алгоритмом, потом нашел более гениальный алгоритм- называется - метод роя частиц.

4. Все алгоритмы оптимизации можно паралелить на многоядерных машинах, я запускал и на 32 ядерных. Скорость тестирования и оптимизации - аховая, по сравнению с пунктом 1.

 

 

 

Edited by Capman
Link to post
Share on other sites
Ugar68
11.01.2021 в 18:32, BauBok сказал:

Поделюсь определенным опытом.

1. Начинал оптимизирвоать а MT4 генетическим алгоритмом. Штука прикольная, но работает не очень быстро.

2. Написал свой тестировщик на Delphi. Загружаю графики и тестирую стратегию. Затем эти коэффициенты дают приблизительно похожие результаты с тестированием на MT4. Получается можно писать свои тестировщики на разных языках.

3. Подбор параметров (оптимизацию) сначала осуществлял генетичесиким алгоритмом, потом нашел более гениальный алгоритм- называется - метод роя частиц.

4. Все алгоритмы оптимизации можно паралелить на многоядерных машинах, я запускал и на 32 ядерных. Скорость тестирования и оптимизации - аховая, по сравнению с пунктом 1.

Генетический алгоритм не очень хорошая штука. Он пропускает проходы. Не всегда находит лучший. Простой перебор всех проходов точно ничего не пропустит. Генетику и другие методы выбора проходов стоит применять когда их количество большое и жизни не хватит дождаться окончания оптимизации.

Тестер МТ4 старый и не обновляется давно. Метаквоты на него забили. На все обращения они рекомендуют переходить на МТ5. Тестер МТ5 действительно гораздо больше может. При оптимизации не только может раскидать проходы по потокам, но и задействовать сетевые агенты. Я бы не сказал что тестер МТ5 быстрый, но возможностей гораздо больше чем у старшего брата МТ4.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...