Блог им. Albus

Робот 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 — это библиотека функций

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

П.С. В комментах идёт дискуссия насчёт того, что брокерская комиссия съедает много дохода. Решение простое. Ведите с брокером постоянный диалог о понижении комиссии. Ищите брокеров с низкой комиссией. Например у Солида официальные комиссы микроскопические, и уже включают биржевую комиссию. Но там есть фиксированная плата за месяц.
Я у своего брокера оптимизировал комиссию до такого размера, что почти её не замечаю. Мне проще — я скальпер. Но у вас тоже может получиться. Удачи!
★74
66 комментариев
Комиссия учитывается на вход/выход?
avatar
Karim, нет. Только разница цен в чистом виде.
Albus, Надо только найти брокера, кто сальдирует автоматически прибыль и убыток по фьючерсу и акции
kbrobot.ru, у цериха ебс есть
avatar
Albus, хай!!! есть робот стоп и профит?
avatar
Dargo, есть два разных робота. Один — стоп, второй — профит. Вам какого?
avatar
Vlаdimi®, стоп!!!
avatar
Dargo, )))
avatar
Karim, это самый важный вопрос)
avatar
Большущее Вам спасибо за такую штуковину!
avatar
Cпасибо тебе добрый человек! Будем тестировать.
avatar

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

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

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

 

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

avatar
Igr, у меня комиссия на акциях настолько низкая, что ею можно пренебречь. У большинства клиентов комиссия на акциях будет 0,035%. Значит на круг 0,07%. Добавим ещё круг по фьючерсам. Их же тоже надо будет продать-откупить. Даже если взять самого жадного брокера, то расходы на комиссию на круг по акциям и фьючерсам составят в худшем случае 0,15%. То есть очень мало по сравнению с обсуждаемыми здесь процентами доходности.

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

 

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

 

avatar
Igr, зачем вы умножаете на 4? Если комиссия 0,035%, то у вас круг на акциях (в обе стороны) это 0,07% (семь сотых!!!). Плюс добавляем круг по фьючерсам туда-обратно. Вот и выходит в целом в худшем случае 0,15%

Albus, я про год

а так да 0,15% 

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

avatar
Igr, скачки по ГО вам грозят лишь одной неприятностью: ваш счёт чуть-чуть погрузится в маржу на то время, что ГО повышено. А потом всё вернётся как было.
Osen, думаешь комиссия столько съест? 
avatar
 если будет время и желание, написали бы коменты в тексте программы, что там что делает?   для самообучения было бы полезно 
avatar
Osen, контанго может достигать внутри дня очень больших значений, намного крупнее чем сейчас в таблице. А потом оно быстро возвращается на обычные уровни.
Такая схема не работает, Так как вторая часть денег лежит на споте в виде хеджа и не приносит прибыль. Берем квартальный фьючерс с контанго 3% умножаем на четыре квартала получаем 12%годовых с фьючей, а с общей суммы 6% годовых в лучшем случае.
avatar
Антон, почему 6% как считали? 
avatar
Igr, Допустим у Вас есть 1 000 000 руб.
Спот 500 000 руб. (Хедж)
Фьючи 500 000 руб.
В среднем квартальный фьюч за 3 месяца до экспиры торгуется 3% контанго.
Итого: 12% годовых 60 000 руб.
С Вложенного 1 000 000 руб имеешь 60 000 руб. или 6% годовых.
avatar

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

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

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

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

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

avatar
Igr, ебс комис брокера 18%
avatar
Sekator, это что именно за комис? и у какого бокера?
avatar
Igr, (я кода не видел, оговорюсь) только афтар когда % считал, он явно считал относительно стоимости бумажек (спота), так вот:

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

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

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

  — комисс (нет никакого смысла торговать t+2 без фикс-тарифов)
avatar

flextrader, 

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

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

avatar
Igr, 
не
синхронность

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

дефолтные (публичныеспот-тарифы слишком дороги, не позв. получать доходность больше бенчмарка на таком арбитраже
avatar

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

 

 

avatar
Антон, не совсем так. На фьючерсах же гарантийное обеспечение. ГО по фьючерсу на СБЕР 14% от его стоимости. Это словно бы 7-е плечо. (ГО сбера 2210, а цена фьюча 15770)
90% приведенных в табличке фьючерсов неликвид куда 10 контрактов присунуть проблема. а если надо хотя бы 500 или 1000?
avatar
разве это выгоднее коротких офз до погашения? не стоит забывать про комисс и 13%
avatar
бестолковое дело пробовать на этом заработать. комисс сожрет всю прибыль!!!
 4. И кнопку "Схватить" — чтобы одновременно выставились 2 заявки для фиксации этого спреда. Понятно, с учетом доступной ликвидности… ;-)
avatar
Да это не работает. Вам нужно первым в спреде вставать, нужен быстрый доступ к бирже. а там всё занято уже ребят)

На неликвиде проблемы с ликвидностью… короче, бабки только зря потратите.
Больше БЫ таких постов, а то посты типа Хомяка как он 700 рублей заработал — это дно. 
avatar

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

 

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

avatar
Старая штука. На самом деле работает, но доходность тяжело поднять выше 6 процентов, и виной тому необходимость избыточного ГО на фьючах, т.к. это самое ГО биржа любит без предупреждения увеличивать раза так в два например.
Но надежность этой схемы выше чем у ОФЗ, т.к. нет переоценки и дюрация маленькая.
avatar

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

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

 

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

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


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

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

avatar
ch5oh, да. Он ругается потому что на вечорке нет стакана по акции. В следующий раз допилю.

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

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

avatar
ch5oh, да, можно так. В этом случае выбивать не будет, но и данных в таблице не будет
а вы в ЯВЕ-программировании разбираетесь?
проблема есть у меня… с запуском клиента на яве с сервера.
avatar
Нормальная схема. Рабочая. Не первый год уже на свободный остаток от торговли получаю доп. процент, который немного отбивает издержки от основных спекуляций. Но на 100% капитала, конечно, нереально получить желаемый процент. Где-то на 60-70% совершенно реально. Загрузить можно и больше изначально, но, если рынок пошел наверх, у вас по фьючерсной позиции начнет капать отрицательная вармаржа и как бы кто её не сальдировал, придется этот минус со счета каждый день списывать. Прибыль по акции может возникнуть только после продажи её. Поэтому за такой позиции при загрузке боле 80% надо следить за тем, куда идет рынок, чтобы в долг не попасть. Принципиально переиграть 7-8% в банке не получится и переиграть ОФЗ с самыми высокими купонами также не выйдет, но для текущего задействования свободных денег отлично подходит.

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



avatar
Sergey Pavlov, я в следующем релизе робота добавлю интересный анализ. Он будет учитывать налог 13%, замороженные деньги под ГО, брокерскую комиссию…
Думаю у маркетмейкеров весь рынок плотно обставлен такими роботами и ловить там нечего.
avatar
у тя ошибка… нет учета дивов...
и спрэда
avatar
ves2010, дивиденды роботом не посчитаешь. А по поводу спреда. Вы про биды-аски? Я же написал, что берётся бид по фьючерсу и аск по акции, то есть максимально приближено к реальным условиям.
Albus, тогда еще ошибка… доходность занижается т.к надо учитывать сумму ГО фьючерса... 
 т.е. общая стоимость позиции выше… соответственно доха ниже...

вообще если хочешь удвоенную доходность то надо покупать евробонды и хеджить си… т.е. % от евробондов + контанга фьюча… это сделано в FXRU
avatar
ves2010, я в следующей версии допилю коэффициенты с учётом того что часть денег заморожена в виде ГО.
Albus, 

Я у своего брокера оптимизировал комиссию до такого размера, что почти её не замечаю. 
как зовут такого договороспособного брокера?
avatar

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

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

avatar

теги блога Albus (Игорь Китаев)

....все тэги



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