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

Рис 1. Разложение рядов.
Теперь, заметим, во-первых, тем что, дисперсия исходного ряда больше суммы дисперсий выборок:
В предположении, что эти значения с увеличением ряда сходятся (для специального вида распределения), представим базовое значение 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
7 Responses to 'Разбиение волатильности'
on May 16th, 2006 at 11:14 pm
Спасибо за индикатор
а как такая идея- сделать адаптивный период
on May 18th, 2006 at 9:53 pm
Пожалуйста.
А что значит адаптивный, верней к чему этот период должен быть адаптирован?
on July 22nd, 2008 at 3:17 pm
Да уж Мне кажется в данном сообщении нет никакой логики
on July 25th, 2008 at 2:51 pm
Да, интернет - он не маленький, если и такое можно найти
on October 10th, 2008 at 11:13 am
Разбиение волатильности
on November 7th, 2008 at 6:05 pm
Да будет свет
on December 1st, 2008 at 9:04 pm
Ray Charles