~Russian Bear’Z Blog~



Разбиение волатильности

В продолжение статьи Оценка волатильности, по просьбе читателей, привожу пример разбиения волатильности на составляющие движения вверх и вниз. Это полезно для оценки исторических значений для разных опционов пут и колл. Суть метода в следующем: имеющейся ряд Ci ценовых приращений, мы разбиваем на две непересекающиеся выборки. Например, это можно сделать, выбрав дни с Ui белыми и Di чёрными свечами. Очевидна такая выборка будет отвечать требованиям по корреляции.

Продолжение:

Рзбиение ряда
Рис 1. Разложение рядов.

Теперь, заметим, во-первых, тем что, дисперсия исходного ряда больше суммы дисперсий выборок:

D(C)>D(U)+D(D),
и во вторых, меньше суммы квадратов математических ожиданий обоих выборок:
D(C)<E2(U)+E2(D),

В предположении, что эти значения с увеличением ряда сходятся (для специального вида распределения), представим базовое значение GARCH модели как среднее, между дисперсией и квадратом математического ожидания:

Dg(U)=E(U-2E(U))2,
Dg(D)=E(D-2E(D))2
D(C) ~ Dg(U)+ Dg(D)

Остальные значения модели, определяются на основании регресси из базового таким же образом как и в симметричном случае. Ниже на рисунке хорошо заметно, что пересечение всех индикаторов происходит в одной точке:

Базовые значения GARCH-модели
Рис. 2. Индикатор базовых значений GARCH-модели (ARCH)

Код индикатора GARCH-волатильность вверх:

{|||||||||||||||||||||||||||||||||||||||||||||||||||||
~ GARCH Volatility Indicator
~ EasyLanguage code for Omega TradeStation
~ whiteline Group Copyright (c) 2004
|||||||||||||||||||||||||||||||||||||||||||||||||||||}
Input
period(numeric);
var:
d1(0.3),
d2(0.3),
d3(0.2),
d4(0.1),
d5(0.1),
r1(0.3),
r2(0.3),
r3(0.2),
r4(0.1),
r5(0.1),
ii(0),
upBase(0),
Diff(0),
upDiff(0),
upAvgDiff(0),
upARCH(0),
upGARCH(0);
{ Hystorical Volatility }
Diff = log(c/c[1]);
if
    Diff > 0
then
    upDiff = Diff
else
    upDiff = 0;
if
    Highest(upDiff, period) > Lowest(upDiff, period)
then
    upAvgDiff = Average(upDiff, period)
else
    upAvgDiff = 0;
upBase = 0;
for ii = 0 to period-1
begin
    upBase = upBase + 365*Square(upDiff[ii] - 2*upAvgDiff)/period;
end;
upARCH = 0.5*upBase + 0.5*365*(
    (Square(upDiff[0])+Square(upDiff[1]))*d1 +
    (Square(upDiff[2])+Square(upDiff[3]))*d2 +
    (Square(upDiff[4])+Square(upDiff[5]))*d3 +
    (Square(upDiff[6])+Square(upDiff[7]))*d4 +
    (Square(upDiff[8])+Square(upDiff[9]))*d5
)/2;
upGARCH = 0.4*upARCH + 0.6*(
    (upGARCH[1]+upGARCH[2])*r1 +
    (upGARCH[3]+upGARCH[4])*r2 +
    (upGARCH[5]+upGARCH[6])*r3 +
    (upGARCH[7]+upGARCH[8])*r4 +
    (upGARCH[9]+upGARCH[10])*r5
)/2;
$Vola_GARCH_up = SquareRoot(2*upGARCH);

Статьи по теме:

Оценка волатильности
Тестирование опционных стратегий в Omega Tradestation

Subscribe to comments with RSS or TrackBack to 'Разбиение волатильности'.

7 Responses to 'Разбиение волатильности'

  1. Alex said,

    on May 16th, 2006 at 11:14 pm

    Спасибо за индикатор
    а как такая идея- сделать адаптивный период

  2. whiteline said,

    on May 18th, 2006 at 9:53 pm

    Пожалуйста.
    А что значит адаптивный, верней к чему этот период должен быть адаптирован?


  3. on July 22nd, 2008 at 3:17 pm

    Да уж Мне кажется в данном сообщении нет никакой логики :)

  4. Димыч said,

    on July 25th, 2008 at 2:51 pm

    Да, интернет - он не маленький, если и такое можно найти ;)

  5. alexandra said,

    on October 10th, 2008 at 11:13 am

    Разбиение волатильности

  6. valik said,

    on November 7th, 2008 at 6:05 pm

    Да будет свет

  7. roben said,

    on December 1st, 2008 at 9:04 pm

    Ray Charles

Leave a Reply