Пример создания стратегии на базе Pattern Explorer ©

Пример создания стратегии на базе Pattern Explorer ©

18 мая 2017, 10:04
Vertex Investments LLC
0
208

Пример создания стратегии на базе Pattern Explorer ©


Паттерн No1 - Rails (Рельсы)

Попробуем создать торговую стратегию, на основе первого паттерна, для этого выберем его в настройках советника, в разделе «PATTERN SETTINGS». Выставим значение 1 в переменной Pattern.

Теперь, нам нужно первоначально оценить: даёт ли, хоть какое-то преимущество, вход в сделку по сигналу этого паттерна, на выбранном торговом инструменте и таймфрейме. Речь идёт о применении паттерна, совершенно «в лоб» - не используя никаких дополнительных условий входа и комбинаций стоплоссов и тейкпрофитов. Как показывает практика, если паттерн даёт абсолютно отрицательный результат, при таком тестировании, то, вряд-ли, дело можно будет исправить, начав громоздить, всевозможные, дополнительные условия.

Подходов к созданию торговых стратегий великое множество, сейчас мы попытаемся начать с подбора торгового инструмента под паттерн, а не наоборот. Первым кандидатом будет у нас валютная пара EUR/USD - самая торгуемая и, от-того, лидирующая по показателю: [волатильность]/[спред], пара.

Итак, с паттерном и инструментом определились, таймфрейм возьмём базовый - D1 (TimeFrame-1440), но для первого теста нам нужно определиться ещё с двумя основными условиями, без которых тестировать не имеет смысла, это: стоплосс и тейкпрофит. Предлагаем для «чистоты эксперимента» выставить одинаковые TP и SL, чтобы легче было оценить: насколько, действительно, выбранный паттерн склоняет чашу весов вероятности в нашу пользу.

Можно выбрать одинаковые TP и SL, величиной, в определённое количество пунктов, но мы предпочтём TP и SL, величиной, в определённый процент от среднедневного диапазона (ATR), что позволит нам уровнять ситуации для паттернов, встретившихся на истории в разные годы (например, волатильность инструмента в 2015 и 2005 годах может быть совершенно разная, и в случае если мы выбираем SL, величиной, в определённое количество пунктов, то это, по сути, будут совершенно разные SL, в 2015 и 2005).

Чтобы выбрать режимы SL и TP в процент от ATR, установим Mode=1 в разделе «STOP-LOSS SETTINGS» и TP_Mode=1 в разделе «TAKE- PROFIT SETTINGS». Установим необходимые значения вычисляемых процентов от среднедневных диапазонов (ATR) для SL и TP, в переменных ATR_percent и TP_ATR_percent, в соответствующих разделах. В нашем случае пусть это будет значение 150(%), как для SL так и для TP. Не забываем отключить режим «Bailout» (он нам сейчас не нужен), выставив «false» в соответствующей настройке.

После того, как мы убедились в том, что не стоит никаких дополнительных условий, проведём первый тестовый прогон. В настройках тестера выберем «период» - M5 и режим «по открытиям баров». Мы применяем советник для таймфрема D1(TimeFrame-1440), и выбранная натройка «период» - M5 этого не изменит, а только лишь даст задание тестеру составлять, необходимые нам дневные свечи, из имеющихся «пятиминуток».

Такой ход позволит нам, без ощутимой потери точности, в десятки раз увеличить скорость тестирования, нежели, чем если бы мы выбрали «период» - D1 и режим «Все тики». Для первоначальных тестов или оптимизации параметров - это то, что нужно. Выбираем тестовый период истории. У нас «дневки», поэтому берём, уж, как минимум 5-7 лет. 

Допустим 2008-2016. Запускаем тест!

281 сделка, 49% убыточных, итоговый результат -237.97$. Временная просадка доходила до -600$. Грусная картина? Не совсем. Хоть результат и отрицательный, имеется, почти, положительная динамика на последних 2/3 интервала. Посмотрим, что даст увеличение количества сделок, путём установки Accuracy в менее строгий режим. 281 сделка за 8 лет на дневных графиках это - совсем не мало, 3 сделки в месяц для D1 это нормально, но всё же, попробуем. Accuracy по умолчанию стояло = 50. Выставим = 20. 

Уже лучше, сделок больше - 460, процент прибыльных 50.87%, но всё же, это далеко от того, что мы ищем. У трейдера, не имеющего опыт системостроительства, может возникнуть комментарий такого рода: «видимо советник неправильно определяет паттерн рельсы, ведь общеизвестно, что паттерн рельсы - рабочий!». Он ещё не знает, что«рабочий», в блоге на около-трейдерскую тематику и, рабочий в реальности это, несколько, разные вещи.

Отчасти, такой трейдер будет прав, ведь, редко когда паттерн рекомендуют применять вот так «в лоб», а советуют соотноситься с другими рыночными реалиями, например: тренд, контр-тренд и т.д. Поэтому, бросать исследование работоспосоности паттерна рельсы на EUR/USD D1 - рано, и можно продолжить добавлять и комбинировать условия.

Но мы оставим EUR/USD, чтобы показать, насколько бывает различен результат от использования одного и того же паттерна на разных торговых инструментах. (что, опять же, противоречит общепринятым представлениям об «универсальности» паттернов).

Пробуем, USD/JPY. Оставляем последние настройки. 


Гораздо лучше! Такой результат уже провоцирует на углублёный анализ, ведь очевидно же, что входя по сигналу рельсы на USD/JPY D1 - мы имеем некое статистическое преимущество. Попробуем его увеличить. Вместо того, чтобы перебирать размеры TP и SL, попробуем вместо TP, применить технику «Bailout», разработанную математиком Ральфом Винсом. 

Включаем, соответствующую настройку = true. TP отключаем: TP_mode=0. SL - оставляем прежний. 

Чтож, результат - налицо! Итог в деньгах (с поправкой на величину просадки) не кардинально лучше, но мы получили более ровный рост, это очень хорошо.

Давайте попробуем «поиграть» со значение Accuracy, выставим оптимизацию [ от 1 до 100 с шагом 2 ] и посмотрим, как, требования, предьявляемые к паттерну, влияют на результат.

Выясняется, что наилучшие результаты получаются, если предъявлять к паттерну самые минимальные требования - необычно, но такое встречается достаточно часто. В данномслучае, Accuracy = 1 даёт следующий результат:

Сделок стало больше, прибыль - больше, просадка - меньше. При этом, заметьте, что мы, пока не добавили, ни одного дополнительного условия и не подбирали оптимальные выходы, а паттерн уже показыает результат. Это внушает осторожный оптимизм. Но прежде, чем продолжить улучшать показатели системы, сделаем одну важную вещь. Проведем тест Out-of-sample. Прогоним советник на той части истории, которую мы не использовали, в процессе оптимизации параметров (всегда осталяйте такую). 

Оставим текущие настройки и проведём тест 2001-2016.

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

Попробуем торговать паттерн только по тренду, определяемому, с помощью, скользящей средней (MA). В разделе «FILTER SETTINGS» выставляем MA_filter_type = 1, MA_period возьмём, к примеру, 10. Если «бычий» паттерн будет образовываться выше 10-ти дневной MA - покупаем, если ниже - пропускаем сделку. Для коротких позиций - наоборот.


Интересный результат! Визуально график стал красивее, но результат по параметру: [прибыль]/[максимальная просадка], улучшился не на много, 5.7 против 5.63, что выбрать, вопрос дискуссионный. Может, остановимся на варианте с большим количеством сделок, для того, чтобы нагляднее посмотреть на работу другого фильтра, а именно -ограничение на торговлю в определённые дни недели?

Или... рано, пока, переходить к этому фильтру, ведь мы же не подобрали, ещё, оптимальный стоп-лосс, установив его, изначально, на, взятую «с потолка», величину в 150% от ATR. Может, есть лучший вариант? 200%, 250%? А, может, имеет смысл активировать трейлинг- стоп? Вообще, часто ли прибыльная сделка уходит в минус? Как на счёт попробовать выставлять SL в «безубыток», по достижении определённого профита?

С профитом, этим, тоже, кстати, пока ещё ничего не решено. Не рано ли мы выходим из позиции? Что, если дать цене больше времени - реализовать потенциал движения? А может зря мы не ставим фиксированный TP? Вот когда определимся с главным, тогда и можно будет по-экспериментировать с фильрами дней недели и пр. Кстати, вот идея: а что если пробои сигнального уровня для входа в сделку в паттерне, происходящие во время вялых азиатской и тихоокеанской сессий, чаще оказываются ложными? В конце-концов, может стоит не покупать, при пробое сигнального уровня в «бычьем» паттерне «рельсы», а продавать? Кто сказал, что он «бычий» вообще? Проверим? C советником Pattern Explorer © эта задача становится проще. Успешных Вам поисков! 

Список встроенных паттернов.

Поделитесь с друзьями: