Сергей Фролов
Сергей Фролов личный блог
08 декабря 2017, 12:22

Алгоритмы баскет трейдинга

Алгоритмы баскет трейдинга

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

Начал, конечно с небольшого рисерча, как вообще собирать корзины. Единственный годный материал по этой теме, который удалось найти, — это брошюра Давида Серебренникова. Прочитал статью несколько раз, представил идеальный спред и уже начал искать счетчик банкнот, но сперва, подумал я, надо потестить…

На первом же шаге меня ожидала неприятная новость: выбирать инструменты особо не из чего…
Алгоритмы баскет трейдинга

Так как я решил строить баскеты по секторам, альтернативы не было и пришлось выбирать Нефтегаз (на картинке видно, что это единственный более-менее живой сектор).

В первый баскет вошли Башнефть, Газпром и Новатэк; во второй – Лукойл, Татнефть и Роснефть.

Написал цикл для подбора весов и на январь этого года получились следующие формулы:

Баскет1 = 3*Башнефть + 7*Газпром + 6*Новатэк

Баскет2 = 4*Лукойл + 5*Роснефть + 2*Татнефть

Корзины на 4 января сложились идеальные, отличались всего на рубль и до июня спред еще хоть как-то колебался, но в начале лета он разошелся совсем и до сих пор корзины продолжают идти в разных направлениях.
Алгоритмы баскет трейдинга


Какие могут быть проблемы:
1. Я сразу подумал, что проблема в том, что я забыл о ребалансировке. Сделал ее как раз в момент наибольшего расхождения спреда, но и это не помогло, цены все равно расходятся. Вариант с ежедневной ребалансировкой кажется сомнительным, даже 100% нереальным:

Изменение контрактов в корзинах на ежедневной основе приведет к постоянному усреднению, если мы увеличиваем кол-во контрактов и потере курсовой разницы, если мы скидываем бумаги из корзины. Более того, в алгоритме сбора корзин я счел необходимым, чтобы разница между баскетами была не более 10 рублей. Поэтому при нашем лимите средств на робота, 30 т.р в данном случае, мы можем не найти оптимальных весов для инструментов, чтобы корзины удовлетворяли нашему условию. То есть в промежутке от 0 до 30 000 не найдется двух баскетов, разница цен которых меньше 10 рублей.

2. Таймфрейм. Я взял 30-минутки для тестов, возможно было бы релевантно ловить на меньших таймфреймах. Нет! Спред неуклонно расходится уже пол года, такой вариант помог бы (может быть) при частой ребалансировке, но из п.1 я вынес, что так делать не получится.

3. Я собрал кривые корзины. Возможно, но при 6 возможных переменных расхождение спреда появится при любой комбинации(об этом дальше).
Давайте взглянем на динамику корзин :
1 баскет
Алгоритмы баскет трейдинга
2 баскет
Алгоритмы баскет трейдинга
Во второй корзине явно видно, как отвалилась Татнефть. На первый взгляд раскорреляция произошла именно в начале лета. Пока делаю вывод, что именно Татнефть испортила малину, поэтому и сказал, что из множества комбинаций инструментов мы не найдем корзины, в которых не будет проблемы со спредом, — один инструмент все равно испортит баскеты.
Теперь про эффективность. Во время исследования задумался о том, стоит ли вообще отводить такие деньги на арбитражные алгоритмы при небольшом депо. Проблема в том, что на фъючах арбитраж торговать тоже очень трудно, выбор мал. А с акциями часть портфеля просто замораживается, под обеспечение ОФЗ торговать ими нельзя. Складывается ситуация, когда ты доверяешь деньги консервативным алгоритмам, которые судя по всему имеют проблему несхождения спреда в любом виде (классический и комбинации баскетов). Не спорю, кто-то находит алгоритмы и торгует, я перспектив, по крайней мере для маленького депо не вижу.

Выводы:
1.При нынешнем депозите тему арбитража пока что закрываю
2.Фундаментально не смотрел, но думаю, что спекулятивно Татнефть будет интересна, надо последить.

Если есть какие-то мысли где я ошибся, напишите, пожалуйста, в комментариях.
Ссылки:
Брошюра Давида Серебренникова:
y-dav.livejournal.com/7522.html
Смежная тема, если интересно. Как я визуализирую корреляции для поиска пар:
smart-lab.ru/blog/398262.php
Спасибо!


27 Комментариев
  • ves2010
    08 декабря 2017, 12:29
    в тслаб2.0 балансировать баскеты можно в реалтайме элементарно 
  • Беляев Михаил
    08 декабря 2017, 12:31
    лучше выбрать пару фишек-но лучших.
  • anatolyutkin
    08 декабря 2017, 12:41
    Имхо, к этой теме лучше относиться как к контртрендовой торговле синтетического инструмента. То есть делаете инструмент, скажем, LUK-25*GAZP (почему именно 25--чтоб примерно равные ноги были). Строите его и смотрите, можно ли его торговать контртрендово. Усреднялки какие-нибудь, перекупленность/перепроданность--вот это все. Это такой тест на коинтеграцию, на самом деле. Неплохой тест. Если контртрендово не торгуется, значит оно не предназначено для парной торговли и эту парочку бессмысленно ставить в противонаправленные корзины в любой пропорции. Ну и вот таким образом набираете кандидатов на заполнение корзинок. Дальше можно чего-нибудь покурвофиттить с весами, хотя имхо веса надо брать от балды, просто чтоб общая поза была примерно ноль. И собственно, корзинная торговля готова, торгуем эту радость контртрендово.

    Проблемы:
    1. Комиссы и слизь. Накапливаются пропорционально количеству инструментов в корзинах.
    2. Более серьезная трабла. Как и любая контртрендовая тема, винрейт у этого всего будет процентов 70-80, если не больше. Это очень неприятно, так как это означает недотестированность системы на предмет редких убыточных событий. Разрывов ценных частей организма, одним словом. Например, в свете последних событий на эту тему актуален пример торговли нефтегазовой пары ЮКОС vs Лукойл. 

    Учитывая эти траблы, я бы вообще не советовал баскет-трейдинг на ру рынке. Если только арбитраж чего-то, имеющего прямую корреляцию. Например, RI со сбер плюс газпром плюс лукойл--но там все давно поделено. 
  • SergeyJu
    08 декабря 2017, 12:48
    Вот что бы я не тестировал, работает только трендовуха. Баскет расходится — ну и прекрасно, надо торговать главных расходимцев в направлении расхождения.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн