fxsaber
fxsaber личный блог
14 октября 2021, 02:30

TesterDashboard - эффективное привлечение эволюционной интеллектуальной машины к поиску закономерностей.

Идея не нова, вопрос был только в реализации.

Платформа MetaTrader 5 обладает возможностями автоматизации Тестера. Расчет огромного количества данных на истории реальных тиков — обыденность.

Проверка адаптивности ТС — аналогично.


Обработка расчетов.


Однако, при большом количестве уже проведенных вычислений требуется разобрать эту кучу данных и найти в ней что-то, действительно, интересное.

Это можно делать двумя способами:

  1. Создать автоматический критерий, который отфильтрует что-то стОящее от вычислительной шелухи.
  2. Перебрать руками каждый кусочек цифровой кучи, доверяя фильтрацию мощной интеллектуальной машине — головному мозгу человека.


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

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

 

Мозг и закономерности.



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

 (нажмите на ссылку для перехода в анимационный режим).
TesterDashboard - эффективное привлечение эволюционной интеллектуальной машины к поиску закономерностей.

 

Возможно, вас что-то привлекло в этих быстро сменяющихся картинках. Для этого не нужно быть технарем, обладать каким-то уникальным опытом. Головной мозг почти каждого человека подметит что-то общее для всех. Срабатывает развитое чувство порядка, что не так далеко от закономерностей...

 

Скрипт.


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

Итак, требуется визуализация большого количества данных, которые были получены автоматизацией оптимизатора MT5-тестера. Грубо говоря, вы много советников оптимизировали на разных символах и теперь нужно оценить, а есть ли среди результатов что-то достойное?

 

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

TesterCache file 13/449, Pass 20/20
Time = 00:21:46 / 12:34:41 (2.88%), Time Left = 12:12:55 (2021.10.14 13:32:19))- done.

 

Фишка.


У каждой таблицы оптимизации берется какое-то число (например, 20) лучших проходов и графики их equity/balance объединяются в одну картинку (каждый стоп-кадр на анимации выше).

 

Допустим есть 1000 оптимизаций. Перебрать их — безумного дорого во всех смыслах. Однако, скрипт сделает 20 000 одиночных прогонов, создав 1000 картинок, где в каждой будет 20 лучших проходов. Далее нужно эти 1000 картинок прогнать перед глазами, подсознанием отфильтровав на наличие порядка. Тем самым головной мозг будет работать только пять минут, пока будет смотреть 1000 картинок. Всю огромную подготовительную работу проделает скрипт.

 

Возможности.

  • Для каждого прохода скрипт создает set-файл входных параметров и удобный html-стейтмент. Поэтому повторно тратить время на проходы не обязательно.
  • Работает с советниками с закрытым исходным кодом — EX5-формат. В частности, может бесплатно и полноценно тестировать продаваемые в Маркете торговые роботы.
  • Выводит информацию по мере выполнения расчетов.
  • Можно выбирать любой интервал тестирования и критерий выбора лучшего прохода.
  • На мини-картинке каждого прохода выделяются границы OOS-интервалов. Что визуально помогает отделить интервалы оптимизации от выборки вне их.
  • Все полученные расчеты системно распределяет по папкам. Не спамит каталоги настроек и кешей MT5-Тестера.
  • Может работать только с последней оптимизацией или заданной.

 

Работа в одиночном режиме.


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

 

Очевидно, что если применить скрипт к завершенной оптимизации (через генетический алгоритм или другие), то все «20» картинок будут почти одинаковыми, ведь на вершине такой оптимизации почти всегда будут однообразные проходы найденного локального экстремума.

В таком случае отпадает необходимость в подобных манипуляциях скриптом. Поэтому при поиске рыночных закономерностей лучше всегда резать число проходов эвристических алгоритмов поиска (оптимизация ТС). Малое число проходов не только ускорит выполнение оптимизации, но и позволит увидеть на вершине таблицы места из разных локальных экстремумов. Т.е. сгенерированная скриптом картинка будет иметь гораздо больше смысла.

 

Лежащее на поверхности правило оптимизации во время поиска рыночных закономерностей или составления портфеля ТС, редко используется...

 

Особенности.

  • Использует DLL, поэтому сам не может размещаться в Маркете. Никуда не лезет.
  • Дальнейшее использование предполагает, что умеете пользоваться файловыми менеджерами. Такими, как Total Commander. Чтобы можно было быстро посмотреть результаты работы скрипта. И убрать забракованные вами же кеши MT5-тестера.
  • Скрипт однопоточный: проходы считаются последовательно, не параллельно.
  • Можно ставить/снимать паузу во время выполнения.

 

Польза.

Непередаваемая экономия сил и времени + выявление интересных закономерностей, которых ранее не замечал. Пройдет мимо незамеченным, не рекомендую использовать.

2 Комментария
  • Replikant_mih
    14 октября 2021, 08:27

    Да, лень двигатель прогресса. Вернее мозг и лень. Если ты делаешь какую-то простоту — ну и делаешь, если стремишься сделать по красоте и при этом сильно не любишь рутину, то по-любому будешь придумывать какие-то крутые автоматизации, скрипты, юпитер-тетради и прочее. У меня тоже море всякой такой красоты. 

    Кстати, именно в данном посте чего-то интересного, что бы мог почерпнуть для себя, не нашел — у меня, видимо, прилично отличающийся подход.

     

    А так тема правильная — до конца автоматизировать всё сложно — есть моменты где человек не помешает, т.е. ты условно небольшими силами большую часть автоматизировал, потом уже бОльшими усилиями ещё приличный кусок, дальше тоже можно, но уже с гораздо меньше отдачей и уже проще/эффективней руками делать.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн