Бэктестинг: улучшаем поиск для парного трейдинга
В статье мы рассмотрим🔍, как улучшить результаты автоматического🤖 поиска пар🎏 для стратегии "Парного трейдинга". А также выясним, как решить проблему, когда пара перестает работать и сразу начинает приносить убытки📉. Дополнительно, получим полноценный автоматический поиск, чтобы не приходилось отсматривать пары вручную.
Найденные пары проверим на дневной истории. А в следующий раз на часовой🔮.В прошлом бэктесте "Парного трейдинга по z-оценке" мы столкнулись с проблемой быстрой смерти🕯 пары. Напомню, пары отлично себя ведут в проверенном периоде, но умирают в следующие месяцы или даже дни и начинают приносить убытки.
Рекомендую весь цикл статей по теме "Парный трейдинг":
- Описание стратегии "Парный трейдинг".
- Автоматический поиск: 1, 2, 3.
- Бэктестинг по z-оценке.
🎓Предположение
Найденная пара должна сохранять стационарность на длинном промежутке (один-два года) и на коротких (квартал, полугодие). При стабильной коинтеграции пара должна прожить дольше и давать положительные результаты в течение последующих 3-6 месяцев.
Дополнительно учтем, что пару нужно вовремя отключить, чтобы она не нанесла ущерб. Для этого будем каждый день проверять стационарность за предыдущие полгода.
☝Условия выбора
Пары будем выбирать, учитывая следующие условия:
- Американский рынок.
- История за предыдущие 360/730 календарных дней (2014 и 2015 годы).
- Цена более $10.
- Средний объем более 500 тыс. акций в день на февраль 2017.
- ATR за 13 дней более $0.40.
- Проверка стационарности полугодий.
🛠Улучшим поиск
За основу берем алгоритм поиска по положению средних. Добавим проверку стационарности коротких периодов внутри основного диапазона и будем по ней фильтровать.
🤖Результаты поиска
2014 год (1 год)
Проверяем стационарность пары за весь год и за каждое полугодие. Выбираем пары, где стационарность сохраняется в каждом периоде. Всего найдено 90 пар. Пять пар оставались стационарными в последующие полгода.
- PNW, GPC (участвует в проверке)
- SBH, TJX
- ROK, MOS
- ...
2015 год (1 год)
Проверяем стационарность пары за весь год и за каждое полугодие. Выбираем пары, где стационарность сохраняется в каждом периоде. Всего найдено 70 пар.
- DRE, O (участвует в проверке)
- IMAX, LYB
- STT, CIT (проверялась в предыдущей статье)
- ...
2014-15 годы (2 года)
Проверяем стационарность пары за весь год и за каждое полугодие. Выбираем пары, где стационарность сохраняется за весь период (два года) и последние два полугодия, так как пар стационарных во все периоды нет. Всего найдено 10 пар.
- ETFC, BSX (результатов при тесте не дает)
- DRE, O
- HON, VUG (участвует в проверке)
- ...
Проверяем 2014 и 2015 годы
- PNW - коммунальная компания, поставка электроэнергии.
- GPC - распространение автозапчастей.
На тестах видно, что при заглядывании в будущее результаты хороши, а вот дальше сигналы пропадают, так как нет полугодовой стационарности. В принципе, нас это устраивает, так как мы можем перейти на использование другой пары, у которой сохранится стационарность. Эта пара найдена автоматически без последующего визуального анализа графика и отключилась сама, что позволяет автоматизировать процесс в будущем.
Показаны графики по разным сигнальным линиям, о чем я напишу в будущем.
- DRE - траст недвижимости (REIT).
- O - траст недвижимости (REIT).
Аналогично первой паре, работает хорошо, но быстро выключается во второй половине 2015 года.
Проверяем 2014-15 года (за 2 года)
- HON - крупный производственник промышленных товаров.
- VUG - ETF на акции роста.
По результатам теста пара среагировала только в конце 2015 года. Пара быстро выключилась и к убыткам не привела. Однако показала нам, что поиск за продолжительный период времени (2 года) не дает преимуществ.
🎁Код в студию
Код доступен на Quantrum.me
🏁Вывод
Предположение, что пары найденные при анализе 2-х лет будут стабильнее, провалились.
Пары, которые фильтровались по стационарности внутри полугодий оказались хороши. Это позволяет использовать их в полностью автоматическом режиме.
Пары удается автоматически отключать до наступления убытков при фильтре полугодичной стационарности. Это дополнительный плюс в автоматизацию.В следующий раз проведем бэктестинг на меньшем таймфрейме для проверки найденных пар внутри дня.
💬В комментариях напишите, что можно улучшить или что нужно учесть. Готовы ли вы поставить деньги на этот алгоритм?
Александр Румянцев aka "iamraa"
Автор Quantrum.me
Интересуетесь алготрейдингом на Python? Присоединяйтесь к команде. Пишите в личку или на email.
🎓Обучение «Парному трейдингу» у профессионалов.👍