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

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

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

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

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

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

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

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

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

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

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

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

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

развернуть все

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

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

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

  • Скалярное время наблюдения с действительным знаком t.

  • NVars- 1 вектор состояния Xt.

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

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

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

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

  • Скалярное время наблюдения с действительным знаком t.

  • NVars- 1 вектор состояния Xt.

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

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

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

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

  • Скалярное время наблюдения с действительным знаком t.

  • NVars- 1 вектор состояния Xt.

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

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

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

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

  • Скалярное время наблюдения с действительным знаком t.

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

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

Примечание

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

Свойства

развернуть все

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

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

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

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

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

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

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

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

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

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

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

Пользовательская функция симуляции или метод симуляции SDE в виде функции или метод симуляции SDE.

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

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

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

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

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

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

где:

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

  • B NVars- 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, входные параметры 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

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

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

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

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

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

где:

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

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

  • V NVars- 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.) 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Симулируйте многомерные стохастические дифференциальные уравнения (SDEs)
simByEulerЭйлерова симуляция стохастических дифференциальных уравнений (SDEs)
simByQuadExpСимулируйте Убавляет, Хестон и демонстрационные пути к CIR квадратично-экспоненциальной схемой дискретизации
simByTransitionСимулируйте демонстрационные пути Хестона с плотностью перехода

Примеры

свернуть все

Хестон (heston) класс выводит непосредственно из SDE от Дрейфа и Диффузии (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

Больше о

развернуть все

Алгоритмы

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

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

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

Ссылки

[1] Aït-Sahalia, Yacine. “Тестируя Модели Непрерывного времени Точечной Процентной ставки”. Анализ Финансовых Исследований, издания 9, № 2, апрель 1996, стр 385–426.

[2] Aït-Sahalia, Yacine. “Плотность перехода для Процентной ставки и Другой Нелинейной Диффузии”. Журнал Финансов, издания 54, № 4, август 1999, стр 1361–95.

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

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

[5] Джонсон, Норман Ллойд, и др. Непрерывные Одномерные распределения. 2-й редактор, Вайли, 1994.

[6] Shreve, Стивен Э. Стохастическое исчисление для финансов. Спрингер, 2004.

Введенный в R2008a