Блог им. Simix

Расчёт ГО своими руками.

    • 25 октября 2013, 13:15
    • |
    • Simix
  • Еще
                При данном исследовании было потрачено немало труда, поэтому ссылка на автора при перепечатке обязательна. © Simix.
                Сразу скажу что расчёт ГО тема скользкая, т.к. представляет собой величину умозрительную — риск. Есть люди, которые прыгают с парашютом для развлечения, а я считаю что этот риск слишком велик чтобы прыгать без необходимости. То есть риск зависит от того, кто смотрит.  Если бы мы все знали реальные риски той или иной ситуации, то была бы не жизнь, а красота. Поэтому ровно такое же ГО как в QUIKе вы не получите никаким оффлайновым алгоритмом. Биржа имеет насчёт ГО свои взгляды, собственные поправочные коэффициенты и собственный модуль, который работает только с подключением к бирже.
Но посчитать ГО в оффлайне всё-таки можно.
Чтобы как-то ограничить и описать риск  количественно, биржа вводит ряд предположений и условий, а также приводит открытую методику которыми мы и воспользуемся:


 
1. Планки. Верхняя планка и нижняя планка определяют коридор изменения цены в рамках одной сессии. Тем самым биржа ограничивает риск просто физически, волевым решением. Это очень хорошо. Значения планок можно узнать на сайте биржи для данного Базового Актива (БА).
Верхний лимит 154 550
Нижний лимит 143 370
http://moex.com/ru/contract.aspx?code=RTS-12.13
Обозначим эти значения H и L. А максимальный сессионный ход базового актива обозначим D= H-L. Запомните эти буквы, они нам пригодятся.
Расчёт ГО своими руками.
2. Размером необходимого ГО считается количество денег, которое должно быть на счету, чтобы в самом худшем случае ликвидировать позицию в ноль в течение сессии.
3. Чтобы вычислить худшие случаи, мы должны уметь считать профиль нашей позиции P/L. Тогда РТС считает что худшим случаем будет точка максимальной просадки нашего профиля в удвоенном диапазоне хода базового актива: от БА-D до БА+D.
 
4. Для опционно-фьючерсного портфеля есть ещё варианты сценариев — по волатильности. Таким образом нам нужно посчитать профиль 2 раза:
а) Волатильность уменьшилась.
б) Волатильность увеличилась.
РТС предлагает считать ещё случай, когда волатильность осталась неизменной, но я считаю что этот сценарий всегда лежит между а) и б).
Сценарии волатильности
Результатом будет точка максимальной просадки портфеля во всех случаях.
 
Теперь пару-тройку ноу-хау и допущений от автора Simix, то есть от меня.
При перепечатке ссылка на автора обязательна © Simix
1. Мне интересны только портфели, построенные на одном базовом активе, поэтому для портфелей с разными БА надо знать дополнительные коэффициенты корреляции, чтобы можно было правильно суммировать ГО. У биржи есть какие-то соображения на этот счёт, у меня — нет.
2. Если вы посчитаете всё как написано выше, то увидите что точки максимальной просадки не дают правильного результата. На самом деле здесь мы используем небольшой хак:  
ГО дериватива зависит от параметра «Дельта»! Видимо РТС справедливо думает что опцион похож на фьючерс ровно в степени, насколько его дельта близка к единице. А ГО фьючерса мы считать умеем.
Если вы посчитаете ГО для фуча, вы обнаружите чудо:
 
ГОфуч() = D * стоимость_пункта  =  (H-L) * стоимость_пункта
 
Распространяя это правило на проданный опцион получаем:
 
ГОопцион(х,v) = D * стоимость_пункта * ∆(x,v)
Где
 x — это точка максимальной просадки (минимального значения профиля P/L в диапазоне расчётов от БА-D до БА+D )
v — вола данного опциона с учётом сценария
 
Эта функция универсальна и для фуча и для опциона, т.к. дельта фуча = 1. Поэтому её можно применять целиком для портфеля деривативов. Если только вы умеете считать по нему дельту.
Купленный опцион, немного выпадает из этого правила: он наоборот даёт максимальный убыток в точке где дельта стремится к нулю, значит купленные опционы будут учтены именно минимальным значением портфеля. Таким образом комбинируя эти правила берём максимальное ГО из двух случаев.
Вот как это выглятит в железе:
 
D = H-L;
lowPt  = БА — D;
highPt = БА + D;
 
double COptPortfel::scenaryGO(double lowPt, double highPt, time_t tm)
{
  double minVal = INT_MAX;
  double minValBA = 0;
  double step = (highPt-lowPt)/16;
 
  for (double d=lowPt; d<highPt; d+=step)
  {
       double val = calcValue(d, tm); // значение портфеля в точке d
       // — находим где просадка самая большая
       if (val < minVal)
       {
         // minValBA = значение БА в точке макс. просадки
         // minVal = стоимость портфеля в точке макс. просадки
         minValBA = d;  minVal = val;
       }
  }
 // — считаем дельту в точке мин. значения
  // если ГО по дельте меньше ГО по значению, оставляем ГО по значению
  // tm = текущее время
  double deltaGO = -abs(calcDelta(minValBA, tm))*D;
  minVal = min(minVal, deltaGO);
  return minVal;
}
 
Я считаю ГО в терминах максимальной просадки, поэтому все значения ГО должны быть отрицательными. Если максимальная просадка всё-равно выше нуля (вы нашли грааль) то вы переходите в "GOd mode" и ваше ГО=0 $-).
3. Немного о выборе точек расчёта профиля P/L внутри расчётного диапазона: Я беру просто 15 последовательных точек внутри отрезка плюс концы отрезка. РТС советует брать ещё дополнительно точки страйков, т.к. там просадка самая большая особенно близко к экспирации. Но это вы допишите сами, я пока не сделал.
4. Последний штрих — это сценарии волатильности. Сценарий высокой волатильности методом научного тыка был определён как просто умножение всей улыбки на 1.5 (+50%). Соответственно сценарий низкой волатильности — деление всей улыбки на  1.45 (-45%)
 // волатильность понизилась
  Session.kSigma = 1 — 0.45;
  // kSigma — множитель волатильности для всех формул
  dGO = min(dGO, scenaryGO(lowPt, highPt, nowTime));
 
  // волатильность повысилась
  Session.kSigma = 1 + 0.5;
  dGO = min(dGO, scenaryGO(lowPt, highPt, nowTime));
 
Данная методика не даёт точного совпадения с QUIK и option.ru, но неплохо приближена к ним, она использует правильный теоретический фундамент, который совпадает с методикой биржи, а самое главное — со здравым смыслом.
Встроенный в тестер опционных стратегий, особенно динамических стратегий, этот алгоритм позволяет не парить в облаках сказочных доходностей, а чётко даёт представления о рамках реальности, заданных ГО. Не давайте ГО ни в реале ни в бэк-тестинге превысить 2/3 депозита и всё точно будет пучком. Удачи!
 
★139
58 комментариев
всё просто и понятно — спасибо!
Привет! Спасибо. Сейчас попробую посчитать.
avatar
Вау! Спасибо камрад. В мемориз! Бум посмотреть делать.

С большим уважением,

Энергетический дятел.
avatar
сам все ходил вокруг этой темы… но так и не решился заняться вплотную.автор молодец! спасибо большое
avatar
Спасибо!
avatar
«Встроенный в тестер опционных стратегий, особенно динамических стратегий, этот алгоритм позволяет не парить в облаках сказочных доходностей, а чётко даёт представления о рамках реальности, заданных ГО.»

-Верхний лимит/Нижний лимит в истории как брать? Что-то не соображу никак.
avatar
Евгений (jk555), это просто ГО фьючерса
avatar
AlexeyT, Что это значит? Тогда историю ГО фьючерса где взять?
avatar
Евгений (jk555), вернее не ГО фьючерса, а ГО*0,02/$.
сейчас берите 7.5% от цены закрытия, вот Ваш диапазон, а если необходима тонкая настройка, проверяйте дни когда была планка, или те диапазоны когда меняли ГО. можно проверить в quik или в новостях биржи, так Вы определить основные диапазоны времени когда-какое было ГО.
avatar
AlexeyT, 7,5% это что? как изменится ГО при планке? при второй?
avatar
Евгений (jk555), нет, это текущее ГО, оно и есть диапазон изменения БА.
avatar
AlexeyT, это все понятно. Я другой вопрос задал.
avatar
Евгений (jk555), по умолчанию на 50% повышают каждый раз при планках,
но по решению комитета, могут как захотят.
avatar
Евгений (jk555),

ГО увеличится в соответствии с правилами клиринга (на 50% сейчас).
avatar
Edyatel, AlexeyT, спасибо.
avatar
Евгений (jk555), ftp://ftp.rts.ru/pub/FORTS/pubstat/, файлы f07.dbf, столбец DEPOSIT.
avatar
Евгений (jk555), Вот проблема что пока никак. Но нам то нужен собственно ширина диапазона, а не сами значения. давно эту тему наблюдаю и за несколько лет видно что диапазон был в пределах 12000-10000 пт. Конечно есть еще праздники и удары в планку когда увеличивают этот диапазон. это надо как то специально учитывать, частные случаи.
avatar
Simix, Тема расчета ГО интересна только в эти моменты, т.е. когда ГО поднимают. А так и опыта достаточно, чтобы понять как ведет себя ГО позиции при движении БА. Как по правилам биржа диапазон меняет? Не нашел конкретики нигде.
avatar
Евгений (jk555), вот же
moex.com/a1463
avatar
Упрощая все формулы, словесно, правильно ли я понял, что ГО опционной позиции, есть:
произведение ГО фьючерса на ту дельту (от цены БА и вол) при которой профиль позиции в диапазоне между планками минимален (при самом худшем случае в т.ч. при 3 сценариях симметричного пропорционального сдвига улыбок, вниз на -45%, текущий, и +45%)
avatar
AlexeyT, а откуда взялась цифра 45%?
avatar
dvoris, это simix придумал (вниз -45, вверх +50%)
это я опечатался
avatar
dvoris, если ее нужно брать онлайн и есть Плаза, то поток FORTS_INFO_REPL, таблица virtual_futures_params, поле volat_range. Для RTS-12.13 сейчас транслирует 35%. Максимальное значение, которое видел у этого параметра: 50%.
avatar
Gusan, ценное замечание, спасибо.
Евгений (jk555), вернее не ГО фьючерса, а ГО*0,02/$
avatar
а что, просто в таблице не глянуть конечный результат ГО ??
Сергей Терлецкий (Graffhunter), Вся эта замута для тестинга стратегий по истории. ГО для всего портфеля сразу. Если у вас есть какие то дополнительные исторические данные, то конечно их надо использовать. Для текущих торгов конечно кое какое ГО можно подбирать готовое, на бирже есть таблицы.
avatar
извиняюсь, счас немного занят
если будут ещё вопросы, постараюсь ответить в Вс вечером, пишите сюда
avatar
Simix, а у меня тут гениальная идея, если все зависит от профиля и от дельты, ну и от вол, почему бы не перейти только к грекам.
дельте, веге, гамме, ванне, вомме.
Нам нужен экстремум по PnL дифференцируем, приравниваем дельту-гамму, определеем S, ну а потом изменения по грекам, через дельту и умножаем на ГО.
Все равно ведь это примерно, а с греками, там наверно посокращается многое, так что может будет даже удобнее.
avatar
AlexeyT, гениальная идея отметается, это подобие SPAN впрочем как и у Вас, это я уже все реализовал.
avatar
благодарю за проделанную работу. по сдвигу фьюча в пределах лимитов — понятно и очевидно. вопрос про 45% (этого значения в документах биржи нет) — подбирали?
avatar
Проводили анализ насколько методика расходится с оценками ГО биржей?

Option.ru не показатель, у них оценка ГО тоже приблизительная, я сравнивал их оценку с биржевой и получал разбежность в разы больше заявленных 5%.
avatar
Да, посмотрел еще раз, Вы просто реализовали SPAN, только Вы аналитически определяете минимум PnL (гамма у Вас внутри сидит), и потом через дельту считаете ГО, в SPANе тоже самое, только через суперпозицию дельты, гаммы и веги изменения профиля в 16 сценариях. Вопрос только в подборе изменения сдвига БА и сдвига волатильностей.
avatar
можно на ftp биржи историю покопать, там есть в том числе и данные по ГО на каждый день,
кто парсить умеет — автоматизирует
avatar
ALTER, проблема не в определении ГО по отдельному опциону, проблема, — как найти ГО для опционной комбинации.
avatar
У вас небольшая ошибка в логике. Если посчитать ГО фьючерса как максимальный убыток от центра до наихудшей точки (нижней планки в случае купленного), то максимальный риск окажется равным половине биржевого ГО, поскольку все ГО описывает изменение от верхней планки до нижней, а текущий убыток вы считатете от текущей цены (то есть, середины) до нижней планки.

Поэтому реально при расчетах используется диапазон от двух планок вниз до двух планок вверх. То есть, при ГО 7.5% вам нужно отложить 7.5% вниз и 7.5% вверх. Тогда максимальная потеря по фьючерсу от текущей точки до наихудшей на исследуемом диапазоне как раз составит 7.5%.

Насколько мн известно, сценарных точек всего используется 7: центр, описанные 2 границы и каждый отрезок вниз и вверх делится на 3 равные части (то есть, еще по 2 точки на каждой половинке).
Никаких поправок с умножением на дельту биржа не делает, иначе для дельта-нейтральной позиции у вас получатся нулевые риски.

Также биржа не производит никакого сальдирования между разными базовыми активами. То есть, ГО по позициям в фьючерсах и опционах на Сбербанк, Газпром и индекс РТС просто равно сумме ГО по каждому базовому активу.
avatar
Андрей Агапов, да все верно, я тоже проверил по 7.5% в каждую сторону нужно отходить, но с дельтой все верно, дельта нейтральная она только в 1 момент на границах она уже не дельта нейтральная, также еще гамма вносит свою лепту, так что simix сделал все по SPAN, только с диапазон ошибся (из-за этого ему так сильно пришлось волатильность подгонять, 50% это слишком много). По моим данным для моего случая надо 3% смещения задавать, то есть около 15% от волы ЦС. но опять же возможно что это и подгонка. так как не факт что на фортсе так считается (на срочке ММВБ да, так считалось, а у фортса свои ноу-хау)
avatar
AlexeyT, Как я понял основная цель такого грубого расчета в том, чтобы не вляпаться на росте ГО. Именно поэтому такие границы по цене и воле. Биржа может и считает по другому. Но какая будет вола после планки или двух, и расширения диапазона?
avatar
Евгений (jk555), не важно какая вола будет на планке, если интересует что будет с ГО портфеля на планке, то полутократное его увеличение и будет, так же как и на фьючерс.
avatar
AlexeyT, чет у меня последний раз на планке ГО выросло на портфель в 2,5 раза.
avatar
Евгений (jk555), хотя да, там сильнее вырастает, вола растет
avatar
Андрей Агапов, В логике нет ошибки. Максимальный убыток это и есть диапазон, т.е. те самые 7,5%. Все так и написано. БА-D. D=H-L.
И с дельтой — считается не прибыль/убыток по профилю, а дельта. Далее по формуле ГОопцион(х,v) = D * стоимость_пункта * ∆(x,v).
Т.е. максимальный убыток измеряется в эквиваленте фьючерса в любой момент времени.
avatar
Евгений (jk555), есть ошибка, рассмотрите портфель состоящий только из фьючерсов или из опционов глубоко в деньгах (у которых маленькая вега), и увидите что по схеме автора ГО будет в 2 раза меньше (т.к. у него основной вклад в изменение ГО дает волатильность, которая аж на 50% больше-меньше, что не совсем правильно, т.к. это подгонка под частный случай)
avatar
AlexeyT, Если смотреть портфель из фьючерса, то правильно считает. Если опцион глубого в деньгах, то считает равное ГО фьючерсу, т.к. дельта равна 1. Нет никакого в 2 раза меньше.
avatar
Евгений (jk555), хорошо, проверьте какое будет ГО у портфеля (все декабрь):
Путы:
110:48
130:-115
Коллы:
150:-73
160:61
165:24.

В случае автора, физического смысла в определении ГО нет, просто перемасштабируется график дельты в ГО раз, и определяется худший случай в узком диапазоне, это недоVAR получается, несоразмерные величины. ГО фиксированное, а дельту берете на другом смещении от БА.
avatar
AlexeyT, 265000 ГО до первой планки. Это если поднять волу до 50 и посмотреть профиль на option.ru. 213600 ГО показывает option.ru. Дельта на второй планке 28, ГО Получается 200000.
ГОопцион(х,v) = D * стоимость_пункта * ∆(x,v)
D=148950*7.5%=11171*0.6375*28=199402

А если волу поднять до 100% то дельта будет 31. ГО вырастет на 21000 и будет 220000.

Какое сейчас реальное ГО биржи за эту позицию? Наверно в диапазоне 200-220 тысяч?

В чем вопрос то?
avatar
Евгений (jk555), 265 000! при условии расчета по методике автора, и Вам не кажется странным что ГО становится еще меньше на 2 планке. Вопрос в том, что если пользоваться только методикой автора (и не смотреть на опцион, ру и прочие ресурсы), то получается оценка в 265 000. на 30% больше реальной. если пользоваться классическим SPAN пусть даже через греки, то пока точное попадание, дальше посмотрим.
avatar
AlexeyT, Нет. Я же написал ГО по профилю 265, а по дельте 200. Все в рамках. Но это не главное. После того, как я прикрутил расчет ГО (рика) к тестеру, у меня появилась идея управления позицией, и вариант ухода от рисков отличный. Пока предварительные тесты показывают, что работает. Погоняю еще потом напишу пост. В любом случе автору спасибо огромное. Я читал методу биржи, и дано хотел написать, но когда так «разжевано» все проще и быстрее получается. :)
avatar
Евгений (jk555), пока работает.., когда минимум на планках (при продажах) (так как PnL и считается), а вот если минимум будет не на планках (между ними), то ГО будет видимо завышенное, т.к. ГО так и будет 7 000 р, а смещение по БА будет меньше, а учитывая еще и сдвиги по волатильностям такие огромные, ГО будет оч. большое (несоразмерное). Поэтому особое внимание обратите на такие портфели (покупки, гамма +)
avatar
AlexeyT, Да, спасибо. У меня есть привычка все перепроверять по несколько раз и есть понимание реальности. :) Ну а завышенное ГО при тестировании это лучше чем заниженное.
avatar
Евгений (jk555),
тут ведь штука в чем: если вы начнете рассчитывать D=H-L в случае с купленным опционом, то у вас запросто возникнет ситуация, когда риски превышают стоимость этого опциона (поскольку наибольшая возможная цена этого опционам между планками H может быть очень высокой — во много раз текущей стоимости опциона). А это не есть здорово и вызывает праведный гнев участников торгов.

Поэтому при расчете рисков обязательно искать самый плохой сценарий, отложенный от текущей точки, а не максимум минус минимум возможной стоимости позиции между планками. Что биржа и делает.
avatar
Андрей Агапов, Риск купленного опциона в деньгах превышает риск по фьючу только на размер ликвидности в стакане. Разве не так? Биржа это учитывает, т.к. она эту ликвидность видит и спреды онлайн видит. Чтобы это сделать в истории, надо ещё как минимум знать истории стаканов, а как максимум — методику учёта спреда в стакане. (т.к. ГО — это ликвидационная стоимость портфеля при худшем сценарии)
avatar
Simix, ГО по маржируемому опциону не может быть больше ГО по фьючерсу. Но, если честно, я не особо понял, в чем ваш вопрос.

Я писал от общей парадигме расчета рисков позиции. И опцион может быть вовсе не только в деньгах, но и без денег. В частности, то, о чем я писал выше, это что по купленному безденежному опциону колл ценой 50 пунктов как-то негоже брать 500 пунктов залогов только из-за того, что на правом риск-лимите он будет стоить 500 пунктов.
avatar
тэг нужно поставить просто ", опционы," в запятых, а то фильтр не работает так
avatar
Евгений (jk555), Сделал +тег «опционы»
avatar
Я прочитал комментарии и пока отвечу на главное замечание: завышение ГО в ряде случаев.
Я много раз подступался к методике биржи, но мне показалось сделать в точности как они — дело для меня неподьёмное. Считать риски по каждому активу, а затем суммировать с учётом спредов, ликвидности, минимальным риском проданного опциона и т.п. Я понял что за разумное время я этого не сделаю, поэтому действительно, я почитал различные методики SPAN, VAR, фортс и попробовал сделать что-то похожее по духу, но более доступное для реализации.
И чтобы можно было ЭТО применять на практике, я решил что пусть лучше ГО будет завышено, чем занижено.
Удивительно что и подгонять ничего не пришлось. Всё получилось очень естественно. Я ещё буду проводить тесты совпадений на реальных портфелях и позже опубликую результаты. Пока могу сразу сказать что на ближних страйках ГО у меня завышается, на дальних оно равно бирже. Это связано с тем что биржа учитывает «минимальный риск проданного опциона» отдельно по опционам, а я считаю пока весь портфель сразу и вынужден сделать этот перекос.
По волатильности:
А почему вам кажется что +50% по воле — это очень круто?
Смотрим на индекс RTSVX. 18 марта 2013г. Low=18,85, High=25,85. Это +37% просто день на вскидку, лень искать уверен что есть и +50%. Что было в авг 2011 я уж не говорю. Падает волатильность медленнее, поэтому взято -45% или даже -40% (буду ещё перепроверять).
Да согласен, методика немного сырая, но раз уж я обещал Евгению что напишу — выложил пока то что есть. Пока что с этим можно работать, потому что тестер на истории уже готов и вообще без ГО его запускать — только терять время.
avatar
Simix, когда будете еще тестировать (желательно на реальных портфелях), можете присылать портфели (декабрьские) (страйки (желательно путы от 115 до 140, колы от 145 до 170) и их кол-во), я буду проверять своей методикой, Вам сообщать, так и сравним;)
avatar

теги блога Simix

....все тэги



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