bates

Модель стохастической волатильности Бейтса

Описание

The bates функция создает bates объект, который представляет модель Бейтса.

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

Первая одномерная модель является GBM модель с стохастической функцией волатильности и стохастическим процессом перехода и обычно соответствует ценовому процессу, частота отклонений которого определяется второй одномерной моделью. Второй моделью является Кокс-Ингерсолл-Росс (CIR) квадратный корень модель диффузии, которая описывает эволюцию скорости отклонения связанного GBM ценовой процесс.

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

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

    dX1t=B(t)X1tdt+X2tX1tdW1t+Y(t)X1tdNt

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

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

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

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

Создание

Описание

пример

Bates = bates(Return,Speed,Level,Volatility,JumpFreq,JumpMean,JumpVol) создать bates объект с опциями по умолчанию.

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

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

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

Примечание

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

пример

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

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

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

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

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

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

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

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

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

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

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

Если вы задаете Return как массив, он должен быть скалярным.

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

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

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

  • A 2-by- 1 двухмерный вектор состояний Xt

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

Средняя скорость реверсии процесса стохастического отклонения CIR, заданная как массив или детерминированная функция времени.

Если вы задаете Speed как массив, это должен быть скаляр.

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

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

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

  • A 2-by- 1 двухмерный вектор состояний Xt

Примечание

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

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

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

Если вы задаете Level как массив, это должен быть скаляр.

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

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

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

  • A 2-by- 1 двухмерный вектор состояний Xt

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

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

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

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

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

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

  • A 2-by- 1 двухмерный вектор состояний Xt

Примечание

Хотя bates не устанавливает никаких ограничений на Volatility, волатильность обычно неотрицательная.

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

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

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

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

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

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

  • A 2-by- 1 двухмерный вектор состояний Xt

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

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

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

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

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

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

  • A 2-by- 1 двухмерный вектор состояний Xt

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

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

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

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

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

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

  • A 2-by- 1 двухмерный вектор состояний Xt

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

Компонент стохастических дифференциальных уравнений (SDE) непрерывного времени, заданная как объект дрейфа или функция, доступная (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Симулируйте пути сэмплирования Бейтса по приближению Эйлера
simByQuadExpСимулируйте пути выборки Бейтса, Хестона и CIR с помощью квадратично-экспоненциальной схемы дискретизации
simulateСимулируйте многомерные стохастические дифференциальные уравнения (SDE)
simByTransitionСимулируйте выборочные пути Бейтса с плотностью перехода

Примеры

свернуть все

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

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

AssetPrice = 80;
            Return = 0.03;
            JumpMean = 0.02;
            JumpVol = 0.08;
            JumpFreq = 0.1;
            
            V0 = 0.04;
            Level = 0.05;
            Speed = 1.0;
            Volatility = 0.2;
            Rho = -0.7;
            StartState = [AssetPrice;V0]; 
            Correlation = [1 Rho;Rho 1];

batesObj = bates(Return, Speed, Level, Volatility,...
                JumpFreq, JumpMean, JumpVol,'startstate',StartState,...
                'correlation',Correlation)
batesObj = 
   Class BATES: Bates Bivariate Stochastic Volatility
   --------------------------------------------------
     Dimensions: State = 2, Brownian = 2
   --------------------------------------------------
      StartTime: 0
     StartState: 2x1 double array 
    Correlation: 2x2 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.03
          Speed: 1
          Level: 0.05
     Volatility: 0.2
       JumpFreq: 0.1
       JumpMean: 0.02
        JumpVol: 0.08

Подробнее о

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

Алгоритмы

Модель Бейтса (Bates 1996) является расширением модели Хестона и добавляет не только стохастическую волатильность, но и параметры диффузии перехода, как в Merton (1976) также были добавлены к модели внезапных движений цен активов.

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

dSt=(γqλpμj)Stdt+υtStdWt+JStdPtdυt=κ(θυt)dt+συυtdWtυE[dWtdWtυ]=pdtprob(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).

, - начальное отклонение базового актива ('0 > 0').

, - это долгосрочный уровень отклонения (и 0).

.r- средняя скорость реверсии для дисперсии (

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

p корреляция между процессами Вайнера W t и W tυ (-1 ≤ <reservedrangesplaceholder0> ≤ 1).

«Feller условия» обеспечивает положительное отклонение: (22).

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

Ссылки

[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