Стохастик с фильтром на Qpile

  • Автор темы orekton
  • Дата начала

orekton

New member
Несколько простых стратегий, основанных на сочетании стохастического индикатора с трендовым фильтром, реализованные в Metatrader и Quik


В серии заметок я рассмотрю несколько несложных торговых идей, их формализацию и программирование на торговой платформе Quik при помощи встроенного языка Qpile. Использование Quik для разработки торговых роботов - одна из наиболее доступных возможностей попробовать себя в алготорговле. Основное преимущество в том, что алгоритмы, написанные на встроенном языке программы Qpile, можно запускать в бой через саму торговую систему Quik, доступную большинству трейдеров.

Прежде чем реализовывать стратегию необходимо ее оттестировать и, если это необходимо, модернизировать. Quik не обладает возможностями бэктестинга, поэтому тестирование будет производится при помощи Метатрейдера. На текущий момент Метатрейдер подключен к серверу поставляющему котировки валютных пар и суррогатов акций ММВБ, так называемых форвардных контрактов на акции. С одной стороны можно рассматривать это как недостаток, однако это скорее преимущество, так как таким образом можно проверить работоспособность системы сравнив данные с «эталонными». Котировки форвардных контрактов не сильно отличаются от акций ММВБ, но, к сожалению, с сервера можно загрузить очень короткий отрезок истории - порядка нескольких недель для 15-минутных фреймов. К счастью, в Метатрейдере есть возможность загрузить историю котировок не с сервера, а из внешнего файла. А достать эти котировки не проблема, многие брокеры предоставляют на своих сайтах архив котировок различных финансовых инструментов, в том числе акций ММВБ.

В этой статье речь пойдет о программной реализации идеи «Стохастический индикатор + трендовый фильтр на скользящих средних». В следующих статьях рассмотрим использование других трендовых фильтров, например, ADX, а так же другие сигналы, в частности, торговлю по уровням.

Формализация

Формализуем идею. Сигнал на вход – пересечение быстрого и медленного стохастика. Если индикатор пресекает сигнальную линию снизу вверх, то это сигнал на покупку, если сверху вниз – на продажу. В качестве фильтра используем две скользящих средних (СС). Если разница между значениями быстрой и медленной СС больше порогового, то сигналы на вход реализовываем, если нет, то это флэт - не торгуем. Условие отработки сигналов на покупку – быстрая скользящая больше медленной, на продажу наоборот. Выходим по стоп-лоссу или тэйк-профиту. Урони стоп-лосса и тэйк-профита, пороговое значение оптимизируем. Для стохастика используем стандартные параметры, для скользящих средних параметры оптимизируем.

Реализация описанного алгоритма в Метатредере.

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

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

Посмотреть вложение 735

Рис.1. Сигналы стратегии и сигнальные индикаторы



На рис. 1 видно, что сигналы отрабатываются правильно: согласно фильтру и только тогда, когда нет открытой позиции.

Такую проверку желательно выполнять каждый раз после реализации алгоритма, она позволяет выявить допущенные ошибки.

Оптимизация

Для прогонки стратегии выбираем акцию «Газпрома», тайм-фрейм 15 минут. Начальный депозит 300$, размер позиции 100 акций (не путать с лотами!). Использовал следующие оптимизационные рамки:

Параметр Назначение Диапазон Шаг
MaLongPer Период медленной скользящей средней 50-300 1
MaShortPer Период быстрой скользящей средней 5-40 1
TakeProfit Уровень тэйк-профита, пунктов 1000-3000 50
MAGap Зазор между скользящими 10-1000 10
StopLoss Уровень стоп-лосса, пунктов 300-1000 10


После тестирования алгоритма на промежутке в 6 месяцев оказалось, что у наилучшей стратегии всего три сделки. С точки зрения оценки работоспособности торговой системы это плохой показатель: при таком количестве сделок мы не получаем статистически значимого результата. Поэтому я провел прогонку на годовых промежутках. Получил 11 сделок за 2009 год, 24 за 2010 и 60 за 2011-й, что для оценки торговой стратегии является более или менее приемлемым результатом. Основным параметром оценки системы является Profit factor – отношение суммы прибыльных сделок к сумме убыточных. Как видно из таблицы на рис. 2, при близких входных параметрах Profit factor не изменяется, что является хорошим показателем работоспособности системы.

Посмотреть вложение 736

Рис.2. Оптимизационные параметры торговой системы, 2010 год

Важным показателем торговой системы являются DrawDown (просадки), см. рис. 3.
Посмотреть вложение 737

Рис 3. График баланса оптимизированной стратегии за 2011 год

Из графика на рис. 3 видно, что просадки достаточно велики, следовательно значение StopLoss в размере от 2% до 5% (от 300 до 1000 пунктов, 1 пункт равен 0.01 руб.) для тайм-фрейма 15 мин. можно считать избыточным, поэтому изменим оптимизационные рамки стоп-лосса. Оптимизационные рамки остальных параметров тэйк-профита, CC и зазор оставим прежними. Размер интервала для подбора стопов определим эмпирически, то есть методом подбора, испытав несколько вариантов и выбрав наилучший. Иными словами, профит и параметры мувингов у нас оптимизируются вместе со стоп-лоссами. Итак, вот что у нас получается при тестировании на данных 2011 года:

Интервал оптимизации, пунктов Прибыль, $ для нач. депозита в 300$ Профит фактор Стоп лосс, пунктов
100-300, шаг 10 380,4 1,65 300
50-100, шаг 5 509,69 1,93 95
10-50, шаг 1 214,74 1,32 50



Как видно из таблицы, наилучший результат дала оптимизация на интервале от 50 до 100 пунктов, в пересчете на проценты это примерно от 0,25% до 0,5% к ценам 2011 года. Иными словами, истина оказалась посередине: слишком большие стоп-лоссы – плохо (большие убытки при срабатывании), слишком маленькие – тоже плохо, часто срабатывают.

Теперь давайте посмотрим график доходности с наилучшим стопом (95 пунктов): рис. 4


Посмотреть вложение 738
Рис 4. График баланса с наилучшим значением стоп-лосс

Сравните с графиком на рис. 4. Явно видно, что просадки уменьшились. Кроме того, увеличилось и число сделок, порядка 180 сделок в год. Это примерно сделка раз в два дня, что для дейтрейдинга является вполне допустимым значением.

Статья приведена в сокращенном варианте. Оригинал здесь: http://robostroy.ru/community/Article.aspx?id=235
 

Вложения

  • 29.9 KB Просмотры: 222
  • 24.9 KB Просмотры: 222
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху