Торговля один раз в день, это хорошо для комиссий. Но не пропускаем ли мы колебания цен, на которых можно заработать? Для проверки уменьшим таймфреймы и увеличим частоту проверки сигналов.
Проверять будем на 15, 30 и 60 минутных периодах. Торговать будем ранее найденными парами. Все проверяем на Quantopian, а код пишем на Python.
Как искать пары для стратегии «Парного трейдинга» подробно описано здесь, здесь и здесь. Бэктестинг на дневках доступен здесь.
У многих активов цена волатильна внутри дня. Учитывая, что мы при поиске пар использовали фильтр по ATR, то цены найденных активов могут существенно гулять внутри дня.
Учтя это предположение, уменьшение таймфрейма позволит нам лучше контролировать поведение пары и больше заработать на движениях внутри дня.
Тестировать будем пары, найденные в 2015 году.
Протестируем на следующих периодах: 1 день, 60 минут, 30 минут, 15 минут. Сигналы будем искать на сигнальной кривой, полученной на дневных графиках.
Всплеск на 15 минутном периоде ложный. По логам не хватало акций для покупки/продажи CIT против STT. В данном случае наиболее удачным считаю торговлю по часовому таймфрейму.
Проводя тесты, обратил внимание, что сигналы можно брать со спреда меньшего таймфрейма. Ниже пара графиков наблюдений:
Как видно, часовой период показывает хорошие результаты, но при снижении до 30 минут пара начинает приносить проблемы. Предположу, что это связано с потерей стационарности на меньшем периоде.
Теперь рассмотрим пару, которая на дневке проявила себя очень плохо. Посмотрим, что можно выжать из нее на меньшем периоде.
На этой паре понижение до 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.
пара STT-CiT с 2010г т.к. CIT в 2009 г был банкротом… профит 360% за 7 лет… средняя 0.65%… эквити хорошая плавная
пара TLT-VNQ с 2007г 370% профита средняя 0.36%… эквити хорошая плавная без просадок...
но надо понимать что это пиковые параметры в реальности будет раза в 2 похуже… и вторую пару торговать уже не получится...
а первую пару нельзя сделать стресс тест на кризисе 2008г...
вообщем ищи еще пары… если интересно кидай в личку я их протестю
а блин ошипся… т.к трейдинг парный, то профит надо делить напополам… т.е в реальности выхлоп 10-12% в год на плечо… впринципе неплохо… но ина российском рынке тот же сбер на обычных скользящих средних 100% в год дает
идея в том что надо понять как создается пара… а перебор выдаст много случайного… т.е нужно средство измерения...
счас думаю надо сделать точку отсчета… индекс сипи… и ранжировать все бумаги по корреляции с индексом… затем надо брать 2 бумаги… одна отстает от индекса, а другая опережает индекс… и образуется пара из этих бумаг...
кидай список пар
кроме того американский рынок монотонно растет уже 9 лет… и все растущие бумаги будут коррелировать между собой… поэтому надо брать бумаги имеющие лонг и хоть какую нибудь статистику по шортам...
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/