Проектирование торговой системы с помощью метода случайного входа.

3 сентября 2016, 13:08
Sergey Lugovtsov
0
328

Проектирование торговой системы, стандартный путь.

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

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

Как правило, кривая формы доходности не удовлетворяет разработчика. Для получения лучшей формы кривой доходности в систему добавляют:

  • фильтр направления тренда
  • фильтр силы тренда
  • подтверждение сигнала на вход
  • сигнал на выход
  • фильтр сигнала на выход
  • стоп
  • и так далее

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

В итоге, после проведения множества тестов, кривая доходности приобретает примерно такой вид:

Кривая доходности на этапе проектирования системы 

Система запускается в работу и приносит разочарование:

Реальная кривая доходности 

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

Проектирование торговой системы с помощью метода случайного входа.

В статье «Случайный вход – эффективный метод тестирования торговых систем» подробно рассматривается техника тестирования блоков торговой системы с помощью данного метода.

Идея заключается в том, чтобы использовать «обвес» торговой системы для повышения ее реальной эффективности, а не для подгонки под исторические данные.

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

Например, для трендовой системы необходимо обязательное наличие:

  • Фильтра на вход в сделку в направлении основной тенденции.
  • Трейлинг стопа.
  • Сигнала на выход, в случае разворота тренда (их может быть несколько).

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

В итоге получается «обвес», привязанный не к уникальному сигналу на вход, а к торгуемому инструменту и таймфрейму. Учитывая, что все сервисные блоки торговой системы имеют положительное математическое ожидание, вероятность успеха создания устойчивой торговой системы возрастает.

И только после тестирования компонентов системы можно перейти к поиску оптимального сигнала на вход в сделку.

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

В статьях, указанных выше, тестирование блоков торговой системы проводилось для фьючерса на пару рубль доллар, контракт Si-6.16. По итогам тестирования методом случайного входа были получены следующие результаты:

  • Оптимальный фильтр на вход в сделку в направлении основной тенденции – на двух экспоненциальных скользящих средних, таймфрейм фильтра Day, периоды стандартные 9 и 18.
  • Трейлинг стоп – классический трейлинг стоп на текущем таймфрейме, расчет параметров автоматический, исходя из гарантийного обеспечения.
  • Сигналы на выход:
    • Выход на внешнем баре, таймфрейм Day;
    • Выход на развороте тренда, определяемым по дивергенции цены и MACD на таймфрейме H1.

Осталось подобрать оптимальный сигнал на вход в сделку. Для тестирования использована торговая платформа «BetaRelatedMarkets_V3».
Исследуем следующие сигналы на открытие позиции:

  • Индикатор выходит из зоны перекупленности перепроданности.
  • Индикатор пересекает сигнальную ниже уровня перепроданности или выше уровня прекупленности.
  • Индикатор пересекает медиану. Для индикаторов без четко определенных уровней медиана = 0, для индикаторов с уровнями, медиана = (уровень перекупленности + уровень перепроданности)/2
  • Разворот индикатора на 3-х точках ниже уровня перепроданности или выше уровня перекупленности. Определяется анализом 3-х соседних баров.
  • Разворот индикатора на 5-ти точках ниже уровня перепроданности или выше уровня перекупленности. Определяется анализом 5-ти соседних баров.
  • Ключевой разворот на графике ниже уровня перепроданности или выше уровня прекупленности.
  • Дивергенция или расхождение показаний индикатора и цены. Значения индикатора должны быть ниже уровня перепроданности или выше уровня перекупленности.
  • Индикатор корректируется от макс/мин. Значения индикатора должны быть ниже уровня перепроданности или выше уровня перекупленности. Индикатор должен скорректироваться от достигнутого экстремума на пороговое значение.

В торговой платформе доступно 46 осцилляторов для определения точки входа в сделку.

График оптимизации имеет следующий вид:

График оптимизации сигнала на вход в сделку 

Как видно из графика, 95% результатов находятся в положительной области. То есть сигнал на вход в сделку не имеет такого большого значения, как это кажется на первый взгляд.

Выберем сигнал на вход в сделку на дивергенции цены и индикатора %b.

Бэктест системы:

Бэктест системы Si-6.16 

График доходности системы:

График доходности системы на Si-6.16 

Осталось проверить систему на другом контракте, например Si-3.16.

Бэктест системы:

Бэктест системы Si-3.16 

График доходности системы:

График доходности системы на Si-3.16 

Выводы

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