heston

Описание

Создание и отображение heston объекты, которые получают из sdeddo (SDE от объектов дрейфа и диффузии).

Использование heston объекты для симуляции путей расчета двух переменных состояния. Каждая переменная состояния управляется одним источником риска броуновского движения над NPeriods последовательные периоды наблюдения, аппроксимация процессов стохастической волатильности в непрерывном времени.

Модели Хестона являются двухмерными композитными моделями. Каждая модель Хестона состоит из двух связанных одномерных моделей:

  • Геометрическое броуновское движение (gbm) модель с стохастической функцией волатильности.

    dX1t=B(t)X1tdt+X2tX1tdW1t

    Эта модель обычно соответствует ценовому процессу, волатильность (темп отклонения) которого определяется второй одномерной моделью.

  • А Кокс-Ингерсолл-Росс (cir) квадратный корень диффузии.

    dX2t=S(t)[L(t)X2t]dt+V(t)X2tdW2t

    Эта модель описывает эволюцию скорости отклонения связанного процесса цены GBM.

Создание

Описание

пример

heston = heston(Return,Level,Speed,Volatility) создает heston по умолчанию объект.

Укажите требуемые входные параметры как один из следующих типов:

  • MATLAB® массив. Задание массива указывает на статическую (не изменяющуюся во времени) параметрическую спецификацию. Этот массив полностью захватывает все детали реализации, которые четко связаны с параметрической формой.

  • Функция MATLAB. Установка функции обеспечивает косвенную поддержку практически любой статической, динамической, линейной или нелинейной модели. Этот параметр поддерживается через интерфейс, потому что все детали реализации скрыты и полностью инкапсулированы функцией.

Примечание

Можно задать комбинации входных параметров массива и функции по мере необходимости.

Более того, параметр идентифицируется как детерминированная функция времени, если функция принимает скалярное время t как его единственный входной параметр. В противном случае параметр принимается как функция от t времени и X(t) состояния и вызывается с обоими входными параметрами.

пример

heston = heston(___,Name,Value) создает heston объект с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар.

Name является именем свойства и Value является его соответствующим значением. Name должны находиться внутри одинарных кавычек (''). Можно задать несколько аргументы пары "имя-значение" в любом порядке как Name1,Value1,…,NameN,ValueN

The heston объект имеет следующие свойства:

  • StartTime - Начальное время наблюдения

  • StartState - Начальное состояние в StartTime

  • Correlation - Функция доступа для Correlation вход, вызываемый как функция времени

  • Drift - Составная функция скорости дрейфа, вызываемая как функция времени и состояния

  • Diffusion - Составная функция скорости диффузии, вызываемая как функция времени и состояния

  • Simulation - Функция или метод симуляции

  • Return - Функция доступа для входного аргумента Return, вызываемый как функция времени и состояния

  • Speed - Функция доступа для входного аргумента Speed, вызываемый как функция времени и состояния

  • Level - Функция доступа для входного аргумента Level, вызываемый как функция времени и состояния

  • Volatility - Функция доступа для входного аргумента Volatility, вызываемый как функция времени и состояния

Входные параметры

расширить все

Return представляет μ параметра, заданную как массив или детерминированную функцию времени.

Если вы задаете Return как массив, он должен быть NVars-by- NVars матрица, представляющая ожидаемую (среднюю) мгновенную скорость возврата.

Как детерминированная функция времени, когда Return вызывается с реальным скалярным временем t как его единственный вход, Return необходимо создать NVars-by- NVars матрица. Если вы задаете Return как функция времени и состояния, она должна вернуть NVars-by- NVars матрица при вызове с двумя входами:

  • Реальное скалярное t времени наблюдения.

  • Система координат NVars-by- 1 вектор состояния Xt.

Типы данных: double | function_handle

Level представляет L параметра, заданную как массив или детерминированную функцию времени.

Если вы задаете Level как массив, он должен быть NVars-by- 1 вектор-столбец уровней реверсии.

Как детерминированная функция времени, когда Level вызывается с реальным скалярным временем t как его единственный вход, Level необходимо создать NVars-by- 1 Вектор-столбец. Если вы задаете Level как функция времени и состояния, она должна сгенерировать NVars-by- 1 вектор-столбец уровней реверсии при вызове с двумя входами:

  • Реальное скалярное t времени наблюдения.

  • Система координат NVars-by- 1 вектор состояния Xt.

Типы данных: double | function_handle

Speed представляет S параметра, заданную как массив или детерминированную функцию времени.

Если вы задаете Speed как массив, он должен быть NVars-by- NVars матрица средних скоростей реверсии (скорость, с которой вектор состояния возвращается к своему долгосрочному среднему значению Level).

Как детерминированная функция времени, когда Speed вызывается с реальным скалярным временем t как его единственный вход, Speed необходимо создать NVars-by- NVars матрица. Если вы задаете Speed как функция времени и состояния, он вычисляет скорость средней реверсии. Эта функция должна сгенерировать NVars-by- NVars матрица частот реверсии при вызове с двумя входами:

  • Реальное скалярное t времени наблюдения.

  • Система координат NVars-by- 1 вектор состояния Xt.

Типы данных: double | function_handle

Volatility (часто называемая волатильностью волатильности или волатильности отклонения) представляет мгновенную волатильность модели стохастического отклонения CIR, заданную в виде скалярной, или детерминированной функции времени.

Если вы задаете Volatility в качестве скаляра он представляет мгновенную летучесть модели стохастического отклонения CIR.

Как детерминированная функция времени, когда Volatility вызывается с реальным скалярным временем t как его единственный вход, Volatility должен произвести скаляр. Если вы задаете его как время функции и состояние, Volatility генерирует скаляр при вызове с двумя входами:

  • Реальное скалярное t времени наблюдения.

  • A 2-by- 1 вектор состояния Xt.

Типы данных: double | function_handle

Примечание

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

Свойства

расширить все

Время начала первого наблюдения, применяемое ко всем переменным состояния, заданное в виде скаляра

Типы данных: double

Начальные значения переменных состояния, заданные как скаляр, вектор-столбец или матрица.

Если StartState является скаляром, heston применяет одно и то же начальное значение ко всем переменным состояния во всех испытаниях.

Если StartState является вектор-столбец, heston применяет уникальное начальное значение к каждой переменной состояния во всех испытаниях.

Если StartState является матрицей, heston применяет уникальное начальное значение к каждой переменной состояния в каждом испытании.

Типы данных: double

Корреляция между Гауссовыми случайными вариациями, нарисованная для генерации брауновского вектора движения (процессы Винера), заданная как NBrowns-by- NBrowns положительная полуопределенная матрица или как детерминированная функция C(t) которая принимает текущий временной t и возвращает NBrowns-by- NBrowns положительная полуопределенная матрица корреляции. Если Correlation не является симметричной положительной полуопределенной матрицей, использование nearcorr создать положительную полуопределенную матрицу для корреляционной матрицы.

A Correlation матрица представляет статическое условие.

Как детерминированная функция времени, Correlation позволяет вам задать динамическую структуру корреляции.

Типы данных: double

Определяемая пользователем функция симуляции или SDE метод симуляции, заданный как функция или SDE метод симуляции.

Типы данных: function_handle

Это свойство доступно только для чтения.

Компонент скорости дрейфа стохастических дифференциальных уравнений (SDE) в непрерывном времени, заданный как объект дрейфа или функция, доступная (t, Xt.

Спецификация скорости дрейфа поддерживает симуляцию путей дискретизации NVars переменные состояния, управляемые NBrowns Брауновские источники риска NPeriods последовательные периоды наблюдения, аппроксимация стохастических процессов в непрерывном времени.

The drift класс позволяет вам создавать объекты скорости дрейфа с помощью drift формы:

F(t,Xt)=A(t)+B(t)Xt

где:

  • A является NVars-by- 1 векторная функция, доступная с помощью интерфейса (t, Xt).

  • B является NVars-by- NVars функция с матричным значением, доступная с помощью интерфейса (t, Xt).

Отображаемые параметры для drift являются:

  • Rate: Функция скорости дрейфа, F(t,Xt)

  • A: Срок точки пересечения, A(t,Xt), F(t,Xt)

  • BСрок первого порядка, B(t,Xt), F(t,Xt)

A и B позволяет запросить исходные входы. Функция, сохраненная в Rate полностью инкапсулирует комбинированный эффект A и B.

Если задан как MATLAB double arrays, входы A и B четко связаны с параметрической формой линейной скорости дрейфа. Однако установка любого из них A или B как функция позволяет вам настроить фактически любую спецификацию скорости дрейфа.

Примечание

Можно выразить drift и diffusion классы в наиболее общей форме для подчеркивания функционального (t, Xt) интерфейса. Однако можно задать компоненты A и B как функции, которые соответствуют общему (t, Xt) интерфейсу, или как массивы MATLAB соответствующей размерности.

Пример: F = drift(0, 0.1) % Drift rate function F(t,X)

Типы данных: struct | double

Это свойство доступно только для чтения.

Компонент скорости диффузии стохастических дифференциальных уравнений (SDE) в непрерывном времени, заданный как объект дрейфа или функция, доступная (t, Xt.

Спецификация скорости диффузии поддерживает симуляцию путей дискретизации NVars переменные состояния, управляемые NBrowns Брауновские источники риска NPeriods последовательные периоды наблюдения, аппроксимация стохастических процессов в непрерывном времени.

The diffusion класс позволяет вам создавать объекты скорости диффузии с помощью diffusion:

G(t,Xt)=D(t,Xtα(t))V(t)

где:

  • D является NVars-by- NVars диагональная функция с матричным значением.

  • Каждый диагональный элемент D - соответствующий элемент вектора состояний, приподнятого к соответствующему элементу экспоненты Alpha, который является NVars-by- 1 векторная функция.

  • V является NVars-by- NBrowns матричная функция скорости волатильности Sigma.

  • Alpha и Sigma также доступны с помощью интерфейса (t, Xt).

Отображаемые параметры для diffusion являются:

  • Rate: Функция скорости диффузии, G(t,Xt).

  • Alpha: Экспонента вектора состояний, которая определяет формат D(t,Xt) G(t,Xt).

  • Sigma:: Коэффициент волатильности, V(t,Xt), G(t,Xt).

Alpha и Sigma позволяет запросить исходные входы. (Совокупный эффект индивидуума Alpha и Sigma параметры полностью инкапсулированы функцией, сохраненной в Rate.) The Rate функции являются вычислительными двигателями для drift и diffusion Объекты, и являются единственными параметрами, необходимыми для симуляции.

Примечание

Можно выразить drift и diffusion классы в наиболее общей форме для подчеркивания функционального (t, Xt) интерфейса. Однако можно задать компоненты A и B как функции, которые соответствуют общему (t, Xt) интерфейсу, или как массивы MATLAB соответствующей размерности.

Пример: G = diffusion(1, 0.3) % Diffusion rate function G(t,X)

Типы данных: struct | double

Функции объекта

interpolateБрауновская интерполяция стохастических дифференциальных уравнений
simulateСимулируйте многомерные стохастические дифференциальные уравнения (SDE)
simByEulerСимуляция Эйлера стохастических дифференциальных уравнений (SDE)
simByQuadExpСимулируйте пути выборки Бейтса, Хестона и CIR с помощью квадратично-экспоненциальной схемы дискретизации
simByTransitionСимулируйте пути выборки Хестона с плотностью перехода

Примеры

свернуть все

Хестон (heston) класс получают непосредственно из SDE из Drift and Diffusion (sdeddo). Каждая модель Хестона является двухмерной композитной моделью, состоящей из двух связанных одномерных моделей:

dX1t=B(t)X1tdt+X2tX1tdW1t

dX2t=S(t)[L(t)-X2t]dt+V(t)X2tdW2t

Создайте heston объект для представления модели:

dX1t=0.1X1tdt+X2tX1tdW1t

dX2t=0.2[0.1-X2t]dt+0.05X2tdW2t

obj = heston (0.1, 0.2, 0.1, 0.05)  % (Return, Speed, Level, Volatility)
obj = 
   Class HESTON: Heston Bivariate Stochastic Volatility
   ----------------------------------------------------
     Dimensions: State = 2, Brownian = 2
   ----------------------------------------------------
      StartTime: 0
     StartState: 1 (2x1 double array) 
    Correlation: 2x2 diagonal double array 
          Drift: drift rate function F(t,X(t)) 
      Diffusion: diffusion rate function G(t,X(t)) 
     Simulation: simulation method/function simByEuler
         Return: 0.1
          Speed: 0.2
          Level: 0.1
     Volatility: 0.05

Подробнее о

расширить все

Алгоритмы

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

Доступ к выходным параметрам без входов просто возвращает исходную спецификацию входа. Таким образом, когда вы вызываете эти параметры без входов, они ведут себя как простые свойства и позволяют вам протестировать тип данных (double vs. function, или, эквивалентно, static vs. Dynamic) исходной входной спецификации. Это полезно для валидации и разработки методов.

Когда вы вызываете эти параметры с входами, они ведут себя как функции, создавая впечатление динамического поведения. Параметры принимают t времени наблюдения и вектор состояния Xt и возвращают массив соответствующей размерности. Даже если вы первоначально задали вход как массив, heston рассматривает его как статическую функцию времени и состояния, тем самым гарантируя, что все параметры доступны с помощью одного и того же интерфейса.

Ссылки

[1] Аит-Сахалия, Яцин. «Проверка моделей спотового процента в непрерывном времени». Обзор финансовых исследований, том 9, № 2, апрель 1996 года, стр. 385-426.

[2] Аит-Сахалия, Яцин. «Плотности переходов для процентной ставки и других нелинейных диффузий». Журнал финансов, том 54, № 4, август 1999, стр. 1361-95.

[3] Глассерман, Пол. Методы Монте-Карло в финансовой инженерии. Спрингер, 2004.

[4] Халл, Джон. Опции, фьючерсы и другие производные. 7-е изд, Prentice Hall, 2009.

[5] Johnson, Norman Lloyd, et al. Непрерывные одномерные распределения. 2-е изд, Уайли, 1994.

[6] Shreve, Steven E. Stochastic Calculus for Finance. Спрингер, 2004.

Введенный в R2008a
Для просмотра документации необходимо авторизоваться на сайте