Simix
Simix личный блог
25 октября 2013, 13:15

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

                При данном исследовании было потрачено немало труда, поэтому ссылка на автора при перепечатке обязательна. © 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 депозита и всё точно будет пучком. Удачи!
 
58 Комментариев
  • Александр Шадрин
    25 октября 2013, 13:20
    всё просто и понятно — спасибо!
  • jk555
    25 октября 2013, 13:42
    Привет! Спасибо. Сейчас попробую посчитать.
  • Edyatel
    25 октября 2013, 13:47
    Вау! Спасибо камрад. В мемориз! Бум посмотреть делать.

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

    Энергетический дятел.
  • S-L is SCKS
    25 октября 2013, 13:47
    сам все ходил вокруг этой темы… но так и не решился заняться вплотную.автор молодец! спасибо большое
  • ProfFit
    25 октября 2013, 13:49
    Спасибо!
  • jk555
    25 октября 2013, 13:57
    «Встроенный в тестер опционных стратегий, особенно динамических стратегий, этот алгоритм позволяет не парить в облаках сказочных доходностей, а чётко даёт представления о рамках реальности, заданных ГО.»

    -Верхний лимит/Нижний лимит в истории как брать? Что-то не соображу никак.
    • AlexeyTikhonov
      25 октября 2013, 14:10
      Евгений (jk555), это просто ГО фьючерса
      • jk555
        25 октября 2013, 14:21
        AlexeyT, Что это значит? Тогда историю ГО фьючерса где взять?
        • AlexeyTikhonov
          25 октября 2013, 14:33
          Евгений (jk555), вернее не ГО фьючерса, а ГО*0,02/$.
          сейчас берите 7.5% от цены закрытия, вот Ваш диапазон, а если необходима тонкая настройка, проверяйте дни когда была планка, или те диапазоны когда меняли ГО. можно проверить в quik или в новостях биржи, так Вы определить основные диапазоны времени когда-какое было ГО.
          • jk555
            25 октября 2013, 14:37
            AlexeyT, 7,5% это что? как изменится ГО при планке? при второй?
            • AlexeyTikhonov
              25 октября 2013, 14:40
              Евгений (jk555), нет, это текущее ГО, оно и есть диапазон изменения БА.
              • jk555
                25 октября 2013, 14:44
                AlexeyT, это все понятно. Я другой вопрос задал.
                • AlexeyTikhonov
                  25 октября 2013, 14:54
                  Евгений (jk555), по умолчанию на 50% повышают каждый раз при планках,
                  но по решению комитета, могут как захотят.
            • Edyatel
              25 октября 2013, 14:53
              Евгений (jk555),

              ГО увеличится в соответствии с правилами клиринга (на 50% сейчас).
              • jk555
                25 октября 2013, 15:02
                Edyatel, AlexeyT, спасибо.
        • Кирилл Браулов
          31 октября 2013, 20:46
          Евгений (jk555), ftp://ftp.rts.ru/pub/FORTS/pubstat/, файлы f07.dbf, столбец DEPOSIT.
      • jk555
        25 октября 2013, 14:20
        Simix, Тема расчета ГО интересна только в эти моменты, т.е. когда ГО поднимают. А так и опыта достаточно, чтобы понять как ведет себя ГО позиции при движении БА. Как по правилам биржа диапазон меняет? Не нашел конкретики нигде.
    • AlexeyTikhonov
      25 октября 2013, 14:14
      Упрощая все формулы, словесно, правильно ли я понял, что ГО опционной позиции, есть:
      произведение ГО фьючерса на ту дельту (от цены БА и вол) при которой профиль позиции в диапазоне между планками минимален (при самом худшем случае в т.ч. при 3 сценариях симметричного пропорционального сдвига улыбок, вниз на -45%, текущий, и +45%)
      • dvoris
        25 октября 2013, 14:45
        AlexeyT, а откуда взялась цифра 45%?
        • AlexeyTikhonov
          25 октября 2013, 14:53
          dvoris, это simix придумал (вниз -45, вверх +50%)
          это я опечатался
        • Кирилл Браулов
          31 октября 2013, 20:30
          dvoris, если ее нужно брать онлайн и есть Плаза, то поток FORTS_INFO_REPL, таблица virtual_futures_params, поле volat_range. Для RTS-12.13 сейчас транслирует 35%. Максимальное значение, которое видел у этого параметра: 50%.
    • AlexeyTikhonov
      25 октября 2013, 14:16
      Евгений (jk555), вернее не ГО фьючерса, а ГО*0,02/$
  • а что, просто в таблице не глянуть конечный результат ГО ??
    • AlexeyTikhonov
      25 октября 2013, 14:37
      Simix, а у меня тут гениальная идея, если все зависит от профиля и от дельты, ну и от вол, почему бы не перейти только к грекам.
      дельте, веге, гамме, ванне, вомме.
      Нам нужен экстремум по PnL дифференцируем, приравниваем дельту-гамму, определеем S, ну а потом изменения по грекам, через дельту и умножаем на ГО.
      Все равно ведь это примерно, а с греками, там наверно посокращается многое, так что может будет даже удобнее.
      • AlexeyTikhonov
        25 октября 2013, 15:34
        AlexeyT, гениальная идея отметается, это подобие SPAN впрочем как и у Вас, это я уже все реализовал.
  • dvoris
    25 октября 2013, 14:55
    благодарю за проделанную работу. по сдвигу фьюча в пределах лимитов — понятно и очевидно. вопрос про 45% (этого значения в документах биржи нет) — подбирали?
  • Udgin
    25 октября 2013, 15:04
    Проводили анализ насколько методика расходится с оценками ГО биржей?

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

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

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

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

            В случае автора, физического смысла в определении ГО нет, просто перемасштабируется график дельты в ГО раз, и определяется худший случай в узком диапазоне, это недоVAR получается, несоразмерные величины. ГО фиксированное, а дельту берете на другом смещении от БА.
            • jk555
              26 октября 2013, 20:01
              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 тысяч?

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

        Поэтому при расчете рисков обязательно искать самый плохой сценарий, отложенный от текущей точки, а не максимум минус минимум возможной стоимости позиции между планками. Что биржа и делает.
          • Андрей Агапов
            28 октября 2013, 18:49
            Simix, ГО по маржируемому опциону не может быть больше ГО по фьючерсу. Но, если честно, я не особо понял, в чем ваш вопрос.

            Я писал от общей парадигме расчета рисков позиции. И опцион может быть вовсе не только в деньгах, но и без денег. В частности, то, о чем я писал выше, это что по купленному безденежному опциону колл ценой 50 пунктов как-то негоже брать 500 пунктов залогов только из-за того, что на правом риск-лимите он будет стоить 500 пунктов.
  • jk555
    25 октября 2013, 23:15
    тэг нужно поставить просто ", опционы," в запятых, а то фильтр не работает так
    • AlexeyTikhonov
      28 октября 2013, 13:23
      Simix, когда будете еще тестировать (желательно на реальных портфелях), можете присылать портфели (декабрьские) (страйки (желательно путы от 115 до 140, колы от 145 до 170) и их кол-во), я буду проверять своей методикой, Вам сообщать, так и сравним;)

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн