Настало время оптимизации алгоритма «Парного трейдинга». Прошлые наблюдения давали много ложных сигналов. Сократить их помогут скользящие средние. Мы построим z-оценку по спреду цен пары, сглаженному скользящими средними. Бэктестинг будем проводить в Quantopian, а весь код напишем на Python.
Рассмотрим разницу сигналов по z-оценке:
Стратегию парного трейдинга, от основ до автоматической торговли, мы рассматриваем в нескольких статьях. Ниже ссылки на ключевые этапы:
Проведем тестирование старых знакомых за 2015 год:
Исходная кривая z-оценки имеет резкие взлеты и падения. Уменьшив количество сигналов, мы можем получить лучшие результаты доходности. Необходимо учесть, что скользящие средние будут давать сигналы с опозданием. Это также может повлиять на доходность.
Для сигналов используем пересечение простых скользящих средних за 5 и 50 дней.
Есть множество подходов для построения сигнальных линий. Я упоминаю в своих статьях четыре:
Подробнее проблема выбора сигналов рассмотрена здесь. Сравнение количества пересечений разных сигналов:
Сигнал | 1 | -1 | 0 |
---|---|---|---|
Спред цен | 27 | 22 | 33 |
Спред цен SMA(5/50) | 9 | 10 | 12 |
Спред доходности | 24 | 30 | 47 |
Спред доходности SMA(5/50) | 9 | 6 | 23 |
В этот раз тестировать будем только по двум сигналам:
Результаты при торговле каждый час за 2015 год. Используем сигналы пересечения скользящих средних за 5 и 50 дней на часовой истории цен.
При торговле каждый час лучшую результативность показывает сигнал на часовой истории цен. На этой паре использование средних не позволяет улучшить доходность.
Результаты тестирования на часовом таймфрейме:
Условия | Доход | Просадка | Alpha | Beta | Sharpe | Volatility |
---|---|---|---|---|---|---|
Спред доходности. Дневная история. | +70% | -3% | 0.54 | 0.06 | 3.68 | 0.15 |
Спред доходности. Часовая история. | +82% | -5% | 0.61 | 0.17 | 4.08 | 0.15 |
Спред доходности SMA(5/50). Дневная история. | +42% | -5% | 0.36 | 0.05 | 2.01 | 0.18 |
Спред доходности SMA(5/50). Часовая история. | +35% | -7% | 0.32 | 0.11 | 1.87 | 0.17 |
При торговле каждый час лучшую результативность также показывает сигнал на часовой истории цен. Средние снова лишь ухудшили показатели.
Результаты тестирования на часовом таймфрейме:
Условия | Доход | Просадка | Alpha | Beta | Sharpe | Volatility |
---|---|---|---|---|---|---|
Спред доходности. Дневная история. | +16% | -3% | 0.15 | -0.01 | 2.00 | 0.07 |
Спред доходности. Часовая история. | +24% | -6% | 0.22 | 0.03 | 2.20 | 0.10 |
Спред доходности SMA(5/50). Дневная история. | +2% | -4% | 0.03 | 0.03 | 0.31 | 0.08 |
Спред доходности SMA(5/50). Часовая история. | +17% | -6% | 0.16 | 0.04 | 1.67 | 0.10 |
Код доступен на Quantrum.me.
Тесты рассмотренных пар показали, что скользящие средние лишь усугубили результативность пар. Сигналов было меньше и они приходили позже. Однако необходимо учесть, что доходность всегда оставалась положительной и средние не привели к убыткам.
В следующий раз мы запустим данную стратегии для участия в конкурсе Quantopian. Из-за ограничений Quantopian данная статья откладывается до описания запуска своего торгового скрипта через шлюз Interactive Brokers.
В комментариях пишите ваши замечания и наблюдения. Как еще можно получать сигналы или улучшить стратегию?
Обучение «Парному трейдингу» у профессионалов.Александр Румянцев aka «iamraa»
Автор Quantrum.me
Интересуетесь алготрейдингом на Python? Присоединяйтесь к команде. Пишите в личку или на email.
во как… тут оказывается кто то еще и делом занимается. :))
От средних ушел давно, чего и вам желаю. Относительно спреда доходностей… вот что мне понравилось: papers.ssrn.com/sol3/papers.cfm?abstract_id=1796064