ts2func

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

Синтаксис

F = ts2func(Array)
F = ts2func(___,Name,Value)

Описание

пример

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')

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

свернуть все

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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 верен, выходная функция, F является детерминированной функцией времени, F(t) и единственного входа, который это принимает, скаляр, время с действительным знаком t. Если Deterministic является ложным, выходная функция, F принимает два входных параметров, скаляр, время с действительным знаком, t, сопровождаемый NVARS-by-1, утверждает vectorX(t).

Типы данных: логический

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

свернуть все

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

Если дополнительный входной параметр, Deterministic верен, F, является детерминированной функцией времени, F(t), и единственный вход, который это принимает, является скаляром, время с действительным знаком t. В противном случае, если Deterministic является ложным (значение по умолчанию), 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-мерной матрицей или 3D массивом, F возвращает скаляр, вектор или 2-мерную матрицу, соответственно.

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

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

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

Ссылки

[1] Островок-Sahalia, Y. “Тестируя Непрерывно-разовые Модели Точечной Процентной ставки”. Анализ Финансовых Исследований, Spring 1996, Издания 9, № 2, стр 385–426.

[2] Островок-Sahalia, Y. “Плотность перехода для процентной ставки и другой нелинейной диффузии”. Журнал финансов, издания 54, № 4, август 1999.

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

[4] Оболочка, J. C. Опции, фьючерсы и Другие Производные, 5-й редактор Englewood Cliffs, NJ: Prentice Hall, 2002.

[5] Джонсон, N. L. С. Коц и Н. Бэлэкришнэн. Непрерывные Одномерные распределения. Издание 2, 2-й редактор Нью-Йорк, John Wiley & Sons, 1995.

[6] Shreve, S. E. Стохастическое исчисление для финансов II: непрерывно-разовые модели. Нью-Йорк: Springer-Verlag, 2004.

Введенный в R2008a