exponenta event banner

simByEuler

Моделирование путей выборки Бейтса по аппроксимации Эйлера

Описание

пример

[Paths,Times,Z,N] = simByEuler(MDL,NPeriods) моделирует NTrials примеры путей двухмерных моделей Bates, управляемых NBrowns Броуновские источники движения риска и NJumps сложные пуассоновские процессы, представляющие прибытие важных событий NPeriods последовательные периоды наблюдения. Моделирование аппроксимирует стохастические процессы непрерывного времени с помощью подхода Эйлера.

пример

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

Примеры

свернуть все

Создать 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

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

NPeriods = 2;
[Paths,Times,Z,N] = simByEuler(batesObj,NPeriods)
Paths = 3×2

   80.0000    0.0400
   90.8427    0.0873
   32.7458    0.1798

Times = 3×1

     0
     1
     2

Z = 2×2

    0.5377    0.9333
   -2.2588    2.1969

N = 2×1

     0
     0

Продукция Paths является 3 x 2 размерность. Номер строки 3 является от NPeriods + 1. Первая строка определяется bates аргумент пары имя-значение StartState. Остальные строки являются моделируемыми данными. Paths всегда имеет два столбца, поскольку модель Бейтса является двумерной моделью. В этом случае первый столбец является смоделированной ценой основного средства, а второй столбец - смоделированной волатильностью.

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

свернуть все

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

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

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

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

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

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

Пример: [Paths,Times,Z,N] = simByEuler(bates,NPeriods,'DeltaTimes',dt)

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

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

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

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

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

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

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

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

Флаг для использования антитетической выборки для генерации гауссовых случайных вариаций, которые управляют броуновским вектором движения (процессы Винера), указанный как пара, разделенная запятыми, состоящая из 'Antithetic' и скалярный числовой или логический 1 (true) или 0 (false).

При указании true, simByEuler выполняет выборку таким образом, что все первичный и антитетический пути моделируются и сохраняются в последовательных парах согласования:

  • Нечетные испытания (1,3,5,...) соответствуют первичным гауссовым путям.

  • Даже испытания (2,4,6,...) - совпадающие антитетические пути каждой пары, полученные отрицанием гауссовых притяжений соответствующего первичного (нечётного) испытания.

Примечание

При указании входного шумового процесса (см. Z), simByEuler игнорирует значение Antithetic.

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

Прямая спецификация зависимого процесса случайного шума для генерации броуновского вектора движения (процесс Винера), который управляет моделированием, заданная как разделенная запятыми пара, состоящая из 'Z' и функции или как (NPeriods ⨉ NSteps)около-NBrownsоколо-NTrials трехмерный массив зависимых случайных вариаций.

Примечание

При указании Z как функция, она должна возвращать NBrownsоколо-1 вектор столбца, и вы должны вызвать его с двумя входами:

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

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

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

Зависимый случайный процесс подсчета для генерации количества переходов, указанный как пара, разделенная запятыми, состоящая из 'N' и функция или (NPeriodsNStepsоколо-NJumpsоколо-NTrials трехмерный массив зависимых случайных вариаций.

Примечание

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

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

Флаг, указывающий способ вывода массива Paths сохраняется и возвращается, указывается как пара, разделенная запятыми, состоящая из 'StorePaths' и скалярный числовой или логический 1 (true) или 0 (false).

Если StorePaths является true (значение по умолчанию) или не указано, simByEuler прибыль Paths в виде трехмерного массива временных рядов.

Если StorePaths является false (логический 0), simByEuler прибыль Paths в виде пустой матрицы.

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

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

Xt = P (t, Xt)

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

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

Конец периода Processes позволяет досрочно завершить данную пробную версию. В конце каждого шага времени simByEuler проверяет вектор состояния Xt для all-NaN состояние. Таким образом, чтобы сигнализировать о досрочном прекращении данного испытания, все элементы вектора состояния Xt должны быть NaN. Этот тест позволяет определить Processes Функция сигнализирует о досрочном прекращении испытания и предлагает значительные преимущества производительности в некоторых ситуациях (например, опционы ценового барьера).

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

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

свернуть все

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

Для данного испытания каждая строка Paths - транспонирование вектора состояния Xt в момент времени t. StorePaths имеет значение false, simByEuler прибыль Paths в виде пустой матрицы.

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

Зависимые случайные вариации для генерации броуновского вектора движения (процессы Винера), которые управляют моделированием, возвращаются в виде (NPeriods ⨉ NSteps)около-NBrownsоколо-NTrials трехмерный массив временных рядов.

Зависимые случайные вариации, используемые для генерации вектора процесса подсчета переходов, возвращаемого как (NPeriods ⨉ NSteps)около-NJumpsоколо-NTrials трехмерный массив временных рядов.

Подробнее

свернуть все

Антитетический отбор проб

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

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

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

Алгоритмы

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

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

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

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

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

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

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

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

Ссылки

[1] Дильстра, Гризельда и Фредди Дельбаен. «Конвергенция дискретизированных стохастических (процентных) процессов со стохастическим дрейфовым термином». Прикладные стохастические модели и анализ данных. 14, № 1, 1998, стр. 77-84.

[2] Хайам, Десмонд и Сюэрон Мао. «Конвергенция моделирования Монте-Карло с использованием процесса среднеквадратичного корня». Журнал вычислительных финансов 8, № 3, (2005): 35-61.

[3] Лорд, Роджер, Реммерт Коеккоек и Дик Ван Диек. «Сравнение смещенных схем моделирования для стохастических моделей волатильности». Количественное финансирование 10, № 2 (февраль 2010 года): 177-94.

Представлен в R2020a