merton

Модель диффузии скачка Мертона

Описание

merton функция создает merton объект, который выводит из gbm объект.

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

Можно симулировать любой merton с векторным знаком процесс формы

dXt=B(t,Xt)Xtdt+D(t,Xt)V(t,xt)dWt+Y(t,Xt,Nt)XtdNt

Здесь:

  • Xt является NVars- 1 вектор состояния переменных процесса.

  • B (t, X t) является NVars- NVars матрица обобщенных ожидаемых мгновенных норм прибыли.

  • D(t,Xt) NVars- NVars диагональная матрица, в которой каждым элементом по основной диагонали является соответствующий элемент вектора состояния.

  • V(t,Xt) NVars- NVars матрица мгновенных уровней энергозависимости.

  • dW t является NBrowns- 1 Вектор броуновского движения.

  • Y(t,Xt,Nt) NVars- NJumps функция размера скачка с матричным знаком.

  • dN t является NJumps- 1 подсчет вектора процесса.

Создание

Описание

пример

Merton = merton(Return,Sigma,JumpFreq,JumpMean,JumpVol) создает merton по умолчанию объект. Задайте требуемые входные параметры как один из двух типов:

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

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

Примечание

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

пример

Merton = merton(___,Name,Value) аргументы пары "имя-значение" использования Свойств наборов в дополнение к входным параметрам в предыдущем синтаксисе. Заключите каждое имя свойства в кавычки.

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

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

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

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

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

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

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

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

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

Ожидаемые средние мгновенные уровни актива возвращаются, обозначенный как B (t, X t) в виде массива, детерминированной функции времени или детерминированной функции времени и состояния.

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

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

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

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

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

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

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

Если вы задаете Sigma как массив, это должен быть NVars- NBrowns матрица мгновенных уровней энергозависимости или детерминированная функция времени. В этом случае, каждая строка Sigma соответствует конкретной переменной состояния. Каждый столбец соответствует конкретному Броуновскому источнику неопределенности и сопоставляет величину воздействия переменных состояния с источниками неопределенности.

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

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

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

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

Примечание

Несмотря на то, что merton не осуществляет ограничений для Sigma, колебания являются обычно неотрицательными.

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

Мгновенные частоты скачка, представляющие интенсивность (среднее количество скачков в единицу времени) Пуассоновских процессов N t, которые управляют симуляцией скачка в виде массива, детерминированной функции времени или детерминированной функции времени и состояния.

Если вы задаете JumpFreq как массив, это должен быть NJumps- 1 вектор.

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

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

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

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

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

Мгновенное среднее значение случайных размеров скачка процента J, где журнал (1+J) нормально распределен со средним значением (журнал (1+JumpMean) - 0,5 × JumpVol2) и стандартное отклонение JumpVolВ виде массива, детерминированной функции времени или детерминированной функции времени и состояния.

Если вы задаете JumpMean как массив, это должен быть NVars- NJumps матрица.

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

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

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

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

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

Мгновенное стандартное отклонение журнала (1+J) в виде массива, детерминированной функции времени или детерминированной функции времени и состояния.

Если вы задаете JumpVol как массив, это должен быть NVars- NJumps матрица.

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

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

Компонент уровня дрейфа непрерывного времени стохастические дифференциальные уравнения (SDEs) в виде drift возразите или функционируйте доступные (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.

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

Примечание

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

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

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

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

Компонент уровня диффузии непрерывного времени стохастические дифференциальные уравнения (SDEs) в виде drift возразите или функционируйте доступные (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)

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

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

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

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

simByEulerСимулируйте демонстрационные пути к диффузии скачка Мертона Эйлеровым приближением
simBySolutionСимулируйте приближенное решение диагонального дрейфа диффузионный процесс скачка Мертона
simulateСимулируйте многомерные стохастические дифференциальные уравнения (SDEs)

Примеры

свернуть все

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

Создайте merton объект.

AssetPrice = 80;
            Return = 0.03;
            Sigma = 0.16;
            JumpMean = 0.02;
            JumpVol = 0.08;
            JumpFreq = 2;
            
            mertonObj = merton(Return,Sigma,JumpFreq,JumpMean,JumpVol,...
                'startstat',AssetPrice)
mertonObj = 
   Class MERTON: Merton Jump Diffusion
   ----------------------------------------
     Dimensions: State = 1, Brownian = 1
   ----------------------------------------
      StartTime: 0
     StartState: 80
    Correlation: 1
          Drift: drift rate function F(t,X(t)) 
      Diffusion: diffusion rate function G(t,X(t)) 
     Simulation: simulation method/function simByEuler
          Sigma: 0.16
         Return: 0.03
       JumpFreq: 2
       JumpMean: 0.02
        JumpVol: 0.08

Больше о

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

Алгоритмы

Модель диффузии скачка Мертона (Мертон 1976) является расширением модели Black-Scholes и моделей внезапные перемещения цен активов (оба вверх и вниз) путем добавления параметров диффузии скачка с Пуассоновским процессом P t.

Под нейтральной к риску мерой модель описывается можно следующим образом

dSt=(γqλpμj)Stdt+σMStdWt+JStdPtprob(dPt=1)=λpdt

Здесь:

ᵞ непрерывный безрисковый уровень.

q является непрерывной дивидендной доходностью.

J является случайным условным выражением размера скачка процента на появлении скачка, где

ln(1+J)~N(ln (1 +uj)δ22,δ2

(1+J) имеет логарифмически нормальное распределение:

1(1+J)δ2πexp{[ln(1+J)(ln(1+μj)δ22]22δ2}

Здесь:

μj является средним значением Jj>-1).

ƛp является ежегодной частотой (интенсивность) Пуассоновского процесса P tp ≥ 0).

σM является энергозависимостью цены активов (σM> 0).

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

Ссылки

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

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

[3] Глассермен, Пол. Методы Монте-Карло в финансовой разработке. Нью-Йорк: Springer-Verlag, 2004.

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

[5] Джонсон, Норман Ллойд, Сэмюэль Коц и Нэраянэсвами Бэлэкришнэн. Непрерывные Одномерные распределения. 2-й редактор Вайли Серис в Вероятности и Математической Статистике. Нью-Йорк: Вайли, 1995.

[6] Shreve, Стивен Э. Стохастическое исчисление для финансов. Нью-Йорк: Springer-Verlag, 2004.

Введенный в R2020a