ts2func

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

Описание

пример

F = ts2func(Array) инкапсулирует массив временных рядов, сопоставленный с вектором времен наблюдения с действительным знаком в функции MATLAB®, подходящей для симуляции Монте-Карло NVARS- 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 имя аргумента и 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- 1 состояние vectorX(t).

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

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

свернуть все

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

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

Примечание

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

Алгоритмы

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

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

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

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

  • Выходная функция F всегда детерминированная функция времени, F(t), и может всегда вызываться одним входом независимо от Deterministic флаг. Различие - это когда Deterministic является ложным, функциональный F май также быть вызванным вторым входом, NVARS- 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