Тимофей Мартынов выделил мне бесплатный билет на первую Московскую Опционную Конференцию, которая пройдет 21 марта в Москве (подробности
здесь), и я хочу его подарить тому,
кто первый даст правильный ответ на вопрос в конце этого топика.
Сергей Седов (ОЛМА) и я выступим с докладом о фьючерсе на Индекс волатильности российского рынка RVI. Соответственно, вопрос мой будет об этом фьючерсе. Но об этом чуть позже, сейчас немного спойлеров нашего выступления.
Что такое индекс RVI — я довольно подробно описал в своем
посте на quant-lab. Там же можно найти статьи о фьючерсе на RVI:
часть 1,
часть 2.
Из указанных выше ресурсов и информации c сайта биржи, можно понять, что компоненты индекса RVI — это две опционные серии на RTS. На момент написания статьи — это апрельская и майская серии. Их улыбки волатильности выглядят следующим образом:
На рисунках выше обратите внимание на красные графики — это «китайская» модель волатильности. Кому интересно, как она работает — читайте
здесь.
Используя эту модель, можно сделать несколько сценариев поведения волатильности интересующих опционных серий и рассчитать соответствующее им значение индекса RVI (ГО фьючерса и прочие параметры). Для удобства вычислительную часть можно оформить в виде веб-приложения и разместить на сайте Московской Биржи. Сергей Седов уже провел ряд переговоров с биржей и получил предварительное согласие, а я сделал прототип калькулятора RVI, который мы представим на МОК.
Пока он доступен только для внутреннего пользования (к сожалению). В настоящий момент ведется его доработка и отладка.
Внешне он выглядит так:
Слева задаются параметры опционов, в основном окне мы получаем значение RVI и его компонентов, а также графики улыбок. Для примера я использовал текущие актуальные параметры модели (см. рисунки выше). Рассчетное значение RVI — 49.68, приблизительно совпадает с транслируемым биржей — 49.45.
ВНИМАНИЕ! Вопрос:
Каким образом
оптимально захеджировать длинную позицию по фьючерсу на индекс RVI (100 контрактов) с помощью опционов и фьючерсов на RTS?
Ответ нужно представить в виде:
хеджирующий набор + краткое описание логики.
Автор первого правильного и/или самого оригинального способа получит бесплатный билет.
Ответы принимаются в виде комментариев к данному топику до 23:59:59 2015-03-12.
Победителя выберет жюри: Сергей Седов (ОЛМА), Николай Труничкин (Московская Биржа) и Олег Мубаракшин (ITinvest, QUANT-lab).
Желаю удачи!
Комментарии по теме также приветствуются.
1) посмотреть в стаканы и условно перекрыть тем, что стоит по теоретическим ценам. Это будут скорее всего опционы центрального страйка ближней серии. Мы получим кривой хедж, реплицируя викс как бы только центральным страйком ближней серии.
2) Потом нужно активно начать котировать дальнюю сериию и ближнюю там где нужно и перевести «кривой хедж» в нормальный, как бы перераспределяя позу свою от «много на центральном страйке ближней серии» к «равномерная репликация викса».
Минусы: конечно будет больше сделок по опционам.
Риск: Если произойдет быстрое расхождение волатильностей серий или искривиться форма улыбки.
1.Мы знаем что 1% пункт RVI равен 100$, следовательно 100 контрактов это 10 000 $, переходим от $ к пунктам — это 500 000 пунктов вег надо захеджировать у искомого портфеля\
2. Зная что вега портфеля есть суперпозиция его вег, элиминируем вегу.
3. Это можно сделать множеством способов, так как необходимо решить систему уравнений (сумма произведения кол-ва опционов разных страйков на их веги), но для уменьшения влияния курса доллара, влияние улыбки и уменьшения гаммы, рационально это делать использую и коллы и путы обоих! серий по обе! стороны от центрального страйка.
4. Но веги разных серий не тождественны друг другу, следовательно необходимо перевести одну в другую, насколько я помню она взвешивается по корню из срока.
5. Решив данную систему с условием минимизации гаммы мы получим опционный портфель с какой-то дельтой.
6. Ну а дельту убираем фьючерсом ри.
7. Осуществляем частое рехеджирование фьючерсом ри и более редкое опционами (ну или по обстоятельствам — надо на улыбку смотреть конечно)
Ну это что мне сразу в голову пришло, по факту надо конечно тюнить и аджастить.
Единственного решения у нее нет (есть «оптимальное»), это же не обратная задача (хеджирование опционного портфеля RVI, у которой единственное решение)
но возможно для полного элиминирования улыбки должны остаться ненулевыми…
благодарю ему я узнал о shiny, и за выходные сделал приложение (не по рынку). Было поражен, насколько удобно и просто (с реактивными немного подумать пришлось) можно сделать веб интерфейс к расчетам, графикам.
1. вы котировки с биржи сначала в какую-то базу пишите, а потом из R ее читаете?
2. Учитывая r-studio в ответе (выше), видимо из консоли запускаете, а почему локальный Shiny сервер не используете? или на ходу много чего правите и деплоить на сервер не рационально?
Что касается Rstudio. У меня linux сервер, на нем поднят Shiny. В консоли только первичная разработка — все остальное на сервере.
Расшарить могу — уже расшарил, но ссылку пока не дам, т.к. сервер рабочий (не хочу рисковать). Когда все будет отлажено — отдам исходники бирже — пусть они в прод заворачивают.
1. по ODBC?
2. по DDE?
3. непосредственно из Plaza?
а в основном то у вас какая связка — 3?
и как часто запрашиваете данные из БД?
Данные из БД запрашиваю не часто — надо пересчитать позу, греки, и тп. нажал кнопку, получил дату, рассчитал
п.2 у меня реализован полностью, почти с тем же самым что и у вас в R (и даже подобие китайской улыбки, к которой я пришел сам еще 3 года назад!;) smart-lab.ru/blog/175461.php
, все это мое переводить в R наверно не стоит, лишнее звено получается;(, ладно придумаю себе еще задание для R:)
что график у вас статичный, нажимаете на кнопку, запускаются события в обсервере — скачка данных из бд, и перерисовка графика?
а почему не повесили таймер в R? или лишних ненужных загрузок не хотите?
нет я про подтягивание самих свежих данных из бд — оно же по кнопке происходит? или по таймеру?
а то 1,2 реализация проигрывает моему текущему решению, а в 3 нет необходимости;(
кстати олег, ты вроде собирался устраивать конфу по quant+R, не срослось?
мы 24ого в спб организовываем meetup на тему R в офисе вк, жаль что вы все в мск сидите
Мой сын, когда в Доту играет и общается с игроками, я тоже ничего не понимаю, о чем они говорят.
Продать 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)
Сейчас опишу методику следующим комментом
Цены на момент расчета (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 больше, чем в таблице выше, и смотрим, на сколько изменится стоимость позиции в рублях (что-то вроде производной, но не совсем).
С учетом стоимости шага цены находим, сколько инструмента (этого опца или фьюча) надо было иметь, что бы нейтрализовать данный эффект. Тут можно решить задачу целочисленной оптимизиции, но, учитывая допущения, лучше просто округлить до целых.
Может, станете ММ на РВИ?
Тут анонс был биржа ГО хочет по нему в 50 раз снизить… Горизонт — квартал пока что.
Как раз софт сделаете и отладите…
Пусть стоимость позиции в 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)).
Понятно, что это скорее план решения, чем решение, но идею, думаю, я изложил.
Олег, а со мной уже связался Сергей (Седов)