Блог им. OM77

Бесплатный билет на Первый МОК от QUANT-lab!

Тимофей Мартынов выделил мне бесплатный билет на первую Московскую Опционную Конференцию, которая пройдет 21 марта в Москве (подробности здесь), и я хочу его подарить тому, кто первый даст правильный ответ на вопрос в конце этого топика.

Сергей Седов (ОЛМА) и я выступим с докладом о фьючерсе на Индекс волатильности российского рынка RVI. Соответственно, вопрос мой будет об этом фьючерсе. Но об этом чуть позже, сейчас немного спойлеров нашего выступления.

Что такое индекс RVI — я довольно подробно описал в своем посте на quant-lab. Там же можно найти статьи о фьючерсе на RVI: часть 1, часть 2.

Из указанных выше ресурсов и информации c сайта биржи, можно понять, что компоненты индекса RVI — это две опционные серии на RTS. На момент написания статьи — это апрельская и майская серии. Их улыбки волатильности выглядят следующим образом:

Бесплатный билет на Первый МОК от QUANT-lab!

Бесплатный билет на Первый МОК от QUANT-lab! 

На рисунках выше обратите внимание на красные графики — это «китайская» модель волатильности. Кому интересно, как она работает — читайте здесь.

Используя эту модель, можно сделать несколько сценариев поведения волатильности интересующих опционных серий и рассчитать соответствующее им значение индекса RVI (ГО фьючерса и прочие параметры). Для удобства вычислительную часть можно оформить в виде веб-приложения и разместить на сайте Московской Биржи. Сергей Седов уже провел ряд переговоров с биржей и получил предварительное согласие, а я сделал прототип калькулятора RVI, который мы представим на МОК.

Пока он доступен только для внутреннего пользования (к сожалению). В настоящий момент ведется его доработка и отладка.

Внешне он выглядит так:

Бесплатный билет на Первый МОК от QUANT-lab! 

Слева задаются параметры опционов, в основном окне мы получаем значение RVI и его компонентов, а также графики улыбок. Для примера я использовал текущие актуальные параметры модели (см. рисунки выше). Рассчетное значение RVI — 49.68, приблизительно совпадает с транслируемым биржей — 49.45.

ВНИМАНИЕ! Вопрос:

Каким образом оптимально захеджировать длинную позицию по фьючерсу на индекс RVI (100 контрактов) с помощью опционов и фьючерсов на RTS?

Ответ нужно представить в виде: хеджирующий набор + краткое описание логики.
Автор первого правильного и/или самого оригинального способа получит бесплатный билет.
Ответы принимаются в виде комментариев к данному топику до 23:59:59 2015-03-12.

Победителя выберет жюри: Сергей Седов (ОЛМА), Николай Труничкин (Московская Биржа) и Олег Мубаракшин (ITinvest, QUANT-lab).

Желаю удачи!
Комментарии по теме также приветствуются.
★13
82 комментария
42!
avatar
рисуешь какую то позу с вегой минус 500 тыщ вот ты 100 контрактов РВИ и захеджил :)
avatar
astic, вариант, но… одно большое мохнатое «но» притаилось за углом
вэрианс своп
avatar
но это что вега позы не постоянна и расти по модулю будет к экпирашке но тут надо динамически подходить к этому вопросу :)
avatar
Можно попробовать с помощью календарного спрэда. Ближний покупаем, дальний продаем + немного рехеджируем с помощью фьюча
avatar
pterodactylll, при этом дельту можно сделать слабо положительной, т.к основной рост волатильности приходится на снижение
avatar
«оптимально»? может просто — кто придумает метод как хеджировать этот индекс при том, что вторая серия абсолютно неликвидна? :-)
Каленкович Алексей (enki), дядя Леша, ай-ай-ай))
Oleg Mubarakshin ~ Quant-lab, а что слово неликвидна ругательное и его употреблять нельзя?
avatar
продай колы и путы и всё, билет халявный можешь оставить себе, у меня уже есть
avatar
Ну я бы так делал: Допустим залили тебе 100 лотов этого викса. Нужно быстро перекрыться. Но трудность в том, что там много не ликвида и прямо быстро «по рынку» взять не выйдет ничего. Поэтому надо так:
1) посмотреть в стаканы и условно перекрыть тем, что стоит по теоретическим ценам. Это будут скорее всего опционы центрального страйка ближней серии. Мы получим кривой хедж, реплицируя викс как бы только центральным страйком ближней серии.
2) Потом нужно активно начать котировать дальнюю сериию и ближнюю там где нужно и перевести «кривой хедж» в нормальный, как бы перераспределяя позу свою от «много на центральном страйке ближней серии» к «равномерная репликация викса».
Минусы: конечно будет больше сделок по опционам.
Риск: Если произойдет быстрое расхождение волатильностей серий или искривиться форма улыбки.
avatar
robot_TestV1.1, сколько опционов? критерий объема хеджа?
Oleg Mubarakshin ~ Quant-lab, ну смотришь производную викса по смещению улыбки в вертикальной плоскости, считая что серии смещаются синхронно. Далее берешь столько опционов которые по теорценам стоят, чтобы производная этой позиции была как у викса требуемого. Ты получил «кривой хедж», который не учитывает перекосы улыбки и прочее.
avatar
robot_TestV1.1, что такое «равномерная репликация викса» это и был вопрос я так понимаю :)
avatar
Nikita Masyukov, нет, я думал, что это всем и так ясно «как прекрыть тупо викс если ликвидные опционы всех серий». И вопрос в том, что делать, если серии не ликвидны, а перекрыть надо!
avatar
robot_TestV1.1, ну так и это очевидно, брать то что дают, и потихоньку выравнивать
avatar
А в вопросе слово «оптимально» подразумевает «корректно» или «просто»?
avatar
Nikita Masyukov, оптимально = компромисс между корректно и просто )
Oleg Mubarakshin ~ Quant-lab, я 21 все равно не в Москве, так что отвечать пока не буду. Но после закрытия конкурса дам свой ответ, если его еще кто-то не даст до этого.
avatar
Nikita Masyukov, только в личку плиз и на ФБ )) хо-хо-хо
Oleg Mubarakshin ~ Quant-lab, и с ошибкой)
avatar
Так как требуется первый правильный ответ, конкретные формулы приводить не буду, но мой подход такой:

1.Мы знаем что 1% пункт RVI равен 100$, следовательно 100 контрактов это 10 000 $, переходим от $ к пунктам — это 500 000 пунктов вег надо захеджировать у искомого портфеля\
2. Зная что вега портфеля есть суперпозиция его вег, элиминируем вегу.
3. Это можно сделать множеством способов, так как необходимо решить систему уравнений (сумма произведения кол-ва опционов разных страйков на их веги), но для уменьшения влияния курса доллара, влияние улыбки и уменьшения гаммы, рационально это делать использую и коллы и путы обоих! серий по обе! стороны от центрального страйка.
4. Но веги разных серий не тождественны друг другу, следовательно необходимо перевести одну в другую, насколько я помню она взвешивается по корню из срока.
5. Решив данную систему с условием минимизации гаммы мы получим опционный портфель с какой-то дельтой.
6. Ну а дельту убираем фьючерсом ри.
7. Осуществляем частое рехеджирование фьючерсом ри и более редкое опционами (ну или по обстоятельствам — надо на улыбку смотреть конечно)
Ну это что мне сразу в голову пришло, по факту надо конечно тюнить и аджастить.
avatar
AlexeyT, сколько опционов (страйков и сроков) участвует в Вашем хедже? По какой логике выбирается кол-во опционов каждого страйка?
Oleg Mubarakshin ~ Quant-lab, 15 страйков ближней и следующей серии.
avatar
Дмитрий, на билет претендуешь?
Сергей Седов, нет, далеко лететь =)
avatar
Дмитрий, зря. час лёту.
Oleg Mubarakshin ~ Quant-lab, решаем задачу оптимизации в таком виде (слева берем путы, справа колы):


Единственного решения у нее нет (есть «оптимальное»), это же не обратная задача (хеджирование опционного портфеля RVI, у которой единственное решение)
avatar
AlexeyT, это окончательный ответ — в хедже участвует 2 серии — всего 30 опционов?
Oleg Mubarakshin ~ Quant-lab, нет, это максимум, Pi и Ci могут и равняться нулю,
но возможно для полного элиминирования улыбки должны остаться ненулевыми…
avatar
AlexeyT, минус потерял, -50 000 конечно же, и минимизация гаммы по модулю
avatar
олег, shiny? =)
avatar
ibm watson, да
avatar
ubuntu + rstudio-server + shiny = быстро, стабильно, приятно
Oleg Mubarakshin ~ Quant-lab, спасибо кстати за пятничный пост,
благодарю ему я узнал о shiny, и за выходные сделал приложение (не по рынку). Было поражен, насколько удобно и просто (с реактивными немного подумать пришлось) можно сделать веб интерфейс к расчетам, графикам.
avatar
AlexeyT, всегда пож-ста! продвигаем потихоньку R
Oleg Mubarakshin ~ Quant-lab, а вообще не знаете, сколько примерно в России людей знающих R — порядок цифр?
avatar
Oleg Mubarakshin ~ Quant-lab, Олег 2 вопроса по связке:
1. вы котировки с биржи сначала в какую-то базу пишите, а потом из R ее читаете?
2. Учитывая r-studio в ответе (выше), видимо из консоли запускаете, а почему локальный Shiny сервер не используете? или на ходу много чего правите и деплоить на сервер не рационально?
avatar
AlexeyT, маркет дату могу получать тремя путями: 1. из БД (наполняется квиком), 2. из обновляемого excel файла, 3. из БД Oracle (наполняется из шлюза).
Что касается Rstudio. У меня linux сервер, на нем поднят Shiny. В консоли только первичная разработка — все остальное на сервере.
Расшарить могу — уже расшарил, но ссылку пока не дам, т.к. сервер рабочий (не хочу рисковать). Когда все будет отлажено — отдам исходники бирже — пусть они в прод заворачивают.
Oleg Mubarakshin ~ Quant-lab,
1. по ODBC?
2. по DDE?
3. непосредственно из Plaza?
а в основном то у вас какая связка — 3?
и как часто запрашиваете данные из БД?
avatar
AlexeyT, 1. QUIK(ODBC) -> Postgres (стабильная тема оказалась, кстати). 2. SmartX по DDE обновляет excel файл, можно руками туда что-то добавить (удобно, наглядно, как правило моя поза там). 3. Oracle — не моя БД, мне лишь дали доступ.
Данные из БД запрашиваю не часто — надо пересчитать позу, греки, и тп. нажал кнопку, получил дату, рассчитал
Oleg Mubarakshin ~ Quant-lab, понятно, спасибо,
п.2 у меня реализован полностью, почти с тем же самым что и у вас в R (и даже подобие китайской улыбки, к которой я пришел сам еще 3 года назад!;) smart-lab.ru/blog/175461.php
, все это мое переводить в R наверно не стоит, лишнее звено получается;(, ладно придумаю себе еще задание для R:)
avatar
Oleg Mubarakshin ~ Quant-lab, правильно я понял,
что график у вас статичный, нажимаете на кнопку, запускаются события в обсервере — скачка данных из бд, и перерисовка графика?
а почему не повесили таймер в R? или лишних ненужных загрузок не хотите?
avatar
AlexeyT, в shiny есть замечательные слайдеры с автообновлением на это случай shiny.rstudio.com/gallery/sliders.html
Oleg Mubarakshin ~ Quant-lab, про эти я знаю, уже использовал;)
нет я про подтягивание самих свежих данных из бд — оно же по кнопке происходит? или по таймеру?
avatar
AlexeyT, по кнопке, но если нажать на автообновление на слайдере — будет само с заданным интервалом обновляться
Oleg Mubarakshin ~ Quant-lab, а не знаете нет никакого фреймворка — DDE для R?, что б сразу пулять из quik в R, как нибудь, а там уже сгружать в файлы, базы,
а то 1,2 реализация проигрывает моему текущему решению, а в 3 нет необходимости;(
avatar
AlexeyT, есть Package ‘tcltk2’, но никогда не пользовался подобным.
порядок — тысячи

кстати олег, ты вроде собирался устраивать конфу по quant+R, не срослось?

мы 24ого в спб организовываем meetup на тему R в офисе вк, жаль что вы все в мск сидите
avatar
ibm watson, конфа будет. с апреля начнем готовить — from the horse's mouth инфа )
Так выиграл кто? Вот опционщики, все у них в уме, математики оголтелые.
Мой сын, когда в Доту играет и общается с игроками, я тоже ничего не понимаю, о чем они говорят.
avatar
vorona969, ответы принимаются до конца завтрашнего дня
перед тем как «пиарить» этот rvi надо сделать адекватное ГО. А то тут пиз***жа больше, чем сделок — одна и та 5 дней назад была.
avatar
Rotor78, биржа уменьшает шаг цены — позитивное изменение. ГО большое потому что воле ничего не стоит из 30 стать 60
Oleg Mubarakshin ~ Quant-lab, ЛЮДИИИИ, вы поймите, чтобы инструмент торговали нужны трейдеры, а про них с данным ГО забыли на бирже. На нашем рынке самый ликвидный фьюч РТС, и, чтобы хоть както с ним «конкурировать», нужно ГО ниже не на пару процентов, а значительно ниже. BR, ED, GOLD и другие торгуются у нас даже несмотря на западную «конкуренцию» только из-за адекватного и доступного ГО.
avatar
Rotor78, скорее из-за размера самого контракта, где ещё можно одну унцию золота погонять
avatar
Олег, а у RVI есть неттирование с портфелем опционов по ГО (как декларировалось ранее биржей) или нет?
avatar
AlexeyT, нет. Сделают или нет — не знаю. Нетривиальная задачка
Oleg Mubarakshin ~ Quant-lab, да к тому же SPAN привязать и посмотреть, может хоть немного будет перекрывать?
avatar
AlexeyT, делать надо, у биржи видимо ресурсы очень ограничены в этом плане
AlexeyT, спан надо на помойку выкидывать. прикручивать его к такому продукту точно не стоит, только хуже будет всем.
Каленкович Алексей (enki), если умело прикручивать с нормальными массивом изменений (а не с 2), и верхней оценкой по марже, то хуже точно не будет, многие клиринги до сих пор на SPAN и ничего — не развалились
avatar
AlexeyT, не развалилось? у меня как минимум два серьезных эпизода, когда из-за биржевого ГО реальные риски не были закрыты, а биржа предлагала увеличивать риск «потому что тогда ГО упадет». после клирингов ситуация становилась лучше, но суммы которые не получилось зафиксировать просто огромны.
AlexeyT, а какие альтернативы спану используются и где?
avatar
Mr. Bean, к сожалению не знаю, возможно какие-то свои закрытые разработки на основе портфельного маржирования, но концептуально наверно примерно похоже самое — неттирование, матрица рисков, разные сценарии, разные вероятности, разное взвешивание, VAR.
avatar
AlexeyT, а чем спан так плох, вроде же раньше говорили что всяко лучше чем у нас?
avatar
AlexeyT, так понимаю на нашей бирже ГО считается по спану или очень похожему алгоритму
Каленкович Алексей (enki), не совсем так,
на срочке ММВБ был SPAN, на срочке РТС собственная разработка (единое ядро клиринга и торговой системы), и насколько я понимаю она так и осталась, и сейчас вроде как идут работы по отделению клиринга и торговой системы
avatar
Желающие получить билет на первый в истории (!) МОК — пишите ваши ответы — вопрос не такой уж сложный, ссылки на все необходимое я дал в тексте.
Продать 2224 внеденежных опционов страйка 50000 с датой исполнения 15.04.2015
Продать 1838 внеденежных опционов страйка 55000 с датой исполнения 15.04.2015
Продать 1545 внеденежных опционов страйка 60000 с датой исполнения 15.04.2015
Продать 1316 внеденежных опционов страйка 65000 с датой исполнения 15.04.2015
Продать 1135 внеденежных опционов страйка 70000 с датой исполнения 15.04.2015
Продать 989 внеденежных опционов страйка 75000 с датой исполнения 15.04.2015
Продать 869 внеденежных опционов страйка 80000 с датой исполнения 15.04.2015
Продать 770 внеденежных опционов страйка 85000 с датой исполнения 15.04.2015
Продать 687 внеденежных опционов страйка 90000 с датой исполнения 15.04.2015
Продать 616 внеденежных опционов страйка 95000 с датой исполнения 15.04.2015
Продать 556 внеденежных опционов страйка 100000 с датой исполнения 15.04.2015
Продать 504 внеденежных опционов страйка 105000 с датой исполнения 15.04.2015
Продать 460 внеденежных опционов страйка 110000 с датой исполнения 15.04.2015
Продать 421 внеденежных опционов страйка 115000 с датой исполнения 15.04.2015
Продать 386 внеденежных опционов страйка 120000 с датой исполнения 15.04.2015
Продать 231 фьючерс РТС (РТС-6.15)

Сейчас опишу методику следующим комментом
avatar
Во первых, сразу бросается в глаза, что если бы дней до исполнения ближней серии было бы не 34, а 30, то цены с дальней серии роли не играли бы совсем. По этому, предположим, что T1=30/365 а T2=60/365 что сильно облегчает вычисления, хотя и гасит точность. Хотя… даже если их и учитывать, то они будут с очень малым коэффициентом.

Цены на момент расчета (11.03.2015 22:36) взял с сайта МБ.
50000 160
55000 250
60000 390
65000 640
70000 1100
75000 1920
80000 3290
85000 3960
90000 2070
95000 1020
100000 510
105000 270
110000 160
115000 110
120000 80
и фьюч 83500(РТС-6.15)

Считаем в экселе индекс как по методике по ссылке.
Считаем стоимость позы, как ~индекс*6220*100.
Для каждого опца и фьюча подставляем цену на 1 больше, чем в таблице выше, и смотрим, на сколько изменится стоимость позиции в рублях (что-то вроде производной, но не совсем).
С учетом стоимости шага цены находим, сколько инструмента (этого опца или фьюча) надо было иметь, что бы нейтрализовать данный эффект. Тут можно решить задачу целочисленной оптимизиции, но, учитывая допущения, лучше просто округлить до целых.
avatar
Lafert, а почему только одну серию взяли?
avatar
AlexeyT, судя по формуле, одна серия значительно сильнее влияет, чем вторая. По этому, я пренебрег менее значимой, чтобы сократить вычисления и лишние копирования в эксель.
avatar
Лаферт жжет. Пока что это единственная заявк на победу. =)

Может, станете ММ на РВИ?
Тут анонс был биржа ГО хочет по нему в 50 раз снизить… Горизонт — квартал пока что.

Как раз софт сделаете и отладите…
avatar
Lafert, спасибо за ответ! Есть вопрос: не понял про увеличение на 1 пункт цены каждого опциона и фьючерса, прошу пояснить логику.
Oleg Mubarakshin ~ Quant-lab, логика в том, что я представляем стоимость нашей позиции в RVI, как некоторую нелинейную функцию от цен опционов и фьючерсов РТС.

Пусть стоимость позиции в RVI это P_RVI
стоимость позиции-хеджа P_HEDGE.

Пусть цены опцов и фьючей на РТС, которые задействованы в расчете индекса RVI, это p1(t),p2(t),...,pn(t).
Где p1(0),...,p(0) это текущие цены в момент расчета

Тогда P_RVI=f(p1,p2,...,pn).

Ему мы противопоставляем портфель из этих опционов и фьючерсов. Он представляет собой линейную функцию

P_HEDGE=A1*p1+A2*p2+...+An*pn;

Наилучшее, чего мы можем достичь, это добиться совпадения частных производных первого порядка P_RVI и P_HEDGE*-1 при текущих ценах. То есть при небольшом именении любой из цен p1,...,pn изменение стоимости P_RVI должно примерно равняться изменению стоимости P_HEDGE*-1

То есть, для всех i от 1 до n мы должны решить следующее уравнение относительно Ai
d(-P_HEDGE)/d(pi)=-Ai=d(P_RVI)/d(pi) в момент t=0

Так, как искать производную аналитически или численно мне лень, да и вообще, в данном решении полно допусков, и на точность не претендую, то считаем, что
d(P_RVI)/dpi~P_RVI(p1(0),p2(0),...,pi(0)+1,.....,pn(0))-P_RVI(p1(0),p2(0),...,pi(0),.....,pn(0)).

Понятно, что это скорее план решения, чем решение, но идею, думаю, я изложил.
avatar
Решением жюри победителем выбран AlexeyT. Прошу его связаться со мной для уточнения деталей
Oleg Mubarakshin ~ Quant-lab,
Олег, а со мной уже связался Сергей (Седов)
avatar
Хочу отметить также еще два ответа: от Lafert и robot_TestV1.1. Спасибо всем за участие!
Oleg Mubarakshin ~ Quant-lab, ну, теперь бы неплохо выложить и решение авторов задачи.
avatar

теги блога Oleg Mubarakshin ~ Quant-lab

....все тэги



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