Бэктестинг: Парный трейдинг по z-оценке

В этой статье мы проведем тестирование⏱ стратегии «Парного трейдинга»🎏 на платформе Quantopian. В тестах будут использованы пары, найденные с помощью автоматических🤖 алгоритмов, описанных в предыдущих статьях. Код будет написан на Python🐍.

Ранее на эту тему:

🎓Предположение

В основе стратегии лежит предположение о наличии на рынке двух акций, которые имеют внутреннюю связь. Цены акций двигаются в одном направлении с разной скоростью и всегда возвращаются к своему среднему.

Наша задача найти эту пару и определить сигнальные уровни отклонения. Если акция А убегает, тогда мы покупаем Б и одновременно продаем А. Если акция А отстает, тогда мы продаем Б и одновременно покупаем А. Акции должны быть куплены/проданы на равные суммы.

Условия тестирования:

  • Ищем за 2014, 2015 и 2016 года.
  • Тестируем за 2015 и 2016 года.
  • Торгуем спустя 1 час после открытия рынка, один раз в день.

☝Выбор акций для поиска и тестирования

  • Американский рынок.
  • История за предыдущие 360/730 календарных дней.
  • Цена более $10.
  • Средний объем более 500 тыс. акций в день на февраль 2017.
  • ATR за 13 дней более $0.40.

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

👎2016, DIA и SLB (знаем будущее)

  • Ищем пары внутри 2016 года.
  • DIA — ETF на промышленный индекс Доу Джонса.
  • SLB — крупный нефтедобытчик.

Графики лежат не идеально, но z-оценка дает достаточное количество сигналов. Тест показывает, что в 2016 году пара действительно шла нога в ногу и позволила опередить рынок с доходностью 25% и небольшой просадкой в -4%. Но в данном случае мы знаем будущее, то есть на начало теста мы уже знаем, что пара стационарна и остается таковой весь год. Как пара поведет себя в будущем нам не проверить. Значит вернемся в 2015.

👎2015, CIT и STT

  • CIT — банк.
  • STT — финансовая компания.

Движение цен на графике визуально сходится, спред стационарен и дает хорошее количество сигналов. За 2015 год пара показала прекрасные результаты с доходностью в 82% и просадкой в -6%, что является отличным результатом. Но это со знанием будущего.

2016, z-оценка

Справа результаты за 2016 год, когда мы учитываем только прошлые заслуги. Здесь все значительно хуже. Подобная картина на многих парах, которые я проверил. Видимо, одного года недостаточно, чтобы найти стабильную пару.

Попробуем провести поиск за два года (2014-2015) и протестировать пару оттуда.

👌2014-15, H и MMP

  • H — гостиничный холдинг Hyatt.
  • MMP — нефтегазовая транспортая компания.

На удивление, графики компаний похожи. В проблемном 2015 году пара проявила себя великолепно, показав доходность в 100%. Но это опять с учетом заглядывания в будущее. Результаты за 2016 год значительно скромнее, но они остались позитивными. Добавление фильтра стационарности за предыдущие 200 дней «выключает» пару вовсе.

Подобные результаты указывают на то, что при поиске пар надо учитывать дополнительные условия:

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

Код в студию

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

🏁Заключение

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

💬Напишите в комментариях, как можно улучшить поиск пар и как проверять их корректность во время теста. При каких условиях заканчивать торговать парой?

Александр Румянцев aka "iamraa"
Автор Quantrum.me
Интересуетесь алготрейдингом на Python? Присоединяйтесь к команде. Пишите в личку или на email.
🎓Обучение «Парному трейдингу» у профессионалов👍.