Проектирование торговой системы, стандартный путь.
Обычно проектирование торговой системы начинается с сигнала на вход в сделку. Длительное наблюдение за графиком цены приводит трейдера к выявлению некоторой закономерности, которая позволяет извлечь прибыль из рынка. Например, это может быть сигнал от индикатора.
Сигнал на вход моделируется в одной из программ и добавляется сигнал на выход из сделки, например, в конце рабочего дня. Начало создания торговой системы положено.
Как правило, кривая формы доходности не удовлетворяет разработчика. Для получения лучшей формы кривой доходности в систему добавляют:
- фильтр направления тренда
- фильтр силы тренда
- подтверждение сигнала на вход
- сигнал на выход
- фильтр сигнала на выход
- стоп
- и так далее
На каждом этапе появляются дополнительные параметры для оптимизации. Чем их больше, тем проще подобрать такую комбинацию параметров, которая приблизит форму кривой доходности, на исторических данных, к идеалу.
В итоге, после проведения множества тестов, кривая доходности приобретает примерно такой вид:
Система запускается в работу и приносит разочарование:
«Обвес» системы дополнительными возможностями для контроля входа и выхода из сделки в любом случае будет означать подгонку под исторические данные, и ограничивать срок жизни торговой системы.
Проектирование торговой системы с помощью метода случайного входа.
В статье «Случайный вход – эффективный метод тестирования торговых систем» подробно рассматривается техника тестирования блоков торговой системы с помощью данного метода.
Идея заключается в том, чтобы использовать «обвес» торговой системы для повышения ее реальной эффективности, а не для подгонки под исторические данные.
В случае такого подхода, проектирование торговой системы начинается не с сигнала на вход, а с определения необходимого функционала.
Например, для трендовой системы необходимо обязательное наличие:
- Фильтра на вход в сделку в направлении основной тенденции.
- Трейлинг стопа.
- Сигнала на выход, в случае разворота тренда (их может быть несколько).
Каждый из этих блоков можно протестировать отдельно, используя метод случайного входа. При этом используются стандартные параметры для используемых индикаторов. Подробности в статьях:
- «Тестирование паттерна «Внешний бар» методом случайного входа".
- «Выбор оптимального трейлинг стопа с помощью метода случайного входа и системы сопровождения позиции MultiStop_Pro".
- «Выбор оптимального сигнала на выход из сделки с помощью метода случайного входа и системы сопровождения позиции MultiStop_Pro".
- «Выбор оптимального индикатора направления тренда с помощью метода случайного входа".
В итоге получается «обвес», привязанный не к уникальному сигналу на вход, а к торгуемому инструменту и таймфрейму. Учитывая, что все сервисные блоки торговой системы имеют положительное математическое ожидание, вероятность успеха создания устойчивой торговой системы возрастает.
И только после тестирования компонентов системы можно перейти к поиску оптимального сигнала на вход в сделку.
Выбор оптимального сигнала на вход в сделку.
В статьях, указанных выше, тестирование блоков торговой системы проводилось для фьючерса на пару рубль доллар, контракт Si-6.16. По итогам тестирования методом случайного входа были получены следующие результаты:
- Оптимальный фильтр на вход в сделку в направлении основной тенденции – на двух экспоненциальных скользящих средних, таймфрейм фильтра Day, периоды стандартные 9 и 18.
- Трейлинг стоп – классический трейлинг стоп на текущем таймфрейме, расчет параметров автоматический, исходя из гарантийного обеспечения.
- Сигналы на выход:
- Выход на внешнем баре, таймфрейм Day;
- Выход на развороте тренда, определяемым по дивергенции цены и MACD на таймфрейме H1.
Осталось подобрать оптимальный сигнал на вход в сделку. Для тестирования использована торговая платформа «BetaRelatedMarkets_V3».
Исследуем следующие сигналы на открытие позиции:
- Индикатор выходит из зоны перекупленности перепроданности.
- Индикатор пересекает сигнальную ниже уровня перепроданности или выше уровня прекупленности.
- Индикатор пересекает медиану. Для индикаторов без четко определенных уровней медиана = 0, для индикаторов с уровнями, медиана = (уровень перекупленности + уровень перепроданности)/2
- Разворот индикатора на 3-х точках ниже уровня перепроданности или выше уровня перекупленности. Определяется анализом 3-х соседних баров.
- Разворот индикатора на 5-ти точках ниже уровня перепроданности или выше уровня перекупленности. Определяется анализом 5-ти соседних баров.
- Ключевой разворот на графике ниже уровня перепроданности или выше уровня прекупленности.
- Дивергенция или расхождение показаний индикатора и цены. Значения индикатора должны быть ниже уровня перепроданности или выше уровня перекупленности.
- Индикатор корректируется от макс/мин. Значения индикатора должны быть ниже уровня перепроданности или выше уровня перекупленности. Индикатор должен скорректироваться от достигнутого экстремума на пороговое значение.
В торговой платформе доступно 46 осцилляторов для определения точки входа в сделку.
График оптимизации имеет следующий вид:
Как видно из графика, 95% результатов находятся в положительной области. То есть сигнал на вход в сделку не имеет такого большого значения, как это кажется на первый взгляд.
Выберем сигнал на вход в сделку на дивергенции цены и индикатора %b.
Бэктест системы:
График доходности системы:
Осталось проверить систему на другом контракте, например Si-3.16.
Бэктест системы:
График доходности системы:
Выводы
Использование метода случайного входа позволяет проектировать торговые системы с минимальным количеством параметров.
Вероятность «подгонки» под исторические данные значительно ниже, так как блоки системы тестируются отдельно, на случайных последовательностях.
Всех кому интересен данный метод проектирования торговых систем приглашаю к дискуссии на эту тему.