Блог им. uralpro

Улыбка волатильности. Модель Бейтса

BatesFFT

Продолжение. Начало в моем блоге и на сайте.

В прошлой статье про модель Хестона мы отметили, что она обладет недостатком, который проявляется в неточности определения цен опционов на малых сроках экспирации. Здесь мы рассмотрим модель Бейтса, в которой этот недостаток устранен, и она является одной из лучших аппроксимаций, описывающих поведение цен опционов для разных страйков и периодов до экспирации.

Модель Бейтса относится к моделям стохастической волатильности и определятся следующими уравнениями:

\frac{dS_t}{dt}= r dt+\sqrt{V_t}dW_t^1+dZ_t

dV_t=k(\theta-V_t)dt+\sigma\sqrt{V_t}dW_t^2

Cov(dW_t^1,dW_t^2)=\rho dt

Как видите система уравнений почти идентична хестоновской, с теми же переменными: St, Vt- цена и волатильность базового актива, dW_t^1,dW_t^2 — случайные броуновские процессы с корелляцией, ρ,r,k,θ,σ- параметры модели (r=0 для маржируемых опционов). Разница в появлении слагаемого dZt, которое представляет собой Пуассоновский процесс с интенсивностью λ и лог-нормальным распределением скачков цены, независимым от dW_t^1,dW_t^2. Таким образом модель Бейтса является расширением модели Хестона с добавлением процесса скачков цены, что позволяет более точно воспроизвести реальный процесс приращения цены базового актива.

Если обозначить J размер скачка цены тогда:

\ln(J+1)\sim N(\ln(1+\bar{k})-(1/2)\delta^2,\delta^2), для некоторого k¯, то есть процесс скачков имеет нормальное распределение со средним \ln(1+\bar{k})-(1/2)\delta^2и дисперсией \delta^2.

Тогда логарифимическое приращение цены базового активаX_t=\ln(S_t/S_0)при условии риск-нейтрального подхода можно записать как:

dX_t=(r-\lambda\bar{k}-(1/2)V_t)dt+\sqrt{V_t}dW_t^1+\widetilde{Z_t}

где Zt˜- Пуассоновский процесс с нормальным распределением величины скачков цены.

Для упрощения не буду приводить аналитическую формулу цены колл опциона для модели Бейтса, она схожа с хестоновской, желающие могут посмотреть, например, здесь. Сразу дам листинг вычисления этой цены на C#:

//a-нижний предел интеграла (равен 0)
//b - верхний предел интеграла. Выбирается значение от 100 до 200, в зависимости от нужной точности
//delta - вычисляется грек дельта, который равен значению Р1
double BatesCallGaussLegendre(double S, double K, double T, double r, double kappa, double theta,
                              double sigma, double lambda, double v0, double rho,
                              double a, double b, double muJ, double vJ, ref double delta)
        {
            // Числовое интегрирование
            double[] int1 = new double[32];
            double[] int2 = new double[32];
            double y;
            Complex om;
            Complex i = new Complex(0.0, 1.0);
            Complex Xk = new Complex(K, 0.0);
            
            for (int k = 0; k <= 31; k++)
            {
                y = (a + b) / 2.0 + (b - a) / 2.0 * X[k];
                om = new Complex(y, 0.0);
                int1[k] = W[k] * (Complex.Exp(-i * Complex.Log(Xk) * om) * BatesCF(om - i, S, T, r, 0, v0, theta, rho, kappa, sigma, lambda, muJ, vJ) / (i * om * S)).Real;
                int2[k] = W[k] * (Complex.Exp(-i * Complex.Log(Xk) * om) * BatesCF(om, S, T, r, 0, v0, theta, rho, kappa, sigma, lambda, muJ, vJ) / (i * om)).Real;
            }

            // Вектора интегральной суммы
            double I1 = VectorSum(int1);
            double I2 = VectorSum(int2);

            // Определение P1 и P2
            double P1 = 0.5 + 1.0 / Math.PI * I1 * (b - a) / 2;
            double P2 = 0.5 + 1.0 / Math.PI * I2 * (b - a) / 2;
            delta = P1;

            // Цена колл опциона
            return S * P1 - K * P2;
        }

        private Complex BatesCF (Complex phi ,double Spot, double T , double Rate, double Divd,double V ,double Theta , double Rho ,double Kappa, double Sigma ,
            double Lambda , double MuJ , double VJ)
        {
            Complex              S=new Complex(Spot  , 0.0);    // Цена базового актива
                Complex      r=new Complex(Rate  , 0.0);        // Безрисковая ставка (для маржируемых опционов =0)
                Complex    tau=new Complex(T     , 0.0);        // Период до экспирации в долях года
                Complex      i=new Complex(0.0   , 1.0);        // мнимая часть комплексной переменной
                Complex    rho=new Complex(Rho   , 0.0);        // Параметр Бейтса: корелляция
                Complex      k=new Complex(Kappa , 0.0);        // Параметр Бейтса: скорость возврата к средней
                Complex     vT=new Complex(Theta , 0.0);        // Параметр Бейтса: уровень возврата
                Complex lambda=new Complex(Lambda, 0.0);        // Параметр Бейтса: интенсивность скачков
                Complex  sigma=new Complex(Sigma , 0.0);        // Параметр Бейтса: среднеквадратичное отклонение волатильности
                Complex     v0=new Complex(V     , 0.0);        // Параметр Бейтса: текущая волатильность
                Complex    two=new Complex(2.0   , 0.0);        // Число 2.0 в комплексной форме
            Complex one = new Complex(1.0, 0.0);            // Число 1.0 в комплексной форме
            Complex  muJ=new Complex(MuJ     , 0.0);    // Параметр Бейтса: средняя скачков ( в тексте k с верхним подчеркиванием)
            Complex    vJ=new Complex(VJ     , 0.0);    // Параметр Бейтса: дисперсия скачков
            Complex   q=new Complex(Divd     , 0.0);    // дивиденды (для опционов на фьючерсы =0)
            Complex d = Complex.Sqrt (Complex.Pow(( rho * sigma * i*phi - k),2)  + sigma*sigma * (i*phi + phi * phi));
            Complex g2 = (k - rho* sigma *i*phi - d) / (k - rho* sigma *i*phi + d);
            Complex cf1 = i*phi * (Complex.Log(S) + (r - q) * tau);
            Complex cf2 = vT * k / ( sigma *sigma) * ((k - rho* sigma *i*phi - d) * tau - two * Complex.Log ((one - g2 * Complex.Exp(-d * tau)) / (one - g2)));
            Complex cf3 = v0 / sigma *sigma * (k - rho* sigma *i*phi - d) * (one - Complex.Exp(-d * tau)) / (one - g2 * Complex.Exp(-d * tau));
            // Составляющая для скачков цены:
            Complex cf4 = -lambda*muJ *i*tau*phi + lambda*tau *( Complex.Pow((one+ muJ) ,(i*phi)) * Complex.Exp( vJ *(i*phi /two) * (i*phi -one) ) -one );
            Complex cf = Complex.Exp(cf1 + cf2 + cf3 + cf4);
            return cf;
        }

        //Функция суммирования элементов вектора
        double VectorSum(double[] A)
        {
            double sum = 0;
            double n = A.Length;
            for (int i = 0; i <= n - 1; i++)
            sum += A[i];
            return sum;
        }

Калибровка модели Бейтса аналогична калибровке Хестона, рассмотренной в прошлой статье. Однако в случае Бейтса нужно находить не 5 параметров модели а восемь: k,ρ,θ,σ,Vt,k¯,λ,δ2. Три последних параметра добавились от процесса скачков ( отмечу, что λ, упомянутая в статье о Хестоне имела другой смысл, чем параметр Бейтса — просто совпали обозначения). Это значительно усложняет нахождение глобального минимума и увеличивает время вычисления параметров модели. Здесь скорее всего уже не обойтись без применения алгоритмов поиска глобальных минимумов, типа Differential Evolution или ASA.

На графике в начале поста показана экстраполяция подразумеваемой волатильности опционов на индекс DAX,  вычисленной по модели Бейтса для разных сроков до экспирации. Как вы можете заметить, даже на периодах, близких к экспирации, модель хорошо воспроизводит рыночные цены опционов ( выраженных через волатильность из формулы Блэка-Шоулза).

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

★30
32 комментария
Предотвращая вопросы о переменных X[k] и W[k]: получаются они из нижеследующей функции сторонней библиотеки alglib, для вычисления интеграла методом Гаусса-Легендре:
W = new double[32];
X = new double[32];
int info = 0;
alglib.gqgenerategausslegendre(32,out info, out X, out W);
32 — это количество узлов вычисления ( этой цифры достаточно для точности)
W — веса, X — узлы
avatar
uralpro,
Предотвращая вопросы о переменных X[k] и W[k]

Вот прямо только что хотел спросить! :)
avatar
ппц конечно… чтоб это понять надо быть как минимум кандидатом физико-математических наук )))
надо что нибудь попроще… тут пересекается — покупаем, тут зашло за уровень 100 — продаем… а так думаю 99.9% на смартабе вас не поймут ))
и вообще не понимаю, почему с такими познаниями вы еще не в списке форбс ну или как минимум в какомнибудь крутом американском хедж фонде…?
а на что тогда надеятся нам смертным
avatar
Kerby, трудно подобрать 8 параметров модели… всё время скачут, собаки. Из-за этого депо временами пилит…
avatar
Статья интересная, и не требует обладания степенью кандидата физмат наук, достаточно базовой теории матанализа (1-2 курс). Но есть большое НО. Данная методика, ровно как метод Блэка-шоулза, основана на постулате что изменения в цене основаны на нормальном распределении, что является одной из аксиом гипотезы Эффективного Рынка. Блэк и Шоулз в 1994г. основали фонд LTCM, с «нулевым» риском, как гласили их рекламные проспекты, где использовали свой метод, за то что и получили в 1997г. Нобелевскую премию. А уже в 1998г. их фонд испытал коллапс и прекратил свое существование, дав начало новому финансовому кризису. Что является отличным предостережением для тех кто еще пытается заработать, используя теорию Эффективного Рынка.
avatar
Katrin Brent, большой ливередж дал о себе знать, если бы они не лезли во все щели, то возможно бы и до сих пор существовали, кто знает)
avatar
Андрей Ерохин, при чем тут леверидж? вы видимо не владеете ситуацией, почитайте статью на английском что-ли. А вообще, для всех любителей все «математизировать» рекомендую почитать недавний хит Скотта Паттерсона «Кванты. Как волшебники от математики заработали миллиарды и чуть не обрушили фондовый рынок», где отлично разжевывается доступным языком к чему привели модели Эффективного Рынка в 2007-2008г.
avatar
Katrin Brent,

Какое отношение теория эффективного рынка имеет к созданию сабпраймов? Истинные причины кризиса 2007-2008 отлично изложены в книге Майкла Льюиса «Большая игра на понижение. Тайные пружины финансовой катастрофы», а «притягивание за уши» к тем событиями опционных квантов не более PR автора. Вот кванты, сидевшие на обосновании CDO, да, приложили руку. Но эти кванты и теория эффективного рынка — это «разные планеты».
avatar
Katrin Brent,

Нормальность никак не связана с эффективностью рынка. Рынок может быть нормальным и неэффективным, а может быть ненормальным и эффективным. Предложенная модель как раз для второго случая. Она объясняет «тяжелые хвосты» одномерного распределения (причем любой экспоненциальной «тяжести»), любую «улыбку волатильности», но при этом остается в рамках гипотезы эффективности.

А LTCM рухнул из-за огромного плеча, которое к теории эффективности-неэффективности не имеет никакого отношения.
avatar
А. Г., еще один бред, даже спорить не буду по поводу нормальности и эффективного рынка. Еще один «математик» походу. А LTCM рухнул из-за того что программа, которая рассчитывала алгоритм сделок купли продажи, настойчиво и агрессивно рекомендовала покупать, когда рынок падал во всю, попросту усредняя позиции. А делала это программа, как раз потому что ее алгоритмы, основанные на нормальном распределении, говорили что вероятность такого падения составляет одну триллионную процента.
avatar
Katrin Brent,

Проверка на знание темы: в позициях на каких инструментах «погорел» LTCM?
avatar
Katrin Brent,

Вы явно не в теме: LTCM — торговал спредами доходностей облигаций и «погорел» на расхождении спреда между доходностями развитых и развивающихся стран. А теперь подумайте, если позиция без плеча, то можно ли обанкоротиться на спредовой торговле?
avatar
А. Г., Вы делаете частный вывод, ваше утверждение о том что главная причина коллапса LTCМ это большой леверидж равносильно тому что сказать «все войны происходят потому что ружья стреляют». Во всех сделках так или иначе присутствует леверидж, просто где то он может быть 10%, а где то 1000%. У LTCM леверидж достиг 1 к 25. LTCM использовал арбитражные сделки на облигациях США, ЕВропы и Японии с разными сроками погашения, но разница была небольшая, например 30 лет и 29лет. Из за такой маленькой разницы фонд должен быть держать огромные позиции чтобы что-то заработать. Все было хорошо, пока не разразился Азиатский финансовый кризис 1997г, а потом Российский дефолт 1998, в результате инвесторы в панике стали продавать Японские и Евпропейские облигации и скупать Американские. Позиции, которые должны были принести хорошую прибыль в одночасье сменились колоссальными убытками. И главная причина это не леверидж, а то что алгоритмы фонда никак не предпологали развитие паники на рынке, так как саму меру паники и страха невозможно формализовать.
Это все хорошо описано вкниге Скотта Паттерсона.
PS. США Японию и страны Европы можно отнести к развитым странам.
avatar
Katrin Brent,

Из Вашего же текста следует, что причина коллапса — левердж, а их модель статистического арбитража ставок (!) — лишь причина убытков, размер которых и зависит от левереджа. Без леверджа позиции LTCM и 10% убытков не давали. Разве 10% убытков могут вызвать коллапс?
avatar
А. Г., что за бредовый спор? вы студент что-ли? Чего талдычить «леверидж, леверидж»? ЧТо за бредятина? фонд всегда торговал с большим левериджом, все 4 года и вполне успешно. На этом модель была основана. У меня нигде не утверждается что у них не было левериджа. Читайте внимательно. Если бы они 4 года торговали без левериджа, а накануне краха стали использовать гигантский леверидж, тогда ваше утверждение вполне было бы справедливо. А так не засоряте ресурс глупой полемикой. И они не торговали " спредами доходностей облигаций развитых и развивающихся стран". Это вообще бредятина. Откуда вы это взяли? Где тут логика?

Большой убыток фонд получил от арбитражной позиции по DLC ( dual listing company) между Royal dutch shell И Shell. Премия Royal dutch к Shell'у выросла с 8 до 22%. Из-за увеличивающихся убытков фонд ликвидировал эту позицию с гигантским убытком, хотя вполне возможно на долгосроке, стратегия фонда принесла бы плюс. И понеслась.

«When Genius Failed: The Rise and Fall of Long-Term Capital Management» книга Роджера Ловенстайна. Почитайте.
avatar
Katrin Brent,

Во-первых, они торговали спредами доходностей облигаций развитых и развивающихся стран, но там позиции были некритические ко всему объему капитала (только позиция в ГКО-ОФЗ России оценивалась в 250 млн. долларов). Но я утверждал другое: расширение этого спреда привело к убыткам по всем их спредовым позициям на облигациях, составлявших все вложения фонда.

Во-вторых, именно из теории эффективного рынка следует, что левередж выше некоторой границы рано или поздно «убьет» любой счет. Например, именно плечо 1:100 и дает статистику 95% сливов депозитов на forexe в строгом соответствии с теорией эффективного рынка. Если б на паре доллар-евро плечо на этом рынке было бы не больше 1:20, то теория эффективного рынка говорит о том, что сливших депозит было бы меньше 50% и именно такой процент мы видим у брокеров на срочных рынках.

В-третьих, именно нобелевские лауреаты настаивали на фиксации убытков в 40%, когда стало понятно, что уровень левереджа перешел эту границу, и после отказа Меривезера сделать это, вышли из состава партнеров фонда. Все дальнейшие усреднения и увеличение левереджа — это личные решения Меривезера.

И наконец, в-четвертых, после дофинансирования фонда консорциумом, созданным под эгидой ФРС, и закрытия позиций в 1999-2000-м все участники консорциума получили прибыль.
avatar
А. Г., Вы утверждали то что утверждали, а именно то что причиной краха стал высокий леверидж, не нужно сейчас «отмазок». А про расширение спреда, это как раз то что их система не предусматривала и считала «маловероятным» событием.
По поводу кредитного плеча и сливов. Откуда у вас уверенность и такие цифры по этому поводу? никаких официальных исследований не проводилось по этому поводу. Это мы понимаем эмпирически. Вы как то плаваете в теории статистике, чтобы так оголтело обосновывать такие глобальные проблемы. Я вам могу объяснить позицию фонда их позиции левериджа нормальным языком, а не теми наборами терминов что бросаетесь вы. ОНи считали риск левериджа, который они используют в торговле, существенно ниже риска обвала спредов, в миллиарды раз. Их теория это утверждала исходя из допущений нормального распределения скачков цен. Вот и все.
А вот это «именно из теории эффективного рынка следует, что левередж выше некоторой границы рано или поздно «убьет» любой счет» это вообще нереальная бредятина. Где это написано? Гипотезу Эффективного Рынка сформулировал Юджин Фома. Где он что то подобное писал? Главная аксиома Эффективного Рынка это что в цене актива уже учитываются все события прошлые и настоящие. У меня складывается ощущение что увас в голове нереальная каша из левериджа, спредов, вероятности слива, нормального распределения, Эффективного Рынка, и прочих мало понятных вам слов.
avatar
Katrin Brent,

По поводу цифр. 95% сливов депозитов на forexe — это по утверждениям «знающих» людей. Я действительно не знаю этой цифры, но именно исходя из теории эффективного (математически правильнее сказать мартингального) рынка для пары евро-доллар при плече 1:100 так и получается. Если там реально гораздо меньше сливших хотя бы один раз депозит при таком плече, то я рад за участников — рынок неэффективен. Только исходя из «кухонности» форекс-бизнеса, мне кажется, что начинать его без прогноза слива у 90% как то бессмысленно.

А теория разорения на случайном блуждании изложена в самых простейших учебниках по финансовой математике. На ней основана страховая индустрия. И если б Вы хоть чуть-чуть были знакомы с математической статистикой, то знали бы, что достижение критического уровня означает, что модель не верна и дальнейшие действия в ее рамках проводиться не должны. Потому то и партнеры Меривезера, знакомые с этим настаивали на фиксации 40% убытка. А дальнейшая история LTCM — это уже история из области психологии, а не финансовой математики.

И еще раз подчеркну: нормальность и эффективность — вещи несвязанные.
avatar
А. Г., Вы не до оцениваете ситуацию, если система показывает некоторое отклонение, которое считается за уровень «стопа», то левередж ограничен рыночной ликвидностью. Вот пирамидальная основа ликвидности рынка их и погубила(тренды). С большей вероятностью, данная составляющая и рушит теорию об эффективности рынка, вероятнее это и есть психология, которую практически не возможно с моделировать. Иными словами, как понять какой «дурак», строит модель по хвостам вашей системы?:D
avatar
SMA,

Я не говорю, что теория эффективного рынка верна, так как знаю кучу статистических доказательств обратного, но именно в расчете критического уровня левержджа она «рабочая», в том смысле, что его нельзя преодолевать. Вся проблема в психологии: этот критический уровень достигается тогда, когда на счете убытки, которые не хочется фиксировать и начинается усреднение с увеличением левереджа. В России, кстати, был аналогичный пример — фонды Юниаструма, погоревшие на плече в РЕПО с облигациями.
avatar
А. Г., согласен, я просто хотел сказать о том, что должно произойти, оно произойдет. и пока система показывала «стоп» условно 1000 пунктов, они использовали соответствующие плече. А как только реальный «уровень» «стопа» стал в разы больше «прогнозного» фонд и разорился. Это было неизбежно, т.к. есть условия, которые нельзя с прогнозировать, а можно только констатировать.
avatar
SMA, Отлично сказано ))
avatar
Katrin Brent, а можно тогда какую нибудь систему для тех, кто в школе прогуливал математику ))))
avatar
Kerby, Можно, «орел или решка». Эффективность в разы больше всяких аналитеков.
avatar
А Михайлов Сергей (Hedger) много лет назад писал, что прыжки (модель Бейтс) качественно не улучшают оценки модели Хестона.
avatar
Поржал, как очередной эксперт учит А.Г. рынку не зная кто это :)
avatar
dip, а кто это? Он богатый человек? На какой машине ездит?
А как часто приходится калибровать модель?
avatar
xp-trade, это зависит от вашего алгоритма. У меня, например каждые 10 мин калибровалась
avatar
Мощный цикл статей конечно. Спасибо.
avatar

теги блога uralpro

....все тэги



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