Блог им. fxsaber
В любом исследовании сначала идет подготовка исходных данных. На фин. рынках это почти всегда истории котировок. В зависимости от источника, они могут обладать определенными особенностями. Сегодня поговорим о белых лебедях и способах их обойти.
На эту тему ранее были написаны небольшие заметки.
На картинке 20 лучших проходов с форвардами (правее синей линии), взятых из генетической оптимизации на 18-ти ядрах с принудительным прерыванием после 2000 проходов (подробности здесь).
На каждом проходе можно видеть хороший подъем. Давайте посмотрим, как выглядит лучший проход в MT5-Тестере.
Получили просто повторение миниатюры средствами Тестера. Поэтому запускаем альтернативное представление результатов Тестера.
И вот здесь видим всплеск на графике баланса! На картинке показано выделение серой рамкой, которая дает интерактивную возможность увеличения масштаба заданной области. Главное, что почти вся прибыль получена на сверх-коротком интервале, который сразу виден. Поэтому смотрим его в виде баров и сделок на них средствами Тестера.
Собственно подтвердилось. Дикая граальность. Это и есть белый лебедь. Его конфигурации могут быть разными, это только один из вариантов.
Если ваша ТС специально заточена на вылавливание белых лебедей, то подобные всплески нужно уметь находить реал-тайм и проторговывать. Однако, как правило, в реальности чаще всего это технический сбой источника котировок, при попытке торговли которого будет либо большое количество реджектов, либо огромные отрицательные скольжения.
Но, что еще хуже, это влияние подобных исходных данных на Оптимизатор — важный исследовательский инструмент при поиске рыночных закономерностей. И если присутствуют белые лебеди, то даже методы Машинного Обучения будут спотыкаться на таких несистемных входах. А значит, не получится искать закономерности там, где они, действительно, могут быть.
Поэтому перед тем, как что-то искать, хорошо бы избавиться от проблем в истории котировок. Это можно делать руками.
Второй вариант — наиболее правильный путь. Поэтому возникает задача автоматизации поиска таких мест в имеющейся истории.
Придумывал различные алгоритмы, чтобы наиболее оптимально определять проблемные места в истории, при этом не затрагивая основную здоровую часть. В итоге, что-то получилось — приложил в виде скрипта, который выдает проблемные интервалы в случае, если смог найти их.
Соответственно, можно проверить адекватность алгоритма самостоятельно на своих данных.
Собственно применил предложенную реализацию к исходным данным и скормил их роботу, точнее Оптимизатору.
Специально не привожу красивые графики, чтобы уменьшить эмоциональное восприятие.
Главное, что существуют автоматические способы коррекции исходных данных, которые подаются на вход исследовательскому аппарату.
Выше объяснение необходимости удаления белых лебедей и экспериментальная автоматическая реализация. Для своих исследований использование такого предварительнго фильтра вижу обязательным.
Когда же лебедь был удален, то генетика не знала, за что хвататься. Т.е. оптимизатор не выкинуло на глобальный экстремум, а он пошел рыскать по локальным вершинкам. Ну а чтобы генетика в итоге не выбрала какую-то одну вершину, как основную, делал прерывание генетики задолго до завершения.
В итоге получил результаты с разных локальных вершинок. Так объективнее. И можно из лучших результатов выбрать понравившиеся.
Тема нашла свое неожиданное продолжение в телеграм-группе…