merton

Модель диффузии перехода Мертона

Описание

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

The 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-by- 1 вектор состояний переменных процесса.

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

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

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

  • dW t является NBrowns-by- 1 Брауновский вектор движения.

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

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

Создание

Описание

пример

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

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

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

Примечание

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

пример

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

Хотя merton не вводит никаких ограничений для Sigma, волатильности обычно неотрицательны.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Используйте 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.

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

Примечание

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

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

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

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

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

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

Используйте 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)

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

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

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

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

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

Примеры

свернуть все

Модели диффузии перехода Мертона позволяют моделировать пути дискретизации 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

Подробнее о

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

Алгоритмы

Модель диффузии скачка Мертона (Merton 1976) является расширением модели Блэка-Скоулза, и моделирует внезапные изменения цен на активы (как вверх, так и вниз), добавляя параметры диффузии скачка с процессом Пуассона 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 - среднее значение J (.r j > -1).

dig p - годовая частота (интенсивность) процесса Пуассона P t (p ≥ 0).

σ <reservedrangesplaceholder1> - изменчивость цены активов (σ <reservedrangesplaceholder0>> 0).

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

Ссылки

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

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

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

[4] Hull, John C. Опции, фьючерсы и другие производные. 7-е изд, Prentice Hall, 2009.

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

[6] Shreve, Steven E. Stochastic Calculus for Finance. Нью-Йорк: Springer-Verlag, 2004.

Введенный в R2020a