Несколько лет назад написал простой инструментарий для лучшего понимания фильтра, что использую. Сам фильтр (торговых сигналов) был опубликован с открытым исходным кодом почти пять лет назад.
Теперь любой желающий может попробовать этот инструмент (beta). А ниже просто покажу его удивительные результаты в теме машинного обучения (МО) через одну из версий (8.13) имитации интеллекта (ИИ).
Для статистически значимой проверки требуется много сделок, поэтому с помощью вышеупомянутого ИИ был собран робот с просьбой (к ИИ) ничего не фильтровать и быть постоянно в рынке одной позицией, только ее переворачивая. Грубо говоря, вся история торгов — это чередование Buy/Sell.
В итоге в замечательном MT5-тестере с возможностью подключения ONNX-моделей был получен такой результат.
Почти 45 000 переворотов, постоянно в рынке в течение трех лет. Как видно из диаграмм, все довольно плотно и плавно.
Ну а так выглядит линия баланса/эквити.
Эти данные и будем скармливать фильтру, который будет проверяться через инструментарий.
Идея изначально была наделить фильтр визуальной интерактивностью: меняешь параметры фильтра — тут же видишь результат его применения. Поэтому для MT5 был написан советник, который подхватывал результаты последнего бэктеста и позволял с ним делать все, согласно озвученной концепции.
Сам фильтр имеет подробное описание с примерами применения. Если кратко, то он просто автоматически вычисляет неудачные суточные интервалы торговли. И больше ничего! Ниже приведу три проверки. Поскольку все интерактивное, то визуалиазция будет не в виде статичных картинок, а анимацией (щелкайте на изображения). Если отключить масштабирование, то каждый стоп-кадр содержит массу информации в наилучшем качестве.
На анимации показано, как к результату бэктеста применяется постепенное выбрасывание неудачных интервалов: 0-20.
На нулевом выбросе мы видим, конечно, полное отсутствие фильтров. Ну далее — спрямление линиии баланса. Все логично.
Слева в тексте можем видеть данные выкидывания. В частности, время расчетов — считанные миллисекунды. Т.е. фильтр очень быстрый даже на 45 000 переворотах.
А теперь серьезное испытание. Мы будем уменьшать интервал обучения фильтра и смотреть, как он сказывает на необучаемой выборке.
Красная линия — обучение, синяя — OOS. Так исторически сложилось, что OOS слева, а не справа.
Фильтр попросил вычислять так, чтобы профитфактор был не ниже двойки (PF > 2) — для красоты.
И вот первое удивление. Весь интервал бэктекста 1175 дней. На анимации постепенно уменьшается обучающийся интервал до 10 дней (красного почти не видно), а фильтр великолепно проходит OOS. Т.е. обучающая выборка в 100 раз меньше проверочной!
Зафиксируем длину обучающей выборки (красный кусок) двумя месяцами — 60 дней. И будем смотреть, как ведет себя OOS (синие куски графика слева/справа от красного) на данных фильтра.
Анимация красноречиво доказывает, что OOS проходится! И это может быть объяснено только одним — фильтр постоянно находит устойчивую рыночную закономерность.
Внутрисуточный фильтр — полезная штука. Иногда дающая удивительные результаты.
Инструментарий опубликован в виде исполняемого файла. Каждый может его попробовать на своих данных.
Авторы своих советников могут отключить какие-либо временные фильтры в своих роботах, сделать бэктест в MT5-тестере и применить к результатам инструментарий. Вдумчивое применение позволит лучше понять, как выгоднее использовать фильтры по времени.
Вы можете взять чей-то советник (например, БЕСПЛАТНО взять в Маркете любой), прогнать его в MT5-тестере и также применить инструментарий. И если увидите что-то интересное, сообщить автору советника об этом.
Концепция визуальной интерактивности для разработки фильтров торговых сигналов дает ощутимые плоды не только в виде удобных картинок, но и лучшего понимания, с чем имеешь дело.