Блог им. Quantrum

Бэктестинг: парный трейдинг на 15, 30, 60 минутах

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

Проверять будем на 15, 30 и 60 минутных периодах. Торговать будем ранее найденными парами. Все проверяем на Quantopian, а код пишем на Python.

Как искать пары для стратегии «Парного трейдинга» подробно описано здесьздесь и здесь. Бэктестинг на дневках доступен здесь.

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

У многих активов цена волатильна внутри дня. Учитывая, что мы при поиске пар использовали фильтр по ATR, то цены найденных активов могут существенно гулять внутри дня.

Учтя это предположение, уменьшение таймфрейма позволит нам лучше контролировать поведение пары и больше заработать на движениях внутри дня.

Условия тестов

Тестировать будем пары, найденные в 2015 году.

  • Пары:
    • STT, CIT
    • TLT, VNQ
  • Капитал — $100 тыс.
  • Период тестирования — 2015 год.
  • Таймфреймы — 15, 30, 60 минут.
  • Пара должна быть стационарна за предыдущие полгода на момент сигнала.
  • Сигнал — спред относительных значений (доходность). Открываемся на ±1, закрываемся в диапазоне ±0.05.

CIT и STT

Протестируем на следующих периодах: 1 день, 60 минут, 30 минут, 15 минут. Сигналы будем искать на сигнальной кривой, полученной на дневных графиках.

Бэктестинг: парный трейдинг на 15, 30, 60 минутах
CIT vs STT, день
 Бэктестинг: парный трейдинг на 15, 30, 60 минутах
CIT vs STT, 1 час
 Бэктестинг: парный трейдинг на 15, 30, 60 минутах
CIT vs STT, 30 мин.
 Бэктестинг: парный трейдинг на 15, 30, 60 минутах
CIT vs STT, 15 мин.

Всплеск на 15 минутном периоде ложный. По логам не хватало акций для покупки/продажи CIT против STT. В данном случае наиболее удачным считаю торговлю по часовому таймфрейму.

Проводя тесты, обратил внимание, что сигналы можно брать со спреда меньшего таймфрейма. Ниже пара графиков наблюдений:

Бэктестинг: парный трейдинг на 15, 30, 60 минутах
Сигналы 1 час
 Бэктестинг: парный трейдинг на 15, 30, 60 минутах
Сигналы 30 мин.

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

TLT и VNQ

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

Бэктестинг: парный трейдинг на 15, 30, 60 минутах
TLT vs VNQ, день
 Бэктестинг: парный трейдинг на 15, 30, 60 минутах
TLT vs VNQ, 1 час
 Бэктестинг: парный трейдинг на 15, 30, 60 минутах
TLT vs VNQ, 30 мин.
 Бэктестинг: парный трейдинг на 15, 30, 60 минутах
TLT vs VNQ, 15 мин.

На этой паре понижение до 1 часа сказывается положительно, а вот ниже особого смысла не имеет.

Код в студию

Как уменьшить таймфрейм на Quantopian? Как известно, нам доступны только дневные и минутные тики, историю которых можно получить следующим кодом: Код доступен на Quantrum.me.

Другие таймфреймы в платформе отсутствуют. Однако нам на помощь приходит библиотека Pandas, которая лежит в основе Quantopian. Получить историю за нужный таймфрейм можно следующим кодом: Код доступен на Quantrum.me.

Как вызывать алгоритм в разные периоды? Quantopian по умолчанию дает два варианта вызова алгоритма: Код доступен на Quantrum.me.

Исходя из этого, можно продублировать на каждый час торговли функцию schedule_function(...). Но делать это для каждых 15 минут или 5 минут, уже перебор. Самым простым методом является проверка текущего времени в ежеминутной функции: Код доступен на Quantrum.me.

Исходный код алгоритма Quantopian доступен ... Код доступен на Quantrum.me.

Вывод

Уменьшение таймфрейма положительно влияет на результаты рассмотренных пар. Возможно, поиск пар на меньшем таймфрейме тоже принес бы более интересные результаты, но мы имеем, что имеем. Также снижение ниже часа заставляет нас проверять доступный объем для торгов, так как нам может не хватить ликвидности или мы сильно повлияем на цену при открытии позиции.

Дополнительно, можно строить сигнал на пониженном таймфрейме. Это может привести даже к положительным результатам. Однако проверка на 1-2 парах еще ничего не значит.

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

В комментариях пишите, какие мысли или вопросы у вас возникают. Может стоит проверить какой-то другой таймфрейм? Также запрашивайте полный исходный код алгоритма.

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


Обучение «Парному трейдингу» у профессионалов.
★5
7 комментариев
ебан*ться можно
avatar
тема гуд… мне стало интересно и я протестил на своих парных ботах...
пара STT-CiT с 2010г т.к. CIT в 2009 г был банкротом… профит 360% за 7 лет… средняя 0.65%… эквити хорошая плавная 
пара TLT-VNQ с 2007г 370% профита средняя 0.36%… эквити хорошая плавная без просадок... 
но надо понимать что это пиковые параметры в реальности будет раза в 2 похуже… и вторую пару торговать уже не получится...
а первую пару нельзя сделать стресс тест на кризисе 2008г...

вообщем ищи еще пары… если интересно кидай в личку я их протестю

а блин ошипся… т.к трейдинг парный, то профит надо делить напополам… т.е в реальности выхлоп 10-12% в год на плечо… впринципе неплохо… но ина российском рынке тот же сбер на обычных скользящих средних 100% в год дает
avatar
ves2010, а на чем боты написаны? У меня скрипт ищет пары на python. Я могу на дату выгрузить тебе список лучших пар, а ты запустить проверку. Вместе можем наладить автоматический поиск хороших пар. 
Александр Румянцев, тслаб кубики... 
идея в том что надо понять как создается пара… а перебор выдаст много случайного… т.е нужно средство измерения... 
счас думаю надо сделать точку отсчета… индекс сипи… и ранжировать все бумаги по корреляции с индексом… затем надо брать 2 бумаги… одна отстает от индекса, а другая опережает индекс… и образуется пара из этих бумаг...
кидай список пар

кроме того американский рынок монотонно растет уже 9 лет… и все растущие бумаги будут коррелировать между собой…  поэтому надо брать бумаги имеющие лонг и хоть какую нибудь статистику по шортам... 
avatar

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

quantrum.me/948-parnyj-trejding-3-iz-3-sposobov-poiska-par-ema/

quantrum.me/1009-backtesting-uluchshaem-poisk-dlya-parnogo-trejdinga/

quantrum.me/1391-parnyj-trejding-filtruem-pary-po-smeshannoj-korrelyacii/

Александр Румянцев, да я прочел… скинь штук 10 пар в личку… главное чтоб у бумаг не было сплитов и торговались от 2007г… тогда будет возможноть посмотреть что было в кризис 2008г
avatar
Хорошо. Подготовлю, отправлю.


теги блога Александр Румянцев

....все тэги



UPDONW
Новый дизайн