Сегодня обновился терминал МТ5 и не показывается окно "Оптимизация" во время теста - страница 4

 
Renat Fatkhullin:

Чего же вы с самого начала не сказали, что вы запускаете генетику?

Сам принцип генетического поиска основан на рандоме и поэтому у него нет смысла "продолжать начатое". У него задача - случайно бегать.

И даже в этом случае кеш используется. Просто у вас вероятность попасть в ранее рассчитанные результаты очень низка (у вас область поиска 50 млн вариантов). Вот и получается, что выглядит как старт с начала, так как точка старта рандомизирована.

Если почитать справку, то там написано совершенно противоположное. Может не правильно написано? Хочется понять.

https://www.metatrader5.com/ru/terminal/help/algotrading/optimization_types

  • Если общее количество шагов оптимизации превышает 1 000 000 в 32-х битной системе или 100 000 000 в 64-х битной системе, то автоматически включается режим быстрой оптимизации.
  • При генетической оптимизации промежуточные результаты сохраняются в кэше после расчета каждого поколения (файл папка_данных_платформы/tester/cache/*.gen). Таким образом, процесс генетической оптимизации можно прерывать в любой момент. Даже если процесс генетической оптимизации будет прерван из-за внешних причин (например, отключения электричества), оптимизация будет автоматически продолжена с последнего рассчитанного поколения при последующем запуске. Кэш генетической оптимизации хранится до изменения настроек оптимизации или до полного завершения процесса оптимизации.
  • При штатной остановке оптимизации (кнопкой "Стоп") сохраняются все ранее рассчитанные проходы. При возобновлении оптимизации, процесс будет продолжен с места остановки.
Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
В данном режиме происходит полный перебор всех возможных комбинаций значений входных переменных, выбранных для оптимизации на соответствующей вкладке. Быстрая (генетический алгоритм) В основу данного типа оптимизации заложен генетический алгоритм подбора наилучших значений входных параметров. Данный тип оптимизации значительно быстрее полного...
 
Так выше написано, что мы полностью изменили работу кеша. Документацию изменим со временем.

Плюс я показал как в генетике кеш попадания кардинально улучшают результаты повторных запусков. От 50%.

Суть генетического тестера в том, что его надо запускать несколько раз, чтобы рандомизатор мог выбраться из локальных экстремумов. Это как раз показал на скрине выше, где четвертый запуск нашел новую горку.

Всегда надо понимать механику процесса. Если поисковое пространство решений на триллиарды, то генетике надо давать много попыток.
 
Renat Fatkhullin:
Так выше написано, что мы полностью изменили работу кеша. Документацию изменим со временем.

Плюс я показал как в генетике кеш попадания кардинально улучшают результаты повторных запусков. От 50%.

Суть генетического тестера в том, что его надо запускать несколько раз, чтобы рандомизатор мог выбраться из локальных экстремумов. Это как раз показал на скрине выше, где четвертый запуск нашел новую горку.

Всегда надо понимать механику процесса. Если поисковое пространство решений на триллиарды, то генетике надо давать много попыток.

Спасибо за труды!

Хотелось-бы видеть нормальную статистику по каждому символу при мультивалютном тестировании, хотя-бы минимум

 
Renat Fatkhullin:

Почему вы не прикладываете описания для воспроизведения?

Вы не понимаете, что картинка не является доказательством при полном отсутствии описания? Вы же на техническом форуме обсуждаете технические вопросы.

Я попробовал построить по вашим условиям:

  • штатный Moving Average.set
  • ваш сет настроек на 50 млн проходов
  • сервер MetaQuotes-Demo, EURUSD H1, последний год, Open Prices режим с генетикой
  • запустил генетику

Вот результат: все нормально и разумно, тестер работает, генетика находит нужные результаты


Видно, как генетика вышла на зеленые зоны наилучших результатов и там закрепилась.

Советник штатный Moving Average. сет прилагаю

Провел 4 оптимизации. Лог файлы в приложении. Это все с генетикой.

2 на новом билде. 2 на старом.

1-й прогон - на новом без остановки от начала до конца заняло 3.56 мин.

3-й прогон - на старом без остановки от начала до конца заняло 2.15 мин.

2-й прогон - на новом с одной остановкой от начала до конца заняло 2.25+7.57= 9.82 мин.

4-й прогон - на старом с одной остановкой от начала до конца заняло 1.55+1.17= 2.72 мин.

Скажите почему так плохо работает новый билд.

Файлы:
29_04_2018.zip  43 kb
 
Renat Fatkhullin:
Так выше написано, что мы полностью изменили работу кеша. Документацию изменим со временем.

Плюс я показал как в генетике кеш попадания кардинально улучшают результаты повторных запусков. От 50%.

Суть генетического тестера в том, что его надо запускать несколько раз, чтобы рандомизатор мог выбраться из локальных экстремумов. Это как раз показал на скрине выше, где четвертый запуск нашел новую горку.

Всегда надо понимать механику процесса. Если поисковое пространство решений на триллиарды, то генетике надо давать много попыток.

Если требуется запускать несколько раз, то почему не реализовать всё это в алгоритме?  А механику процесса можно понимать тогда, когда у нас достаточно информации об объекте.  Здесь же пользователю предоставляется чёрный ящик, о котором он имеет лишь общее представление, не зная подробностей (размер популяции, критерии остановки и т.д.).  И уж тем более не может управлять этими параметрами.    Поэтому если оптимизатор цепляется к локальным экстремумам, то возможно не совсем правильно заданы параметры алгоритма.

 
Texnolog:

Советник штатный Moving Average. сет прилагаю


Скажите почему так плохо работает новый билд.

Сформулируйте вопрос точно, пожалуйста.

 
Alexey Navoykov:

Если требуется запускать несколько раз, то почему не реализовать всё это в алгоритме?  А механику процесса можно понимать тогда, когда у нас достаточно информации об объекте.  Здесь же пользователю предоставляется чёрный ящик, о котором он имеет лишь общее представление, не зная подробностей (размер популяции, критерии остановки и т.д.).  И уж тем более не может управлять этими параметрами.    Поэтому если оптимизатор цепляется к локальным экстремумам, то возможно не совсем правильно заданы параметры алгоритма.

Потому что в этом суть генетического метода: в неограниченном пространстве поиска за N поколений выдать быстрое решение, когда прирост целевой функции падает ниже определенного уровня.

Ключевое слово: быстро.

Генетический алгоритм не гарантирует абсолютно точного результата. Он для быстрой и грязной оценки, чтобы получить первую аналитику.

Как надо пользоваться генетикой:

  1. Выставили широкие пределы поиска на миллиарды/триллионы вариантов
  2. Сделали первый прогон
  3. Используя визуализацию в разных плоскостях, включая 3D, поняли, в каких областях есть приличные результаты
  4. Сузили пределы поиска, часть параметров отключили (зафиксировав или сузив до разумного)
  5. Запустили новый прогон
  6. Получили дополнительные к первому прогону результаты
  7. Снова оценили с визуализацией, подумали
  8. Перешли к пункту 4, пока результаты не удовлетворят

Не отключайте голову, когда видите 10 000 проходов в поисковом пространстве на триллионы вариантов. Чудес же не бывает.

Генетикой надо пользоваться вдумчиво и вручную.


Вообще рекомендую глубже погрузиться в теорию. Без этого я вижу, что к генетике относятся "на кнопку нажал и все":

Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Vitaly Muzichenko:

Спасибо за труды!

Хотелось-бы видеть нормальную статистику по каждому символу при мультивалютном тестировании, хотя-бы минимум

Мы начали большой апгрейд тестера, переписывая его по частям. Сейчас заняты изменением схемы работы с данными.

Очень многое изменим, включая отчетность.

 
Renat Fatkhullin:

Мы заняты большим апгрейдом производительности тестера и переделываем режимы работы под большой нагрузкой. Добились серьезных улучшений и скоро будут реализованы новые методы ускорения.

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

Там реально были огромные расходы ресурсов и тормоза. Особенно когда говорим об сотнях тысяч строк, миллионах и десятков миллионов проходов. Нет никакого разумного смысла смотреть глазами на портянку предварительных данных.


Мы у себя ведем тесты на оптимизации и работе со 100 млн полных проходов.

Понятно, что при таких числах не может быть и речи об рилтаймовой пересортировке и показе таблички в 2-5-10-50 млн значений. Вариант только один - быстро и экономно все собрать, финально отсортировать и обеспечить просмотр на любую глубину.

Всё это замечательно!

Однако, вкладку "Оптимизация" пожалуйста, верните - без оперативной аналитики невозможно работать же! Тормозят большие таблицы - давайте сделаем фильтр - показывать 20 лучших по каждому критерию - это же не так ресурсоёмко(?), но очень поможет видеть картину. И, эти миллиарды проходов - это кто ж их делает то? Это же единицы с огромными мощностями - сами же говорите о разумности применять генетику, а там таких портянок нет. Т.е. больше 10к проходов - это редкость.

Про остановку оптимизации не понял, если у меня фреймы пишутся в файл, то после повторного запуска будет же писаться новый файл так-как у меня нет возможности сообщить советнику что мол продолжили с того места, где и остановились и не надо создавать новый файл для записи результатов. А если это так, то тут вообще не обойтись без мониторинга текущих результатов!

Ну если уж я не убедителен, то сделайте возможность формировать график с текущими результатами оптимизации по разным показателям, что б я мог переключить график на нужный показатель и мониторить таким образом ситуацию.

И, раз взялись за тестер, то очень прошу, после оптимизации переводить параметр "оптимизация" в режим однопроходного тестирования - сам много раз терял данные из-за этого и многие жаловались тут по этому поводу.

По поводу агентов в локальной сети - просьба научить их не тереть кэш и всё окружение в течение более значительного времени - так-как между оптимизациями проходит время на анализ данных, а не сразу запуск в течении 5 минут. А то сейчас получается только запустишь снова оптимизацию, и начинается раздача неизвестно чего - агенты включаются в работу минут через 10. Да у меня медленный интернет на отдачу, но что там можно так много отдавать? Почему нельзя отдать каждому локальному компьютеру(одному агенту на этом ПК), а он пусть всё поделит между агентами!

 
Renat Fatkhullin:

Сформулируйте вопрос точно, пожалуйста.

Зачем ломать старый хороший алгоритм и заменять его новым который работает в 3 раза медленнее?

Если нужно внедрить новый подход к генетическому методу, добавте новый пункт во вкладку "оптимизация",

создайте описание и приемы работы с ним.

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