exponenta event banner

LiborMarketModel

Создание рыночной модели LIBOR

Описание

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

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

dFi (t) Fi =

где:

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

dWi (t) dWj (t) = αij

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

pcii (t) = starti (t) ∑j=q (t) istartjαi, j (t) Fj (t) 1 + startjFj (t)

где:

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

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

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

starti - временная дробь, связанная с i-ой прямой скоростью

q (t) - индекс, определяемый соотношением

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

и номер Spot LIBOR определяется как

B (t) = P (t, Tq (t)) ∏n=0q (t) 1 (1 + startnFn (Tn))

Создание

Описание

пример

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

пример

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

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

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

Нулевая кривая, используемая для изменения пути будущих процентных ставок, указанных как результат IRDataCurve или RateSpec которая получена из intenvset. ZeroCurve ввод задает свойство ZeroCurve.

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

Функция волатильности, заданная с помощью NumRatesоколо-1 массив ячеек функций обрабатывает и устанавливает свойство 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около-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около-121около-nTrials.

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

Свойства

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

Нулевая кривая, заданная как вывод из IRDataCurve или RateSpec которая получена из intenvset.

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

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

Типы данных: 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] Бриго, Д. и Ф. Меркурио. Модели процентных ставок - теория и практика. Springer Finance, 2006.

Представлен в R2013a