Albus (Игорь Китаев)
Albus (Игорь Китаев) личный блог
10 марта 2017, 16:35

Робот ContanGO!

Между фьючерсом и базовым активом всегда есть разница. Если фьючерс дороже базового актива — это контанго, если фьючерс дешевле базового актива — это бэквордация. На основе этих расхождений можно строить безрисковые арбитражные стратегии (продать дорогой фьючерс, купить дешёвую акцию).  Чем ближе экспирация, тем меньше разница между фьючерсом и базовым активом. День за днём контанго уменьшается. Не расхваливаю подобные стратегии, просто напоминаю, что они есть.
Я написал простенького робота, который считает контанго и бэквордацию между фьючерсом и акцией.
Робот ContanGO!
Значения полей:
Share — акция, базовый актив
Fut — фьючерс на эту акцию
Expire_Days - сколько дней до экспирации
spread Future-Share — размер контанго или бэквордации, то есть разница между ценой фьючерса и базового актива
Depozit v banke — какую доходность даст депозит под 7% при сроке, равном Expire_Days (до экспирации).

Поле выделяется оранжевым цветом, если спред выгоднее банковского депозита.
Условия приближены к реальным: по фьючерсу берётся бид, по акции аск. Робот работает только когда идёт основная сессия (до 18-40), потому что ему нужны биды и аски. На вечорке и на выходных будет глючить.
Сейчас самый дорогой фьючерс по сравнению с базовой акцией — ФСК ЕЭС (FEES). Между ними разница свыше 3%. Разница между фьючерсом на Газпром и акцией Газпрома тоже велика. (это июньские фьючи 2017). Внутри дня спреды могут резко расширяться до гораздо больших размеров, а потом возвращаться на обычные уровни.
Фьючерсы всегда дороже акций. Если вы видите наоборот — бэквордация — значит скорее всего до срока экспирации будет срез по дивидендам. Фьючерс уже упал с учётом будущего дивидендного гэпа.
Ещё одно объяснение бэквордации. На дальних фьючерсах может быть очень широкий спред, биды стоят низко, вот и получается что фьючерс дешевле акции.

Робот лежит здесь. Вот ссылка:
yadi.sk/d/1K7lQEaA3FT7fy

А это платформа LuaForWindows. Она нужна, чтобы на вашем компе работали роботы на Луа. Там библиотеки функций.
github.com/rjpcomputing/luaforwindows/releases/download/v5.1.5-51/LuaForWindows_v5.1.5-51.exe

1. Установите LuaForWindows
2. Перезагрузите комп.
3. Положите в отдельную папку файлы ContanGO и QL
4. Запускайте в КВИКе робота ContanGO.lua через Сервисы — Lua скрипты — добавить.
Раз в квартал надо будет руками перебивать названия фьючерсов внутри файла ContanGO.
В нём же, в строчке №12 можно менять ставку депозита с 7% (0.07) до нужного вам значения.
Примечание:
файл ContanGO.lua — это сам робот
файл QL.lua — это библиотека функций

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

П.С. В комментах идёт дискуссия насчёт того, что брокерская комиссия съедает много дохода. Решение простое. Ведите с брокером постоянный диалог о понижении комиссии. Ищите брокеров с низкой комиссией. Например у Солида официальные комиссы микроскопические, и уже включают биржевую комиссию. Но там есть фиксированная плата за месяц.
Я у своего брокера оптимизировал комиссию до такого размера, что почти её не замечаю. Мне проще — я скальпер. Но у вас тоже может получиться. Удачи!
66 Комментариев
  • Karim
    10 марта 2017, 16:50
    Комиссия учитывается на вход/выход?
      • Евгений Черных
        10 марта 2017, 17:33
        Albus, Надо только найти брокера, кто сальдирует автоматически прибыль и убыток по фьючерсу и акции
        • v3Rtex
          10 марта 2017, 23:01
          kbrobot.ru, у цериха ебс есть
      • Dargo
        10 марта 2017, 17:50
        Albus, хай!!! есть робот стоп и профит?
        • Vlаdimi®
          11 марта 2017, 06:58
          Dargo, есть два разных робота. Один — стоп, второй — профит. Вам какого?
          • Dargo
            13 марта 2017, 12:39
            Vlаdimi®, стоп!!!
    • Zuccer0
      10 марта 2017, 17:06
      Karim, это самый важный вопрос)
  • shprots
    10 марта 2017, 16:59
    Большущее Вам спасибо за такую штуковину!
  • Вельвет
    10 марта 2017, 17:12
    Cпасибо тебе добрый человек! Будем тестировать.
  • Igr
    10 марта 2017, 17:13

    там бы ещё учитывать комиссию и спред

    и то что не на все 100% от депо можно войти, то есть 88% на акцию 12% на фьюч например, и значит и доход будет только от 88% 

    может ещё есть какие то ньюансы? 

     

    ещё надо бы иметь ЕБС, что б акции шли под обеспечение для фьючей 

      • Igr
        10 марта 2017, 20:09

        Albus, 0,15*4=0,6, плюс доход не от 100%, тоже минус

         

        а как быть с скачками по ГО?

         

          • Igr
            10 марта 2017, 20:21

            Albus, я про год

            а так да 0,15% 

            но другие минусы ни куда не деваются 

  • Igr
    10 марта 2017, 17:16
     если будет время и желание, написали бы коменты в тексте программы, что там что делает?   для самообучения было бы полезно 
  • Антон
    10 марта 2017, 17:21
    Такая схема не работает, Так как вторая часть денег лежит на споте в виде хеджа и не приносит прибыль. Берем квартальный фьючерс с контанго 3% умножаем на четыре квартала получаем 12%годовых с фьючей, а с общей суммы 6% годовых в лучшем случае.
    • Igr
      10 марта 2017, 17:46
      Антон, почему 6% как считали? 
      • Антон
        10 марта 2017, 18:28
        Igr, Допустим у Вас есть 1 000 000 руб.
        Спот 500 000 руб. (Хедж)
        Фьючи 500 000 руб.
        В среднем квартальный фьюч за 3 месяца до экспиры торгуется 3% контанго.
        Итого: 12% годовых 60 000 руб.
        С Вложенного 1 000 000 руб имеешь 60 000 руб. или 6% годовых.
        • Igr
          10 марта 2017, 18:39

          Антон, зачем поровну то делить?  на фьючах можно использовать 6 плечо бесплатно 

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

          • Антон
            10 марта 2017, 18:48
            Igr, у Вас равной пропорции не будет, а это уже другая стратегия.  Фьюч идет вверх у Вас 5-6 плечей: действия? Каждый день до вносить ден. средства, ведь спот и фортс не сальдируется между собой (по крайней мере у меня «Сбербанк»).
            • ch5oh
              10 марта 2017, 19:17
              Антон, падаем в ноги брокеру, звоним риск-менеджеру и говорим, что "мы хорошие и позиция захеджирована"…
              • flextrader
                10 марта 2017, 19:58
                ch5oh, и тебе рисуют залоговый лимит)) исходя из t+2 позы
            • Igr
              10 марта 2017, 19:58

              Антон, например у Открытия есть единый брокерский счёт, там акции можно использовать под ГО для фьючей, если фьюч начал расти то у вас берётся плечо на акциях, думаю в таком случаи при определенной разнице нужно подать часть акций и откупить часть фьючей )

              и спот и фортс сальдируется если фьючи на акции, вроде так, на 100% не уверен

              • Sekator
                11 марта 2017, 03:02
                Igr, ебс комис брокера 18%
                • Igr
                  11 марта 2017, 07:40
                  Sekator, это что именно за комис? и у какого бокера?
          • flextrader
            10 марта 2017, 19:24
            Igr, (я кода не видел, оговорюсь) только афтар когда % считал, он явно считал относительно стоимости бумажек (спота), так вот:

            реальная доха такого (такой страты) никакого превышения (даже  в 1,2 раза) над бенчмарком (ключевой/mosprime/депозитной)  никогда (!!) не даст. причем я именно о mean значении контанго сейчас, а не о неких экстремумах

            и все «громадные» cng в фск — не более чем следствие высокой величины его ФСКшного ГО (поэтому посыл тут концептуально абсолютно справедлив)
            — нормируй на ГО и там уж с бенчмарками можно сравнивать
            (сорри, но у меня просто в голове не укладывается на что на местном рыночке можно с таким продуктом надеяться кроме как на лосеводство) 
            • Igr
              11 марта 2017, 07:41
              flextrader, а как ГО влияет на стоимость фьюча, при увеличении ГО на 50% как изменится фьюч?
              • flextrader
                11 марта 2017, 10:52
                Igr, вопрос имеет несколько вариантов ответа). но зависит от актива, поэтому
                чтобы считать (даже) в первом прибл. надо задаться исчо и активом (считай его ликвидностью или % ГО)
                • Igr
                  11 марта 2017, 10:55
                  flextrader, ну привели бы пример, например на сбер об и фск?
          • flextrader
            10 марта 2017, 19:40
            Igr, и исчо моменты (почему цифры такие на картинке и как далековато от реальности):

            — те же затраты на р-ры ГО нужно в качестве метрики соотносить с ликвидностью/прибыльностью алго, дык вот fees Никогда не был эффективным с этой т.з.
            — также в боте (ну никак не устраняются реальная несинхронность м/у ба-и-деривативом) 

              — комисс (нет никакого смысла торговать t+2 без фикс-тарифов)
            • Igr
              10 марта 2017, 20:04

              flextrader, 

              -не синхронность, это вы про что? поясните 

              — про нет смысла торговать т+2 тоже не понял)

              • flextrader
                10 марта 2017, 20:20
                Igr, 
                не
                синхронность

                плохо синоним подбирается, короче — выборку по сделкам в целях расчета контанго (т.е. дернул спот-цену из дил-лога, и ближайшую по времени фьючцену из дил-лога -> нашел разность) делать нельзя, т.к. это будут с вероятностью ,9999 разные моменты времени.

                дефолтные (публичныеспот-тарифы слишком дороги, не позв. получать доходность больше бенчмарка на таком арбитраже
                • Igr
                  10 марта 2017, 20:23

                  flextrader, ну цену брать из стакана в моменте и там и там 

                   

                   

  • silentbob
    10 марта 2017, 17:22
    90% приведенных в табличке фьючерсов неликвид куда 10 контрактов присунуть проблема. а если надо хотя бы 500 или 1000?
  • Роман incognito
    10 марта 2017, 17:26
    разве это выгоднее коротких офз до погашения? не стоит забывать про комисс и 13%
  • Евгений Горюнов
    10 марта 2017, 17:34
    бестолковое дело пробовать на этом заработать. комисс сожрет всю прибыль!!!
  • ch5oh
    10 марта 2017, 17:48
     4. И кнопку "Схватить" — чтобы одновременно выставились 2 заявки для фиксации этого спреда. Понятно, с учетом доступной ликвидности… ;-)
  • Жора Интрадей
    10 марта 2017, 18:19
    Да это не работает. Вам нужно первым в спреде вставать, нужен быстрый доступ к бирже. а там всё занято уже ребят)

    На неликвиде проблемы с ликвидностью… короче, бабки только зря потратите.
  • Gorinich
    10 марта 2017, 18:20
    Больше БЫ таких постов, а то посты типа Хомяка как он 700 рублей заработал — это дно. 
    • Igr
      10 марта 2017, 18:43

      Yorsh, не, дно это обсуждение Украины)  разговоры как у нас всё плохо или наоборот всё замечательно)  что скоро кирдык США)

       

      хомяк это мелочи 

  • stolki
    10 марта 2017, 19:05
    Старая штука. На самом деле работает, но доходность тяжело поднять выше 6 процентов, и виной тому необходимость избыточного ГО на фьючах, т.к. это самое ГО биржа любит без предупреждения увеличивать раза так в два например.
    Но надежность этой схемы выше чем у ОФЗ, т.к. нет переоценки и дюрация маленькая.
  • ch5oh
    10 марта 2017, 19:14

    5. Добавьте в поставку файл socket.lua и связанный с ним core.dll

    Тогда можно будет не ставить луа для винды (ребут — это лишняя головная боль для трейдеров).

     

    6. При запуске Вашего скрипта ругается:

    C:\Scripts\ContanGO.lua:86: attempt to perform arithmetic on local 'offer_sh' (a nil value)


    Правда, я запустил его уже после 18:40...

    Поставьте проверку/защиту?..

      • ch5oh
        10 марта 2017, 19:30

        Albus, так норм, как считаете?

        if ((10000<getSTime()) and (getSTime()<184000)) then   

  • Albert Rudolfovich
    10 марта 2017, 20:03
    а вы в ЯВЕ-программировании разбираетесь?
    проблема есть у меня… с запуском клиента на яве с сервера.
  • Sergey Pavlov
    11 марта 2017, 05:24
    Нормальная схема. Рабочая. Не первый год уже на свободный остаток от торговли получаю доп. процент, который немного отбивает издержки от основных спекуляций. Но на 100% капитала, конечно, нереально получить желаемый процент. Где-то на 60-70% совершенно реально. Загрузить можно и больше изначально, но, если рынок пошел наверх, у вас по фьючерсной позиции начнет капать отрицательная вармаржа и как бы кто её не сальдировал, придется этот минус со счета каждый день списывать. Прибыль по акции может возникнуть только после продажи её. Поэтому за такой позиции при загрузке боле 80% надо следить за тем, куда идет рынок, чтобы в долг не попасть. Принципиально переиграть 7-8% в банке не получится и переиграть ОФЗ с самыми высокими купонами также не выйдет, но для текущего задействования свободных денег отлично подходит.

    И последний неприятный нюанс такой схемы. Проданное контанго только в теории падает на счет линейно день за днем. Реально это выглядит так:



  • Roman Ivanov
    11 марта 2017, 14:08
    Думаю у маркетмейкеров весь рынок плотно обставлен такими роботами и ловить там нечего.
  • ves2010
    11 марта 2017, 15:37
    у тя ошибка… нет учета дивов...
    и спрэда
      • ves2010
        11 марта 2017, 17:38
        Albus, тогда еще ошибка… доходность занижается т.к надо учитывать сумму ГО фьючерса... 
         т.е. общая стоимость позиции выше… соответственно доха ниже...

        вообще если хочешь удвоенную доходность то надо покупать евробонды и хеджить си… т.е. % от евробондов + контанга фьюча… это сделано в FXRU
          • Фыва
            11 марта 2017, 19:09
            Albus, 

            Я у своего брокера оптимизировал комиссию до такого размера, что почти её не замечаю. 
            как зовут такого договороспособного брокера?
  • ch5oh
    13 марта 2017, 14:31

    Квик как-то надо настраивать дополнительно?

    Может быть, эти бумаги надо предварительно заказать в таблице "Текущие торги" или ещё как-то?..

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

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