exponenta event banner

fitNelsonSiegel

Подбор функции Нельсона-Сигела для данных рынка облигаций

fitNelsonSiegel для IRFunctionCurve не рекомендуется. Использовать fitNelsonSiegel с parametercurve вместо этого объект. Дополнительные сведения см. в разделе fitNelsonSiegel.

Синтаксис

CurveObj = IRFunctionCurve.fitNelsonSiegel(Type,Settle,Instruments)
CurveObj = IRFunctionCurve.fitNelsonSiegel(Type,Settle,Instruments,Name,Value)

Аргументы

Type

Тип кривой процентной ставки для облигации: zero или forward.

Settle

Скаляр для Settle дата кривой.

Instruments

Nоколо-4 матрица данных для Instruments где первый столбец Settle дата, второй столбец - Maturity, третий столбец - чистая цена, а четвертый столбец - CouponRate для облигации.

Compounding

(Необязательно) Скаляр, задающий частоту объединения в год для IRFunctionCurve объект:

  • -1 = Непрерывное компаундирование

Basis

(Необязательно) База подсчета дней кривой процентных ставок. Скаляр целых чисел.

  • 0 = факт/факт (по умолчанию)

  • 1 = 30/360 (SIA)

  • 2 = фактически/360

  • 3 = факт/365

  • 4 = 30/360 (BMA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (европейский)

  • 7 = факт/365 (японский)

  • 8 = факт/факт (ICMA)

  • 9 = факт/360 (ICMA)

  • 10 = факт/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = факт/365 (ISDA)

  • 13 = BUS/252

Дополнительные сведения см. в разделе Базис.

IRFitOptions

(Необязательно) Объект, созданный из IRFitOptions. При использовании IRFitOption, значение по умолчанию FitType является DurationWeightedPrice. Взвешенная цена длительности относится к форме целевой функции, которую необходимо минимизировать, чтобы найти оптимальные параметры Нельсона-Сигеля. В частности, эта целевая функция сводит к минимуму использование следующих трех алгоритмов:

  • Разница между наблюдаемыми и прогнозируемыми моделью выходами для каждой связи, ObsY_i - PredY_я

  • Разница между наблюдаемыми и прогнозируемыми моделью ценами для каждой облигации, ObsP_i - PredP_я

  • Разница между наблюдаемыми и прогнозируемыми моделью ценами, взвешенная по обратной длительности каждой облигации (ObsP_i - PredP_i )/ D_I. Взвешивание цены по обратной длительности преобразует ошибки ценообразования в ошибки податливости, в первую аппроксимацию.

Параметры КИП

Для каждой облигации InstrumentВ качестве пар «имя-значение» можно указать следующие дополнительные параметры прибора. Например, InstrumentBasis различает облигационный инструмент Basis значение из кривой Basis значение.

InstrumentPeriod

(Необязательно) Купоны в год облигации. Вектор целых чисел. Допустимые значения: 0, 1, 2 (по умолчанию), 3, 4, 6, и 12.

InstrumentBasis

(Необязательно) Основание счета дня облигации. Вектор целых чисел.

  • 0 = факт/факт (по умолчанию)

  • 1 = 30/360 (SIA)

  • 2 = фактически/360

  • 3 = факт/365

  • 4 = 30/360 (BMA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (европейский)

  • 7 = факт/365 (японский)

  • 8 = факт/факт (ICMA)

  • 9 = факт/360 (ICMA)

  • 10 = факт/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = факт/365 (ISDA)

  • 13 = BUS/252

Дополнительные сведения см. в разделе Базис.

InstrumentEndMonthRule

(Необязательно) Правило конца месяца. Вектор. Это правило применяется только в том случае, если Maturity - дата окончания месяца, имеющая 30 или менее дней. 0 = игнорировать правило, означающее, что дата купонной выплаты облигации всегда совпадает с числовым днем месяца. 1 = set rule on (по умолчанию), что означает, что дата купонной выплаты облигации всегда является последним фактическим днем месяца.

InstrumentIssueDate

(Необязательно) Дата выпуска документа.

InstrumentFirstCouponDate

(Необязательно) Дата, когда облигация осуществляет свой первый купонный платеж; используется, когда облигация имеет нерегулярный первый купонный период. Когда FirstCouponDate и LastCouponDate оба указаны, FirstCouponDate имеет приоритет при определении структуры купонных выплат. Если не указать FirstCouponDateдаты оплаты денежного потока определяются из других входных данных.

InstrumentLastCouponDate

(Необязательно) Дата последнего купона облигации до даты погашения; используется, когда облигация имеет нерегулярный последний купонный период. При отсутствии указанного FirstCouponDate, указанный LastCouponDate определяет структуру купона облигации. Купонная структура облигации усечена в LastCouponDateнезависимо от того, куда она попадает, и следует только дата денежного потока погашения облигации. Если не указать LastCouponDateдаты оплаты денежного потока определяются из других входных данных.

InstrumentFace

(Необязательно) Номинал или номинал. По умолчанию = 100.

Примечание

При использовании Instrument пары имя-значение, можно указать простой для связи, указав InstrumentPeriod значение как 0. Если InstrumentBasis и InstrumentPeriod не указаны для облигации, используются следующие значения по умолчанию: Basis является 0 (акт/акт) и Period является 2.

Описание

CurveObj = IRFunctionCurve.fitNelsonSiegel(Type, Settle, Instruments,Name,Value) подходит для функции Нельсона-Сигеля для рыночных данных по облигациям. Необходимо ввести необязательные аргументы для Basis, Compounding, и IRFitOptions как пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

После создания модели Нельсона-Сигеля можно просмотреть параметры модели Нельсона-Сигеля, используя:

CurveObj.Parameters
где порядок параметров [Beta0,Beta1,Beta2,tau1].

Примеры

свернуть все

В этом примере показано, как использовать функцию Нельсона-Сигеля для подбора рыночных данных облигаций.

Settle = repmat(datenum('30-Apr-2008'),[6 1]);
Maturity = [datenum('07-Mar-2009');datenum('07-Mar-2011');...
datenum('07-Mar-2013');datenum('07-Sep-2016');...
datenum('07-Mar-2025');datenum('07-Mar-2036')];

CleanPrice = [100.1;100.1;100.8;96.6;103.3;96.3];
CouponRate = [0.0400;0.0425;0.0450;0.0400;0.0500;0.0425];
Instruments = [Settle Maturity CleanPrice CouponRate];
PlottingPoints = datenum('07-Mar-2009'):180:datenum('07-Mar-2036');
Yield = bndyield(CleanPrice,CouponRate,Settle,Maturity);

NSModel = IRFunctionCurve.fitNelsonSiegel('Zero',datenum('30-Apr-2008'),Instruments);

NSModel.Parameters
ans = 1×4

    4.6617   -1.0227   -0.3484    1.2386

% create the plot
plot(PlottingPoints, getParYields(NSModel, PlottingPoints),'r')
hold on
scatter(Maturity,Yield,'black')
datetick('x')

Figure contains an axes. The axes contains 2 objects of type line, scatter.

Алгоритмы

Модель Нельсона-Сигеля предполагает, что мгновенная прямая кривая может быть смоделирована следующим образом:

f = β0 + β1e m

Это может быть интегрировано для получения уравнения для нулевой кривой (см. [6] для получения дополнительной информации о уравнениях и выводе):

Для получения дополнительной информации см. [1].

Ссылки

[1] Нельсон, К. Р., Сигел, А. Ф. «Парсимное моделирование кривых доходности». Журнал бизнеса. Том 60, 1987, стр. 473-89.

[2] Свенссон, Л.Э. «Оценка и интерпретация форвардных процентных ставок: Швеция 1992-4». Международный валютный фонд, рабочий документ МВФ, 1994/114 год.

[3] Фишер, М., Нычка, Д., Зервос, Д. «Подгонка терминологической структуры процентных ставок сглаживающими сплайнами». Совет управляющих Федеральной резервной системы, рабочий документ Совета Федеральной резервной системы 1995-1.

[4] Андерсон, Н., Слит, Дж. «Новые оценки реальных и номинальных кривых доходности Великобритании». Ежеквартальный бюллетень Банка Англии, ноябрь 1999 года, стр. 384-92.

[5] Ваггонер, Д. «Сплайн-методы извлечения кривых процентных ставок из цен купонных облигаций». Рабочий документ Совета Федеральной резервной системы 1997-10.

[6] «Кривые доходности нулевого купона: техническая документация». Документы БМР № 25, октябрь 2005 года.

[7] Болдер, Д. Дж., Гусба, С. «Экспоненты, полиномы и серии Фурье: моделирование кривой доходности в Банке Канады». Рабочие документы 2002-29, Банк Канады.

[8] Болдер, Д. Дж., Стрелиски, Д. «Моделирование кривой доходности в Банке Канады». Технические отчеты 84, 1999, Банк Канады.

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