simByTransition

Симулируйте пути выборки Хестона с плотностью перехода

Описание

пример

[Paths,Times] = simByTransition(MDL,NPeriods) моделирует NTrials выборочные пути двухмерных моделей Хестона, управляемых двумя броуновскими источниками риска движения. simByTransition аппроксимирует стохастические процессы в непрерывном времени плотностью перехода.

пример

[Paths,Times] = simByTransition(___,Name,Value) задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.

Примеры

свернуть все

Симулируйте выборки Хестона с плотностью перехода.

Определите параметры для heston объект.

Return = 0.03;
Level = 0.05;
Speed = 1.0;
Volatility = 0.2;

AssetPrice = 80;
V0 = 0.04;
Rho = -0.7;
StartState = [AssetPrice;V0];
Correlation = [1 Rho;Rho 1];

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

hestonObj = heston(Return,Speed,Level,Volatility,'startstate',StartState,'correlation',Correlation)
hestonObj = 
   Class HESTON: Heston 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

Определите параметры симуляции.

nPeriods = 5;   % Simulate sample paths over the next five years
Paths = simByTransition(hestonObj,nPeriods);
Paths
Paths = 6×2

   80.0000    0.0400
   92.9915    0.0343
  108.6211    0.0737
   52.9617    0.1012
   46.9805    0.1243
   54.3704    0.0571

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

свернуть все

Модель Стохастического дифференциального уравнения, заданная как heston объект. Для получения дополнительной информации о создании heston объект, см. heston.

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

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

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

Аргументы в виде пар имя-значение

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

Пример: [Paths,Times] = simByTransition(Heston,NPeriods,'DeltaTimes',dt)

Моделируемые испытания (пути расчета) NPeriods каждый из наблюдений, заданный как разделенная разделенными запятой парами, состоящая из 'NTrials' и положительное скалярное целое число.

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

Положительные шаги времени между наблюдениями, заданные как разделенная разделенными запятой парами, состоящая из 'DeltaTimes' и скаляр или NPeriods-by- 1 Вектор-столбец.

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

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

Количество промежуточных временных шагов в каждом dt временного шага (определяется как DeltaTimes), заданная как разделенная разделенными запятой парами, состоящая из 'NSteps' и положительное скалярное целое число.

The simByTransition функциональные разделы каждый временной шаг dt в NSteps Подынтервалы длины dt/ NSteps, и уточняет симуляцию путем оценки вектора моделируемого состояния в NSteps − 1 промежуточные точки. Хотя simByTransition не сообщает вектор выходного состояния в этих промежуточных точках, уточнение улучшает точность, позволяя симуляции более точно аппроксимировать базовый процесс непрерывного времени.

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

Флаг для метода хранения и возврата, который указывает, как выходной массив Paths сохранен и возвращен, заданный как разделенная разделенными запятой парами, состоящая из 'StorePaths' и скаляр логический флаг со значением True или False.

  • Если StorePaths является True (значение по умолчанию) или не задано, затем simByTransition возвращает Paths как трехмерный массив временных рядов.

  • Если StorePaths является False (логический 0), затем simByTransition возвращает Paths выходной массив как пустая матрица.

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

Последовательность процессов в конце периода или корректировок вектора состояния, заданная как разделенная разделенными запятой парами, состоящая из 'Processes' и функция или массив ячеек функций вида

Xt=P(t,Xt)

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

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

Типы данных: cell | function

Выходные аргументы

свернуть все

Моделируемые пути коррелированных переменных состояния, возвращенные как (NPeriods + 1)-by- NVars-by- NTrials трехмерный массив временных рядов.

Для данного испытания каждая строка Paths - транспонирование вектора состояния, X t в момент t времени. Когда флаг входа StorePaths = False, simByTransition возвращает Paths как пустая матрица.

Время наблюдения, сопоставленное с моделируемыми путями, возвращается как (NPeriods + 1)-by- 1 Вектор-столбец. Каждый элемент Times связана с соответствующей строкой Paths.

Подробнее о

свернуть все

Симуляция плотности перехода

CIR SDE не имеет такого решения, что r (t) = f (r (0), ⋯).

Другими словами, уравнение явно не разрешимо. Однако плотность перехода для процесса известна.

Точная симуляция для распределения r (t _ 1), , r (t _ n) является симуляцией процесса во временах t _ 1, ⋯, t _ n для того же значения r (0). Плотность перехода для этого процесса известна и выражена как

r(t)=σ2(1eα(tu)4αxd2(4αeα(tu)σ2(1eα(tu))r(u)),t>uгдеd4bασ2

Модель Хестона

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

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

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

    dX1t=B(t)X1tdt+X2tX1tdW1t

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

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

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

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

Ссылки

[1] Glasserman, Paul Monte Carlo Methods in Financial Engineering. Нью-Йорк: Springer-Verlag, 2004.

[2] Van Haastrecht, Alexander, and Antoon Pelsser. Эффективная, почти точная симуляция модели стохастической волатильности Хестона. Международный журнал теоретических и прикладных финансов. 13, № 01 (2010): 1-43.

Введенный в R2020b