Еще об арбитражном роботе.
Появилось желание еще раз поговорить об арбитраже, а если быть совершенно точным, то об автоматическом арбитраже. Первая задача кажется совершенно простой, но скрывает в себе кучу проблем, которые выясняются уже в процессе создания модели.
Мне нужно видеть синтетический индекс РТС или индекс ММВБ, кому как нравится, реализованный через фьючерсы на 3 основные акции.
Я решил избрать для этого:
- Лукойл
- Газпром
- Сбербанк
Поначалу хотелось добавить еще и РАО ЕЭС, но ввиду ее реорганизации еще не ясно что там с ней будет в будущем. Вообщем пусть будут три акции.
Необходимо подобрать коэффициенты – весомости для каждой бумаги. Причем так, чтобы полученный индекс максимально повторял индекс РТС или индекс ММВБ.
Необходимо, чтобы как можно более долгий период времени весомости каждой акции оставались неизменными.
На исторических данных отклонение от индекса должны быть незначительными. В пределах 2-3%.
Робот должен уметь сам подбирать эти коэффициенты согласно рыночным условиям, анализируя n периодов в прошлом.
К примеру, включаем утром с начала торгов, минут 30, час, два (?) смотрим, считаем коэффициенты, мониторим отклонения, после чего по кнопке робот приобретает необходимое количество каждого фьючерса чтобы обеспечить нужное количество синтетических индексов.
Торгуемая арбитражная стратегия – это покупать серьезную бэквардацию индекс РТС – фьючерс на индекс РТС, или продавать значительное контанго.
Если вы посмотрите на графики разницы индекса РТС с фьючерсом на него, то заметите серьезную даже внутридневную волатильность. Руками все эти сделки провести можно, но это довольно хлопотно.
Теперь знатоки, внимание вопрос. Как реализовать алгоритм поиска весомостей?
Первое предложение было сделать это через матрицу. То есть 4 входных параметра, цены 3х активов и индекса, за 3 последние периода, получаем матрицу, считаем, получаем коэффициенты.
Точность офигенная, коэффициенты меняются при каждой новой точке (свече) , бывают отрицательные…
Вообщем немного не подходит, необходимо доработать.
Еще идея была в том, чтобы считать отклонение или ошибку одной зависимости от другой, то есть имеем 3 графика с одной стороны и 1 с другой. Как нужно складывать первые 3 графика, чтобы получилось минимальное отклонение от того одного графика.
Математики, скажЕте как сделать?
Похожие записи:
- Контанго или бэквардация в индексе РТС После того, как я месяц наблюдал за фьючерсом на индекс РТС, я понял, что есть еще некошеное поле, где суровый...
- Графики спредов и корреляций на forts. Из предыдущей статьи про работу со спредом между индексом РТС и фьючерсом на него я получил несколько вопросов. Предлагаю посмотреть на...
- Как добавить процентную ставку в свой инвестиционный портфель? Фьючерсы на корзину облигаций г. Москва . Даже мини опрос хотелось бы сделать. Кто-нибудь ими торговал? Если да, то я...
- Фьючерсные спреды и портфель новичка Как можно уберечься от ценового риска? Я не знаю отчего, но большинство из нас приходят в торговлю на рынке ценных...
- Список открытых позиций Сегодня в фокусе фьючерсы на индекс ДоуДжонса и фьючерсы нефть. Те, кто переживал за свои позиции могут исключительно расслабиться. Нефть...


Чуваааак, это тебе ко мне
)) Значить по поводу весов. Тут есть такая фишка. Слишком частое изменение веса для создания синтетического индекса не есть гуд, в виду того, что тебе постоянно придется перетряхивать позу. А если робот собрал позу и держит ее несколько дней к ряду? на ежедневной основе пересчет веса тут же приведет к ненужным лишним сделкам по уравниванию позы относительно проданного индекса. В результате как вариант могут получиться значительные убытки или недополученная прибыль от реализации такого спреда. Соответственно должен быть некоторый минимальный промежуток времени на котором действуют веса. К примеру неделя или месяц. Ок, в теории можно счита веса и каждый день, но в таком случае поза должна быть нулевая. То есть я хочу сказать, что в случае входа в позу и создания спреда роботом, следующий перерасчет весов можно производить только после ее закрытия.
Теперь о том как считать. Веса можно тупо посчитать по маркет кэпу компаний входящих в индекс. Второй вариант, можно их посчитать относительно объема торгов каждого из фьючерсов. Так же можно посчитать веса относительно открытого интереса например, ну и по хорошему еще бы суда запихнуть такой замечательный коэффициент, как фри флоут, хотя не факт что он применим к фьючерсам. Еще можно использовать количество сделок в день по конкретному контракту, а точнее среднее за некоторый период. Значить сложность реализации именно этого варианта впрочем как и других заключается в том, что раз в квартал контракты меняются и ликвидность ближних контрактов появляется только по приближению их срока истечения. А значит без склейки фьючерсов не обойтись. Вобщем вот она затравка для размышлений. Алгоритм рассчета весов я попробую привести завтра. Сегодня очень устал и хочется домой
Слова финансиста! А слова математика? Есть абстрактные 3 функции, нужно приравнять к 4ой… Имеет эта задача решение простое? Если нет, пойдем финансово. Рассчитаем по объему, капитализации и будем подбирать путем простого перебора.
Просто хочется внести красоту в эту задачу.
Сегодня попробую собрать в Метастоке для начала.
Тоже не угощу словом математика
. Предлагаю сделать тупым перебором и найти минимальное значение ошибки. Алгоритм:
for(t) // t – периуды
for(x)
for(y)
for(z)
Алгоритм проверки на макс.приближение
(Лукойл * x + Газпром * y + Сбербанк * z)
Простое решение.
После книги Книга “ПАРНЫЙ ТРЕЙДИНГ. Количественные методы и анализ” (первая глава опубликована у меня на блоге), я понял, что построение таких конструкций намного сложнее, чем кажется на первый взгляд. При их построении необходимо учитывать бету каждого фьюча на акцию, относительно фьюча на индекс, а так как фьючей на акции целых три, то получится полный бред. Лично у меня ничего не получилось. Причины я описал в предыдущих комментариях к твоим постам.
Кстати математики тебе ничего вразумительного не скажут, тут нужны специалисты в области финансовой математики, специализирующиеся именно в этой области.
Спасибо! Будем работать… Ведь не попробовав сложно сказать что и как. Я допускаю немного интуитивного подхода. К сожалению по техническим причинам пока не было возможности подойти к этому вопросу серьезнее. Отпишу по результатам.
Математики не скажут? если нормально поставить задачу. в а задаче должны быть описаны условия, например, и тогда математики переведут их в уравнения. типа грубо
1. F1(t)=C1*LKOH(t)+C2*GAZP(t)+C3*SBER3(t)
2. F2(t)= RTSI(t)
3. Max(F2(t)-F1(t))-Min(F2(t)-F1(t)) = Min (т.е. амплитуда колебаний спреда должна быть минимальной)
не хочу щас ничего расписывать, потому что задачу надо определять внимательно, хотя и можно решать сначала упрощенные подзадачи, т.к. даже упрощенные варианты могут дать неплохую прибыль… в общем в этом упрощенном случае расчитываются на истории коэффициенты “C” и задача решена фактически.
уравнения(условия) можно уточнять, например не максимумы считать а среднеквадратические отклонения. можно дальше пойти, описать правила торговли с неизвестными коэффициентами и искать максимум по прибыли.
Думаю, правильнее подбирать коэффициенты C1, C2, C3, при которых достигается min((F2(t)-F1(t))^2). Допустим, мы нашли их для некоторого промежутка времени (месяц, квартал, год). Значит, мы выяснили, какие нужно было брать веса на ЭТОМ промежутке времени, чтобы наш синтетический индекс был максимально близок к реальному индексу РТС. Но если мы возьмем другой период времени той же длины (следующий месяц, квартал, год), то там ведь могут оказаться СОВСЕМ другие оптимальные коэффициенты!!! Вот в чем проблема. Поэтому практическая задача в данном случае, на мой взгляд, не очень корректно формализована. Найти ее математическое решение нет проблем, но это не будет то, что вам нужно:( А вообще, парни, вы за очень хорошее дело беретесь. На индексе очень нужны арбитражеры, а их пока мало:( Кстати, еще хочу отметить, что прибыли и убытки по фьючу на индекс РТС и по фьючам на акции для физ.лиц у известных мне брокеров (в частности, Церих и Открытие), к сожалению, тоже не сальдируются, поэтому фьючу в данном случае ничем не лучше самих акций (по налогам). Но ими выгоднее торговать в плане комиссионных биржи, разумеется. Но я бы все-таки проводил арбитраж с синтетическим индексом из акций (не всех, конечно) прежде всего по той причине, что фьючи на акции тоже содержат премию к споту, как и фьюч на индекс РТС. Но делать это нужно на больших деньгах и от имени юр.лица, чтобы не было проблем с налогами.
Виноват, в предыдущем комментарии следует читать min(sum((F2(t)-F1(t))^2)), где сумма sum берется по t из нашего тестового периода (фиксированные моменты времени, например, конец каждого часа или чаще, если нужно).
Из практики.
. Используя “банальные” методы оптимизации: генетический алгоритм или градиентного спуска(хуже), получим ОПТИМАЛЬНЫЕ коэффициенты вхождения бумажек, обеспечивающих лучшее приближение к индексу. Критерий приближения = minmax(квадрат расхождения).
Берем с два десятка бумажек, входящих в индекс РТС (у которых коэффициент влияния больше 1%). Цены берутся с мамбы, бары 15 минутные. Берем аналогичные бары фьюча РТС. Это входная инфа. Далее строим синтетический индекс с коэффициентами вхождения бумаг, взятых с балды или с потолка
Это все детали…
Главное результат:
1) за квартал торговли получены коэфф., при которых разброс синтетики и фьюча СТАЦИОНАРЕН.
Арбитражная стратегия: 40% годовых (без плеч, ГО 100%), риск менее 0.5%.
2) как в знаменитом мултье про Геракла “…хорошее слово ЕСЛИ…”.
На другой квартал те же коэфф. совершенно ни к черту! Расчет оптимальных коэфф. за 2 месяца не дает того же результата на другой месяц! Т.е. задним числом оптимальные коэфф ЕСТЬ.
3)Проведенный анализ расчета индекса РТС показал:
- за то как биржа его расчитывает их всех … надо (это первое).
- жутко нелинейная природа вхождения капитализации бумаг, дабы супер-пупер компании (аля газмяс) не сильно влияли на индекс – т.е. отражение реальности в сомнении.
- так на каких же данных идет расчет индекса: РТС или ММВБ? – ответа нет
- представленная формула расчета вроде бы простая, НО полученный по ней результат мягко говоря отличается при “выборке” ДАЖЕ 98% бумаг индекса !?
- полученные оптимальные коэфф. даже постфактум в доску не совпадают с коэфф., предоставленные официально биржей РТС – и к чему бы это?
Это все цветочки:
Вопрос в следующим: тут кто-нибудь занимался реальным арбитражем спот-фортс, например, на газпроме?
PS:
… Если ваша стратегия будет приносить прибыль сравнимую с акциями, а риск сравнимый с облигациями, то можно найти кучу контор, которых вам будут “спинку медом мазать”.
Про сальдирование
А вообще дело стоящее. Потенциальный проходящий объем арбитражных операций ГИГАНТСКИЙ, при этом без серьезного продавливания рынка, т.е. без сокращения прибыли.
Мне кажется, что тут усложнение убивает всю идею.
и Лукойл, к примеру. Коэффициенты можно рассчитывать ежедневно. То есть делать не скальперский арбитраж, а арбитраж БАЗИСА фьюча на индекс РТС. То есть основные постулаты его изменения:
А идея была как МИНИМУМОМ бумаг сделать синтутический индекс. Минимум – это по бумаге от отрасли. Примерно. То есть банки, газмяс
1. Общее настроение рынка (можно задать корреляцию с американским к примеру рыном)
2. Нефтяная составляющая (корреляция с нефтью)
3. Сроки исполнения фьючерсных контрактов.
Для хэджа короткого фьючерса на индекс РТС нужно подобрать ОПТИМАЛЬНУЮ в текущий момент корзину имеено фьючерсом (дешевле по комиссии и ГО). Это же свойство фьючей позволит делать плечо, что тоже важно.
Теперь сложности.
Иногда нефтянка оказывает чрезмерное влияние на индекс, например при серьезных трендах в нефти. Коэффициенты скачут ужасно, действительно, что сегодня гуд, уже через месяц ни к черту.
Решения?
1.Нужен пересчет, рехеджирование позиции такого рода. Так как жвижения по базису могут быть крупными, позиции можно удерживать дни и недели. Риски резать изменением количества бумаг. На лету, во время работы стратегии.
2. Ориентироваться не только на наш рынок, но и на американский, и нефтяной, как наиболее влияющие.
Не рассматривать принципы построения индекса РТС, вот он есть индекс, пусть он будет такой как есть. Наша задача максимально приблизить к нему синтетику.
Можно рассчитывать сумарную экспозицию и к примеру добавлять опционы, если будут серьезные изменения по хеджевой позиции.
В любом случае нужен как бы “стенд” для тестирования такой идеи. Програамно как бы это все удобно было завязать? Через MT4? Если бы там были росс.фьючерсы, или через метасток, или экселем банально?
Много вопросов…
И так получаем…
В качестве одной стороны арбитража – фьюч на индекс РТС.
В качестве другой стороны арбитража – набор фьючей: EERU, GAZR, GMKR, LKOH, RTKM, SBER, SNGR.
Т.е если продаем фьюч РТС, то берем остальные фьючи. Покупаем фьюч РТС – продаем остальные фьючи. Как известно комиссии дохлые, платы за удержание позиций в долгую отсутствуют.
Берем данные за 2007 год…
Оптимизируем коэффициенты вхождения фьючей для приближения к фьючу РТС. Результы следующие:
1) Существую характерные даты, когда расхождение максимальное. Наверное догадались – 15 марта, 15 июня, 15 сентября и 15 декабря +/- 3 дня.
2) Харакерное хождение от одной экспирации до другой 5000 пунктов. Так: 4 раза в год позиции по 5000 пунктов. Среднее и тупое значение фьюча РТС за 2007 год 200000. Получаем доходность от индекса 5000*4/200000 = 10% в год. Так как с другой стороны арбитража совпадающие по объему позиции, то уменьшаем доходность в 2 раза. Результирующая доходность = 5% в год. СКО = 1300, т.е. риск 1300/200000 = 0.65%, для полной позиции арбитража 0.65/2 = 0.33%. Все без плеч и реинвестирования.
3)Риск минимальный – лезем в плечи. Максимальное совместное плечо = 8.3. Правда во всякие тупые дни надо следить за увеличением ГО.
Результирующая доходность 8.3*5 = 40% в год. Риск 0.33*8.3 = 3%.
4) до десятка сделок в год по перетряхиванию позиций.
Сложности…
5)Все пока постфактум. Перетряска коэфф. в конкретный момент времени – вопрос открыт.
6)Сумма для более менее точного арбитража не маленькая.
4) СКО велико до 1500 пунктов. Можно обыграть это скакание но сложно…
Ну и наш ответ Чемберлену…
1. А есть ли смысл городить такое большое количество фьючей против индекса? Думаю доля РАО не стоит возни с ним. Имеет ли смысл возиться с Сургутом и телекомом? по моему там слабая ликвидность вообще.
Остается сбер, лукойл, газпром. Может их хватитло бы?
2. Зачем проводить операции в “критические дни” в районе поставок? Может тоже ну их?
3. Стоит ли учитывать контанго/бэквардация индекса РТС? Ход у нее немалый, и по моим наблюдениям бывает не связан с контанго/бэквардацией на фьючах. Мне кажется нужно учитывать.
4. По перетряске, мне кажется нужно анализировать зависимость бумаги от индекса. Если она меняется, то менять ее вес. Но это тоже дополнительное усложнение…
5. На счет суммы,немаленькая это сколько по вашим рассчетам?
6. Програамный аппарат для этого всего какой испозовать? Меня метасток + эксель мильно раздражает… Много работы можно делать в автоматическом режиме…
Интересные терки трете, не смог пройти мимо.
Для построения более адекватного синтетического индекса могу предложить оптимизировать не сумму квадратов отклонений, а помножить каждый квадрат на вес. Вес больше для квадратов из ближайшего прошлого и плавно убывает до нуля по мере отдаления от текущего момента.
Т.е. данные из ближайшего прошлого больший вклад дают.
Как программист знакомый с математикой могу сказать что оптимизация в такой постановке задачка не сложная, можно хоть методом тыка решать. Ябы выбрал симплексный метод, но генетика тоже нравится.
Сначала имеет смысл помоделировать как это все будет на истории. Данные вроде все есть? А там и видно будет насколько сия стратегия прибыльна.
Для начала можно построить этот самый ненатуральный индекс да сравнить с натуральным. Глядишь и наглаз с графика все ясно станет. А лучше чтоб прямо эквити лицезреть.
Потом можно поэкспериментировать с тем какие акции в него учесть, хотя выбора то вроде и нету. Может что-то кроме цены акций и фьючей в модель включить?
Нужно перебрать несколько вариантов подбора коэффициентов. Нужно менять коэффициенты в зависимости от корреляций акции и индекса. Можно вводить другие факторы типа нефть и доу. Можно даже отталкиваться от технического анализа по части инструментов, но для начала нужно создать модель подбора коэффициентов, при которой ошибка будет минимальной, а ребаллансировка позиций – редкой.
Больше того, практический опыт мне подсказывает, торговля будет более успешной лишь в районе месяца перед поставкой. В другое время лучше не лезть.
Это верно, если робот торговал бы лишь контанго/бэквардацию с индексом.
Если робот торгует разницу в движениях индекса и отдельной акции – то этот метод, думаю, был бы применим на всем пути.
Все есть, есть данные, нужно запрограммировать. Нужно придумать еще и нормальное программное средство, где можно было бы менять параметры и подбирать нужные условия. Пока кроме экселя и метастока, ну и MT4 – ничего нет, но все одинаково неудобно. Роман, есть мысли по ПО?
О! Мысли про ПО это мой конек. Программист всетаки
Но к сожалению с имеющимися клиентскими прогами для трыдинга на бирже не знаком в смысле что не пробовал еще ни одной, хотя все собираюсь.
Но слышал что уже есть какие-то которые API (Application Programming Interface) предоставляют для реализации автоматов.
А если API есть то дальше дело техники.
Можно кстате погуглить на эту тему…
А по поводу вышеописанной стратегии думаю может лучше сначала смоделировать и посмотреть что на истории дает а не сразу браться за реал? Чето есть сомнения нет ли там риска который не скомпенсирует потенциальную прибыль? Все-таки получается не чистый арбитраж.
Или скакуны уже роют копытом землю?
У меня есть АПИ к АльфаДиректу. Можно и рыть данные из программы и моделировать, вообщем все можно. Говорят, есть трудности с какими-то программными ошибками этого АПИ, но начать труда не составит.
Интуитивно торгуется неплохо, прибыль есть. Хотелось бы, чтобы робот помогал, быть может даже в полуавтоматическом режиме.
Ну а уж советами то мы все замучаем
Для того, чтобы начать, нужно зарегистрироваться на alfadirect.ru, установить брокерское ПО и взять можно у меня, а можно у их же техподдержки АПИ.
Действительно, коддинг не самое трудное.
Тестирование на реальных данных есть, но несерьезное
Дальше гоню коней, есть программа метасток. Ее тоже можно установить, подгрузить туда данные. Там есть свой язык, и на него можно тоже переложить алгоритм. Все данные то же есть, осталось опять дело за малым – алгоритм.
Сразу за реал я уже взялся, дело стоит того. Но робота конешно тестить на исторических данных, а потом в боевом, но не доводящем до сделок варианте, с просто протоколированием.
При кажущейся простоте можно увязнуть в деталях. Но потенциал этого большой, но, к сожалению, пока на этот рынок не выйдет кто-то очень крупный.
Но в случае с выходом крупного у нас есть фора, ибо мы – мелкие, а крупные придут, когда объемы увеличаться раз в 10, чтобы им было комфортно. До этого времени есть возможность довнести в такого робота чуток ума, например анализ корреляций с забугрными данными.
Вообщем идея перспективная, нужен как раз тот, кто бы не испугался начать
Да, еще для анализа могу выдать текстовые файлы с котировками. На эти 4 инструмента. И на них можно сделать попытку любым, вам известным методом подобрать коэффициенты. Я же проверю как это все можно было бы взять по рынку…
Поюзал мозг на эту тему. Не догнал зачем-таки нам этот синтетический индекс. Можно по-формулам расписать чего же мы там торговать собираемся. Получается следующее:
1) Индекс
RTS(t)= K1*LKOH(t)+K2*GAZP(t)+K3*SBER3(t) + D(t)
здесь D(t) – это та часть индекса, которая содержит неучтенные акции. Это такая ф-я времени которая всегда положительная и значение скачет туды-сюды.
2) Фьюч на индекс смоделируем как
RTSI(t)=RTS(t)+S(t), где S(t) – это собственно то что хотим торговать – спред. Значение болтается туда-сюда около нуля.
3) Если строим модель индекса, то логично предположить что D(t)=const=C4 (это поправка к вышеописанной модели). Тогда модель будет такая:
RTS(t)=C1*LKOH(t)+C2*GAZP(t)+C3*SBER3(t)+C4.
Но это сторонние рассуждения.
А зачем нам собственно этот самый индекс? Веть обнаружить что на рынке необосновано растет спред логичнее просто определять как увеличение разницы между RTS и фьючем на него? Я явно не увидел из прочитанного что это так и есть так что акцентирую.
Далее хотим открыть позиции так, чтобы максимально снизить риск. Для этого открывается по фьючу на индекс и в противоположную сторону по указанным акциям. Далее надо понять сколько каких акций покупать. Наверное самое лучшее что мы можем сделать для снижен я риска это купить соответственно K1, K2, K3 акций. Тогда суммарная позиция будет:
D(t)+S(t) – это то что нам на самом деле придется торговать, вместо желаемого S(t). D(t) – это собственно то, что создает риск и чем эта величина больше меняется по сравнению с S(t) тем больше риск открытой позиции.
Если будем подбирать коэффициенты не совсем равные K, то можем и уменьшить риск, а можем и увеличить. Тут мы уже переходим в область обычного рискованного трыдинга.
Таким образом арбитража не получаем, но возможно имеет смысл следующая стратегия: Наблюдаем S(t) и по некоторому алгоритму (скажем он достаточно большой) делаем вывод что надо прыгать в рынок. У этого алгоритма как минимум будет один параметр P1. Далее встаем в позу беря акции в определенных пропорциях к объему по индексу. В простейшем случае эти пропорции есть константы P2, P3, P4.
Ну и выпрыгиваем при некотормо условии, тоже наверное параметр P5.
Можно брать P2-P4 не константами а как ф-ии от предыдущих значений итп. Но поскольку никакого логичного алгоритма их выбора не имеется, кроме как что они около K1, K2, K3, то это не ументшает число параметров стратегии никак.
Выводы:
1) стратегий не арбитражная т.к. торгуем D(t)+S(t), а с D(t) наверняка не так все хорошо как хотелось бы.
2) неисключено, что подобрав P1-P5 мы получим действительно прибыльную стратегию
3) надо моделировать это все да смотреть шансы на успех. Если окажется что достаточно подобрать константы P1-P5 и получить стабильный рост прибыли (с учетом комиссии), то это все имеет смысл. Иначе, надо признать что идея не удачная.
4) Можно попробовать усложнить стратегию вычисляя P на основании какихто там исторических данных. Но боюсь это все только усложнит стратегию и увеличит шанс получить подгонку.
Роман, нужно время чтобы осилить всю эту математику, но одно могу сказать сразу – вы точно не до конца поняли смысл самой основной идеи – это попытка выловить контанго/бэкввардацию на индексе РТС с фьючерсом на него же.
К примеру сегодня разница между ценой фьючерса на индекс РТС и индекса РТС доходила до 25п (контанго), но иногда, в некоторые периоды составляла -5 (бэквардация). 1 индексный пункт примерно 50р, 1500р с контракта, при вложенных 8000 залог за фьючерс на РТС, и еще столько же за остальные фьючерсы… Неплохо получилось бы. Тут даже ошибку довольно существенную можно простить…
Или я сам не так что понимаю?
Мне кажется, что идею я уловил. В сумме мы желаем торговать S(t) (это и есть контанго/бэкввардация в чистом виде). Но поскольку индекс мы купить целиком не можем, а только какие-то акции из индекса, то может только торговать D(t)+S(t) со всеми вытекающими отсюда последствиями. Если была бы возможность торговать индексом, то D(t)=0, риска нету (кроме маржынкола), получается чистый арбитраж.
Необходимость в синтетическом индексе не просматриваю. Хотите обнаруживать большой спред RTS-RTSI=S(t) – так пожалуйста, оба значения известны на текущий момент, зачем еще какойто индекс строить?
Я усматриваю что константы синтетического индекса это те пропорции, в которых следует покупать/продавать составляющие индекса. Теоретически, это должны быть константы равные весовым долям этих акций в индексе. Но возможно при таком раскладе выигрышная стратегия не получится из-за наличия D(t), но D(t), возможно, можно частично скомпенсировать выбрав константы отличными от теоретических или может даже както вычислять их динамически по истории.
Я понятно изъясняюсь?
Роман, сел и без нервяка этого торгового разобрался таки в вашем комментарии. Спасибо за грамотно изложенную позицию, изъясняетесь вы вполне понятно.
Теперь нюансы, ведь теория отличается от практики очень сильно.
1. Индекс РТС очень слаболиквидный, его расчет запаздывает и часто не отражает сути. Поясню, наблюдаем бэквардацию -5 пунктов, отличный вход в позицию, но при том, что значение РТС еще не изменилось или уже изменилось, при переходе на реальные цифры во фьючерсах (мы еще заменяем акции на фьючерс, где тоже есть бэквардация или контанго), получаем совершенно другое значение, быть может не бэквардацию -5, а контанго 10.
2. Упрощение. На моё сугубо имхо – это самое главное. Пример. Я имею некую кривую, назовем ее индексом РТС. Меня не особо интересует, как она формируется, но она существует и я могу наблюдать ее. У меня есть 3 другие кривые (фьючерсы на акции 3х эмитентов), причем мне не очень важно, что они не полностью отражают динамику первой кривой (индекса РТС). Мне необходимо подобрать коэффициенты у каждой из 3х кривых так, чтобы сумма их с некими коэффициентами K1*LKOH(t)+K2*GAZP(t)+K3*SBER3(t), максимально близко повторяла первую кривую, т.е.
K1*LKOH(t)+K2*GAZP(t)+K3*SBER3(t)= RTS(t) + D(t),
где D(t) – есть ошибка повторения синтетическим индексом самого индекса. Эту ошибку нужно вычислять, она же является критерием нормальности подбора коэффициентов. Понятное дело, что ошибка будет увеличиваться в случае, если коэффициенты менять реже, и уменьшаться, если чаще.
Нужно реализовать алгоритм поиска коэффициентов и алгоритм торгового робота, который будет поддерживать на рынке позицию, эквивалентную позиции в индексе РТС (первая кривая), с учетом заданной ошибки. Причем робот мог бы чуть корректировать позицию в случае ее отклонения покупая незначительные (по 1 контракту) или продавая по одному части позиций.
То есть задача сводится к синтетическому индексу, потому что такого инструмента на рынке нет! А использовать его уже можно по всякому. И в арбитраже и в еще куче ситуаций.
Важно, чтобы робот по нажатию кнопки мог бы создать и поддерживать эту позицию.
Сейчас я это делаю вручную. Причем часто даже 1им фьючерсом с коэффициентом можно реализовать примерное соответствие индексу.
Точность не нужна слишком большой, хотя бы в 3% уложиться.
В вашей терминологии принимаем D(t) = ошибке расчета, и идем по принципу обратной связи – чем больше ошибка, тем более сильное воздействие на 1 или несколько коэффициентов по принципу уменьшения этой ошибки.
Теория автоматического управления + принцип обратной связи. Точно корректировать такой индекс можно и даже акциями, по 1-2 штуки, если будет надобность.
Я ясно изложил суть того, что нужно? Быть может не очень ясно зачем оно нужно, но я изложу, очень нравится мне беседа, мы должны дорыться до четкого алгоритма.
Еще раз повторюсь, задача создать модель индекса РТС, реализованного через фьючерсы, и это, как вы правильно заметили, даст возможность торговать спредом S(t).
А еще оно дало бы возможность проводить хеджирование.
Хеджирование опционов, арбитражные сделки с неликвидными опционами, и еще куча полезностей
Уфф, надеюсь мой спич был понятен.
Добрый день Андрей, едем, кагрица, дальше
Из сказаннаго Вами получаю две возможных ситуации: мы полагается на RTS как то что можно сравнивать с RTSI или не полагаемся. Если RTS по Вашему мнению считается некорректно и не отражает взвещанной суммы акций в него входящих на том интервале времени где предполагается торговля, то надо вобще забыть про RTS. Потому, что для арбитражной торговли нам нужна такая суммарная позиция на рынке, которая болтается около нуля. Знать что она вдруг -5 и зная что -10 уже маловероятно и не за горами тот момент когда она снова вернется в 0 – этого достаточно чтобы торговать практически без риска. Спред акция-фьючерс это какраз такая ф-я, но построить такую позу на рынке нет возможности.
Какраз нужна такая поза чтобы разница болталась около нуля в коридоре.
У меня уже руки почесываются заняться, но похоже что не раньше чем через 2 недели т.к. сейчас в командировке, а все наработки по части манипулирования рыночными данными – дома. Но может в выходные будет время сделать что-то простенькое. Или вот думаю какую ни будь готовую платформу потрогать, но это тоже время разбираться.
Как можно такую позу построить? Вы предлагаете строить позу максимально близкую к RTS и в противовес открывать RTSI. Хотя есть подозрения что RTS сути не отражает. Так не стоит ли искать возможность покупки акций так, чтобы получить позу максимально близкую к RTSI? Естественно точно RTSI не получим, но если бы мы его получили точно, то и торговать былобы нечего!
Можем ли мы построить такую позу в чистом виде? Очевидно нет, т.к. есть составляющяя D(t) которая имеет и краткосрочные колебания и тренд. Ведь это собственно тоже взвешенный пакет акций, которые входят в RTS но нами не торгуются. Так что построить синтетический индекс, который на длинном участке времени не будет иметь ТРЕНДОВОГО отклонения от RTSI (а именно против него мы его будем торговать, а не против RTS) возможности нет.
Другое дело короткие временнЫе промежутки. Тут получается, что промежуток должен быть достаточно мал, чтобы трендовая составляющяя D(t) не увела S(t)+D(t) на столько, что он уже не вернется туда где мы его ждем. Но достаточно длинным, чтобы S(t) успела отклониться и вернуться в нужную точку (ИМХО важный момент!). Кстати, насколько я на данный момент уразумел, под синтетическим индексом, вы понимаете некий краткосрочный прогноз RTS их недалекого прошлого на текущий момент? Или как бы это сформулировать точнее? Чуствую что где-то тут собака порылась… Повторюсь, что слишком далекий прогноз испортит трендовая составляющяя D(t).
Таким образом риск открытой позы будет определяться шансами что открытая суммарная поза, которая вначале имеет нулевую прибыль, успеет сходить в нужную для прибыли сторону раньше, чем трендовая составляющяя D(t) утащит ее в минуса.
Естественно возникаяет вопрос: а в какой момент открываться? Пока не ме могу ничего предложить кроме как либо смотреть всетаки RTS по отношению к RTSI, либо смотреть в общем случае взаимосвязи между RTS, LKOH, GAZP, SBER3 и ихними фъючами. Уже начинаю подумывать и кормлении этими данными нейронной сети или чего-то подобного (кстати есть технические наработки в этой области).
Кстати еще есть соображения что коли у нас нормального RTS нет (а я вижу что он полезен для определения когда открывать позу см. выше), так его можно вычислить, только взять не 3 акции, а данные по всем акциям из индекса RTS какие доступны. В пропорции, которая используется биржей для расчетов RTS.
Но прежде чем лезть в дебри нейросетей, следует посмотреть на графики этого дела. Всетаки в голове тоже нейросеть, а еще какая!
Роман, ситуация обстоит следующим образом. RTS индекс рассчитывается исходя из сделок на своей малоликвидной площадке, причем цены – в долларах США. То есть он серьезно более инерционен. Бывает так, что все уже на 5% попадало, а РТС индекс еще стоит в 0.
Его заменителем является индекс ММВБ. Его тоже сложно собрать – но он мгновенный и то, что нам нужно.
Теперь в теорию торговли базисом. У нас есть фьючерс на индекс РТС, и нам нужно создать базовый актив. Ориентируемся на индекс ММВБ, но расчитываем такую позицию, которая была бы базовым активом для индекса RTSI.
У нас есть фьючерс, но нет базового актива. Нам нужен базовый актив.
Никуда не применить синтетический фьючерс на индекс РТС, а вот базовый актив – можно.
Синтетический фьючерс делать нет смысла – его можно просто купить, вон он – на рынке.
Нужно воссоздать базовый актив для фьючерса на индекс RTS для торговли базисом (разница между ними), т.е настроением на рынке. Базис всегда сужается, риска практически нет.
Вопрос КАК? Второй вопрос КАК подобрать коэффициенты, поможете сделать модель? Как работать с моделью и для чего она нужна я знаю и уверен, что на этом можно зарабатывать.
Мде, кажется напутал. Под RTSI надо понимать фьючерс на индекс, а под RTS – сам индекс. Сорри за пуаницу
Я тупица!
Не так все просто…:) или просто?
Базис = фьюч на индекс РТС – индекс РТС.
Этот базис торгуется около постоянного значения с отклонениями вверх/вниз. Вверх залезло продавай фьюч, покупай РТС; вниз залезло покупай фьюч, сливай РТС. Анализ показал, что средняя базиса не меняется, т.е. ликвидность фьючей на индекс и индекса РТС одинакова. Замечательно… Но “в руках” индекс РТС не подержишь, его надо заменить набором акций со спота или набором фьючей на эти акции. Опять все замечательно – набираем в портфель все что входит в РТС… Но тут затыки какие-то. Коэффициенты спотовых акций не так однозначны. Если взять ограниченный набор спота, то возникает дрейф изолинии базиса, причем надолго и сильно. Т.е. проблема налицо – надолго ли будет предсказание коэффициентов спота? Придется применять не простое отклонение, а что-то вроде техиндикаторов…
Про роботов…
У меня робот есть на TEClinet lib (АЛОР+).
Анализ в Matlab-е.
Главное стратегию додумать.
Мне кажется, что не все так уж и сложно. Нужно только принять большие риски. Синтетический индекс из Лукойла и Сбербанка показывает удиительную корреляцию с индексом РТС.
Пример тут: http://lowrisk.ru/programming/sinteticheskij-indeks-rts-cherez-fyuchersy/
Идея красива, но!
Вы не проверяли – нет возникает ли контанго/бэквордация на фьючерсах Газпрома-Лукойла-Сбера ОДНОВРЕМЕННО с контанго/бэквордацией на фьюче РТС? Ведь, как я понимаю, контанго/бэквордация возникают из-за некого консенсуса взглядов на перспективу роста или падения рынка. И если публика ждет, например, роста индекса РТС, то наверняка она ждет того же и относительно Газпрома-Лукойла-Сбера. А если контанго/бэквордация появляются одновременно и по индексу и по акциям, то арбитража не получится.
Нет, не возникает. В большей части случаев, индекс живет своей жизнью, фьючерсы на акции своей. Возможно взаимное влияние в моменты резкого сужения спреда на фьючерсах, но такие вещи происходят редко. Спред во фьючерсах на акции довольно стабилен на больших промежутках времени и меняется резко. Не факт, что такая ситуация сохранится и в будущем, но пока так…
Здравствуйте, Андрей.
Спасибо за Ваш сайт. Давно читаю его, но пишу впервые. Давно интересуюсь торговлей. Интерес больше теоретический, но недавно начал практиковать. Постепенно понял, что для меня наиболее приемлима (психологически) торговля нейтральными стратегиями (спреды, арбитраж). Поэтому последнее время работаю в этом направлении.
Всё написанное выше пересекается с моими наработками. (Кстати, последний пост в этой теме 02.03.. как идет у вас работа в этом направлении, если не секрет?)
Насколько я понимаю, для реализации стратегии торговли календарным спредом на нашем рынке отсутствует хорошая (в плане ликвидности, торгуемости) пара инструментов. Не знаю, почему у нас нет инструмента вроде CFD (контракт на разницу)на индекс РТС, т.е. возможность купить/продать индекс РТС по текущему значению прямо сейчас. В сочетании с фьючерсом это было бы хороший инструмент торговли спредом. Проблемы при сборке синтетического индекса озвучены выше.
Не пробовали ли вы найти какие нибудь другие инструменты, где было бы: ликвидный базовый актив, ликвидный фьючерс на него, хорошие характеристики спреда (большая волатильность в коридоре, сходимость к моменту экспирации)?
Знаю, что вы работаете с СаксоТрейдером. Нет ли там подходящих инструментов для торговли спредом с этими характеристиками?
Да, на ММВБ есть фьючерс на индекс ММВБ, но у каких брокеров он торгуется – я так и не нашел. Да и с ликвидностью там, по-моему не очень. А жаль, т.к. собрать синтетический индекс ММВБ не проблема.
Собрать синтетический индекс РТС из бумаг ММВБ у меня вроде получалось, но характеристики спреда с фьючем не нравятся.. пока работаю с этим.