LiborMarketModel

Создайте модель рынка LIBOR

Описание

Модель рынка LIBOR (LMM) является моделью процентной ставки, которая отличается от коротких моделей уровня, в которых она развивает набор дискретных форвардных курсов.

А именно, логарифмически нормальный LMM задает следующее уравнение диффузии для каждого форвардного курса

dFi(t)Fi=μidt+σi(t)dWi

где:

W является N-мерным геометрическим броуновским движением с

dWi(t)dWj(t)=ρij

LMM связывает дрейфы форвардных курсов на основе аргументов без арбитражей. А именно, под Пятном мера LIBOR дрейфы описываются как

μi(t)=σi(t)j=q(t)iτjρi,jσj(t)Fj(t)1+τjFj(t)

где:

ρi,j представляет входной параметр Correlation.

σj(t) представляет входной параметр VolFunc.

Fj(t) представляет расчет входного параметра для ZeroCurve.

τi часть времени, сопоставленная с i th форвардный курс

q(t) является индексом, заданным отношением

Tq(t)1<t<Tq(t)

и Пятно счетные деньги LIBOR задано как

B(t)=P(t,Tq(t))n=0q(t)1(1+τnFn(Tn))

Создание

Описание

пример

LMM = LiborMarketModel(ZeroCurve,VolFunc,Correlation) создает LiborMarketModel (LMM) объект с помощью обязательных аргументов для ZeroCurve, VolFuncКорреляция.

пример

LMM = LiborMarketModel(___,Name,Value) Свойства наборов с помощью пар "имя-значение". Например, LMM = LiborMarketModel(irdc,VolFunc,Correlation,'Period',1). Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки.

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

развернуть все

Кривая нулевой ширины раньше развивала путь уровней будущего права в виде выхода от IRDataCurve или RateSpec это получено из intenvset. ZeroCurve введите устанавливает свойство ZeroCurve.

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

Функция энергозависимости, заданное использование NumRates- 1 cell-массив указателей на функцию и наборы свойство VolFunc. Каждый указатель на функцию должен занять время как вход и, возвратить скалярную энергозависимость.

Примечание

Количество уровней, чтобы симулировать использование simTermStructs функция определяется размером VolFunc и Correlation входные параметры, которые должны быть сопоставимыми. Они могут быть любым значением и, вместе с Period свойство, определяет виды и количество симулируемых уровней. Например, если Period установлен в 4 (ежеквартально) и VolFunc имеет длину 120 и Correlation имеет размер 120- 120, затем 120 симулированы ежеквартальные уровни. Другими словами, 30 лет кривой доходности симулированы (0-3mos, 3mos-6mos, 6mos-9mos, и так далее, полностью до 30 лет). Поэтому, если VolFunc и Correlation имейте размер 120, выход вызова simTermStructs (nPeriods+1)-by-121- nTrials.

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

Корреляционная матрица, заданное использование NumRates- NumRates корреляционная матрица и наборы свойство Correlation.

Примечание

Количество уровней, чтобы симулировать использование simTermStructs функция определяется размером VolFunc и Correlation входные параметры, которые должны быть сопоставимыми. Они могут быть любым значением и, вместе с Period свойство, определяет виды и количество симулируемых уровней. Например, если Period установлен в 4 (ежеквартально) и VolFunc имеет длину 120 и Correlation имеет размер 120- 120, затем 120 симулированы ежеквартальные уровни. Другими словами, 30 лет кривой доходности симулированы (0-3mos, 3mos-6mos, 6mos-9mos, и так далее, полностью до 30 лет). Поэтому, если VolFunc и Correlation имейте размер 120, выход вызова simTermStructs (nPeriods+1)-by-121- nTrials.

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

Свойства

развернуть все

Кривая нулевой ширины в виде выхода от IRDataCurve или RateSpec это получено из intenvset.

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

Функция энергозависимости, заданное использование NumRates- 1 cell-массив указателей на функцию. Каждый указатель на функцию должен занять время как вход и, возвратить скалярную энергозависимость.

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

Корреляционная матрица, заданное использование NumRates- NumRates корреляционная матрица.

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

Количество Броуновских факторов в виде числового значения. Значением по умолчанию является NaN, где ряд факторов равен количеству уровней.

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

Период форвардных курсов, в частности количество уровней в год в виде числового значения 1, 2, 4, или 12. Значением по умолчанию является 2, означающие форвардные курсы расположены с интервалами в 0, .5, 1, 1.5, и так далее.

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

Функции объекта

simTermStructsСимулируйте структуры термина для Модели Рынка LIBOR

Примеры

свернуть все

Создайте LMM объект с помощью IRDataCurve.

Settle = datenum('15-Dec-2007');
CurveTimes = [1:5 7 10 20]';
ZeroRates = [.01 .018 .024 .029 .033 .034 .035 .034]';
CurveDates = daysadd(Settle,360*CurveTimes,1);

irdc = IRDataCurve('Zero',Settle,CurveDates,ZeroRates);

LMMVolFunc = @(a,t) (a(1)*t + a(2)).*exp(-a(3)*t) + a(4);
LMMVolParams = [.3 -.02 .7 .14];
  
numRates = 20;
VolFunc(1:numRates,1) = {@(t) LMMVolFunc(LMMVolParams,t)};
  
Beta = .08;
CorrFunc = @(i,j,Beta) exp(-Beta*abs(i-j));
Correlation = CorrFunc(meshgrid(1:numRates)',meshgrid(1:numRates),Beta);
  
LMM = LiborMarketModel(irdc,VolFunc,Correlation,'Period',1)
LMM = 
  LiborMarketModel with properties:

       ZeroCurve: [1x1 IRDataCurve]
    VolFunctions: {20x1 cell}
     Correlation: [20x20 double]
      NumFactors: NaN
          Period: 1

Симулируйте термин структуры для заданного LMM объект.

[ZeroRates, ForwardRates] = simTermStructs(LMM, 10,'nTrials',100);

Создайте LMM объект с помощью RateSpec.

Settle = datenum('15-Dec-2007');
CurveTimes = [1:5 7 10 20]';
ZeroRates = [.01 .018 .024 .029 .033 .034 .035 .034]';
CurveDates = daysadd(Settle,360*CurveTimes,1);

RateSpec = intenvset('Rates',ZeroRates,'EndDates',CurveDates,'StartDate',Settle);

LMMVolFunc = @(a,t) (a(1)*t + a(2)).*exp(-a(3)*t) + a(4);
LMMVolParams = [.3 -.02 .7 .14];
  
numRates = 20;
VolFunc(1:numRates,1) = {@(t) LMMVolFunc(LMMVolParams,t)};
  
Beta = .08;
CorrFunc = @(i,j,Beta) exp(-Beta*abs(i-j));
Correlation = CorrFunc(meshgrid(1:numRates)',meshgrid(1:numRates),Beta);
  
LMM = LiborMarketModel(RateSpec,VolFunc,Correlation,'Period',1)
LMM = 
  LiborMarketModel with properties:

       ZeroCurve: [1x1 IRDataCurve]
    VolFunctions: {20x1 cell}
     Correlation: [20x20 double]
      NumFactors: NaN
          Period: 1

Симулируйте термин структуры для заданного LMM объект.

[ZeroRates, ForwardRates] = simTermStructs(LMM, 10,'nTrials',100);

Больше о

развернуть все

Ссылки

[1] Brigo, D. и Ф. Меркурио. Модели процентной ставки - теория и практика. Финансы Спрингера, 2006.

Введенный в R2013a