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