ts2func

Преобразуйте массивы временных рядов в функции времени и состояния

Описание

пример

F = ts2func(Array) инкапсулирует массив временных рядов, сопоставленный с вектором времени наблюдения с реальными значениями в MATLAB® функция, подходящая для Симуляции Монте-Карло NVars-by- 1 вектор состояния Xt.

n периоды.

пример

F = ts2func(___,Name,Value) добавляет необязательные аргументы пары "имя-значение".

Примеры

свернуть все

Загрузите данные.

load Data_GlobalIdx2

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

dt      = 1/250;
returns = tick2ret(Dataset.CAC);
sigma   = std(returns)*sqrt(250);
yields  = Dataset.EB3M;
yields  = 360*log(1 + yields);

Симулируйте пути с помощью постоянного, безрискового возврата

nPeriods = length(yields);  % Simulated observations
rng(5713,'twister')
obj    = gbm(mean(yields),diag(sigma),'StartState',100)
obj = 
   Class GBM: Generalized Geometric Brownian Motion
   ------------------------------------------------
     Dimensions: State = 1, Brownian = 1
   ------------------------------------------------
      StartTime: 0
     StartState: 100
    Correlation: 1
          Drift: drift rate function F(t,X(t)) 
      Diffusion: diffusion rate function G(t,X(t)) 
     Simulation: simulation method/function simByEuler
         Return: 0.0278117
          Sigma: 0.231906
[X1,T] = simulate(obj,nPeriods,'DeltaTime',dt);

Симулируйте пути с помощью динамической, детерминированной скорости возврата (получите r)

r = ts2func(yields,'Times',(0:nPeriods - 1)');

Симулируйте пути с помощью динамической, детерминированной скорости возврата (r выход 1)

r(0,100)
ans = 0.0470

Симулируйте пути с помощью динамической, детерминированной скорости возврата (r выход 2)

r(7.5,200)
ans = 0.0472

Симулируйте пути с помощью динамической, детерминированной скорости возврата (r выход 3)

r(7.5)
ans = 0.0472

Симулируйте пути с помощью динамической, детерминированной скорости возврата

rng(5713,'twister')
obj = gbm(r, diag(sigma),'StartState',100)
obj = 
   Class GBM: Generalized Geometric Brownian Motion
   ------------------------------------------------
     Dimensions: State = 1, Brownian = 1
   ------------------------------------------------
      StartTime: 0
     StartState: 100
    Correlation: 1
          Drift: drift rate function F(t,X(t)) 
      Diffusion: diffusion rate function G(t,X(t)) 
     Simulation: simulation method/function simByEuler
         Return: function ts2func/vector2Function
          Sigma: 0.231906
X2  = simulate(obj,nPeriods,'DeltaTime',dt);

Сравните два испытания симуляции.

subplot(2,1,1)
plot(dates,100*yields)
datetick('x')
xlabel('Date')
ylabel('Annualized Yield (%)')
title('Risk Free Rate(3-Mo Euribor Continuously-Compounded)')
subplot(2,1,2)
plot(T,X1,'red',T,X2,'blue')
xlabel('Time (Years)')
ylabel('Index Level')
title('Constant vs. Dynamic Rate of Return: CAC 40')
legend({'Constant Interest Rates' 'Dynamic Interest Rates'},...
    'Location', 'Best')

Figure contains 2 axes. Axes 1 with title Risk Free Rate(3-Mo Euribor Continuously-Compounded) contains an object of type line. Axes 2 with title Constant vs. Dynamic Rate of Return: CAC 40 contains 2 objects of type line. These objects represent Constant Interest Rates, Dynamic Interest Rates.

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

свернуть все

Массив временных рядов для инкапсуляции в вызываемую функцию времени и состояния, заданную в виде вектора, двумерной матрицы или трехмерного массива

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

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

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

Пример: F = ts2func(yields,'Times',(0:nPeriods - 1)')

Монотонно увеличивающееся время наблюдения, сопоставленное с входным массивом временных рядов (Array), заданная как разделенная разделенными запятой парами, состоящая из 'Times' и вектор.

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

Задает размерность входного массива временных рядов (Array) связано со временем, заданным как разделенная разделенными запятой парами, состоящая из 'TimeDimension' и скалярное целое число.

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

Задает размерность входного массива временных рядов (Array) связана со NVars переменные состояния, заданные как разделенная разделенными запятой парами, состоящая из 'StateDimension' и положительное скалярное целое число.

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

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

Если Deterministic является true, выходная функция F является детерминированной функцией времени, F(t), и единственный вход, который он принимает, является скалярным, реальным временным t. Если Deterministic false, выходная функция F принимает два входов, скалярное, реальное время t за которым следует NVars-by- 1 вектор состояния X(t).

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

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

свернуть все

Callable function F(t) из действительной скалярной t времени наблюдения, возвращенной как функция.

Если необязательный входной параметр Deterministic верно, F является детерминированной функцией времени, F(t), и единственный вход, который он принимает, является скалярным, реальным временным t. В противном случае, если Deterministic false (значение по умолчанию), F принимает скалярное, реальное время t за которым следует NVars-by- 1 вектор состояния X(t).

Примечание

Можно вызвать F со вторым входом (таким как NVars-by- 1 вектор состояния X), который является заполнителем, который ts2func игнорирует. Например, хотя F(t) и F(t,X) дают одинаковые результаты, последний непосредственно поддерживает методы симуляции SDE.

Алгоритмы

  • Когда вы задаете Array как скаляр или вектор (строка или столбец), ts2func принимает, что он представляет одномерные временные ряды.

  • F возвращает массив с одной меньшей размерностью, чем входной массив временных рядов Array с какими F сопоставлен. Таким образом, когда Array - вектор, 2-мерная матрица или трехмерный массив, F возвращает скаляр, вектор или 2-мерную матрицу, соответственно.

  • Когда скалярное время t в которое ts2func оценивает функцию F не совпадает со временем наблюдения в Times, F выполняет нуль интерполяцию удержания порядка. Единственное исключение - если t предшествует первому элементу Times, в этом случае F(t) = F(Times(1)).

  • Чтобы поддержать методы симуляции Монте-Карло, выходная функция F возвращает NVars-by- 1 Вектор-столбец или двумерная матрица с NVars строки.

  • Выходная функция F всегда является детерминированной функцией времени, F(t) и может всегда вызываться с одним входом независимо от Deterministic флаг. Различие заключается в том, что когда Deterministic false, функция F может также вызываться со вторым входом, NVars-by- 1 вектор X(t) состояния, который является заполнителем и игнорируется. Хотя F(t) и F(t,X) дают одинаковые результаты, первый конкретно указывает, что функция является детерминированной функцией времени и может предложить значительные преимущества эффективности в некоторых ситуациях.

Ссылки

[1] Ait-Sahalia, Y. «Проверка моделей спотового процента в непрерывном времени». Обзор финансовых исследований, весна 1996 года, том 9, № 2, стр. 385-426.

[2] Ait-Sahalia, Y. «Переходные плотности для процентной ставки и других нелинейных диффузий». Финансовый журнал, том 54, № 4, август 1999 года.

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

[4] Hull, J. C. Options, Futures, and Other Derivatives, 5 ed. Englewood Cliffs, NJ: Prentice Hall, 2002.

[5] Джонсон, Н. Л., С. Коц и Н. Балакришнан. Непрерывные одномерные распределения. Vol. 2, 2nd ed. New York, John Wiley & Sons, 1995.

[6] Shreve, S. E. Stochastic Calculus for Finance II: Continuous-Time Models. Нью-Йорк: Springer-Verlag, 2004.

Введенный в R2008a