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

В этом примере показано, как использовать IRFunctionCurve объекты смоделировать термин структура процентных ставок (также называемый кривой доходности). Это может контрастироваться с моделированием термина структура с векторами из дат и данных и интерполяции между точками (который может в настоящее время быть сделан с функциональным prbyzero).

Термин структура может отнестись по крайней мере к трем различным кривым: дисконтная кривая, кривая нулевой ширины или прямая кривая.

IRFunctionCurve объект позволяет вам моделировать кривую процентной ставки как функцию.

Этот пример исследует использование IRFunctionCurve смоделировать структуру термина без значений по умолчанию процентных ставок в Соединенном Королевстве. Три различных форм для термина структура реализованы и обсуждены более подробно позже:

  • Нельсон-Сигель

  • Свенсон

  • Сглаживание Кубического Сплайна с так называемым Переменным штрафом шероховатости (VRP)

Выбор данных

Первый вопрос в моделировании кривой доходности - то, какие данные должны использоваться. Чтобы смоделировать кривую доходности без значений по умолчанию, инструменты рынка без опций, без значений по умолчанию должны использоваться. Старшим значащим компонентом данных являются британские Государственные облигации (известный как Гарантированные ценные бумаги). Исторические данные получены от следующего сайта:

https://www.dmo.gov.uk

Данные Repo используются, чтобы создать короткий конец кривой доходности. Данные Repo получены от следующего сайта:

https://www.ukfinance.org.uk /

Обратите внимание также, что данные должны быть заданы как матрица, где столбцами является Settle, Maturity, CleanPrice, и CouponRate и это оснащает, должны быть связи или искусственно преобразованный в связи.

Данные о рынке для близкой даты от 30 апреля 2008, были загружены и сохранены в следующий файл данных (ukdata20080430), который загружается в MATLAB® со следующей командой:

% Load the data
load ukdata20080430

% Convert repo rates to be equivalent zero coupon bonds
RepoCouponRate = repmat(0,size(RepoRates));
RepoPrice = bndprice(RepoRates, RepoCouponRate, RepoSettle, RepoMaturity);

% Aggregate the data
Settle = [RepoSettle;BondSettle];
Maturity = [RepoMaturity;BondMaturity];
CleanPrice = [RepoPrice;BondCleanPrice];
CouponRate = [RepoCouponRate;BondCouponRate];
Instruments = [Settle Maturity CleanPrice CouponRate];
InstrumentPeriod = [repmat(0,6,1);repmat(2,31,1)];

CurveSettle = datenum('30-Apr-2008');

Подбирайте модель Нельсона-Сигеля, чтобы продать данные

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

f=β0+β1e-mτ+β2e-mτmτ

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

s=β0+(β1+β2)τm(1-e-mτ)-β2e-mτ

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

IRFunctionCurve объект предусматривает возможность соответствовать кривой Нельсона Зигеля к наблюдаемым данным о рынке с fitNelsonSiegel метод. Подбор кривой сделан путем вызывания функции Optimization Toolbox™ lsqnonlin.

fitNelsonSiegel метод потребовал входных параметров для Кривой Type, Изогните Settle, и матрица инструментальных данных.

Дополнительные входные параметры, заданные в аргументе пары "имя-значение":

  • IRFitOptions структура: Предусматривает возможность выбрать, какое количество быть минимизированным (цена, выражение или длительность взвесили цену), и другие параметры оптимизации (например, верхние и нижние границы для параметров).

  • Изогните Compounding и Basis (база ежедневного расчета процентов)

  • Дополнительные инструментальные параметры, Period, Basis, FirstCouponDate, и так далее.

NSModel = IRFunctionCurve.fitNelsonSiegel('Zero',CurveSettle,...
    Instruments,'InstrumentPeriod',InstrumentPeriod);

Подбирайте модель Свенсона

Очень похожая модель к модели Нельсона-Сигеля является моделью Свенсона, которая добавляет два дополнительных параметра с учетом большей гибкости в термине структура. Эта модель предлагает, чтобы форвардный курс мог быть смоделирован со следующей формой:

f=β0+β1e-mτ1+β2e-mτ1mτ1+β3e-mτ2mτ2

Как выше, это может быть интегрировано, чтобы вывести уравнение для кривой нулевой ширины:

s=β0+β1(1-e-mτ1)(-τ1m)+β2((1-e-mτ1)τ1m-emτ1)+β3((1-e-mτ2)τ2m-emτ2)

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

Подбор кривой параметрам к этой модели переходит подобным способом к модели Нельсона-Сигеля использование fitSvensson метод.

SvenssonModel = IRFunctionCurve.fitSvensson('Zero',CurveSettle,...
    Instruments,'InstrumentPeriod',InstrumentPeriod);

Подходящий сплайн сглаживания

Термин структура может также быть смоделирован со сплайном, а именно, один способ смоделировать термин структура путем представления прямой кривой кубическим сплайном. Чтобы гарантировать, что сплайн достаточно является гладким, штраф наложен относящийся к искривлению (вторая производная) сплайна:

i=1N[Pi-Pˆi(f)Di]2+0Mλt(m)[f(m)]2dm

где первый срок является различием между наблюдаемой ценой P и предсказанной ценой, P_hat, (взвешенный длительностью связи, D) суммированный по всем связям в наборе данных, и второй срок является термином штрафа (где lambda является функцией штрафа, и f является сплайном).

См. [3], [4], [5] ниже.

Были различные предложения по спецификации lambda функции штрафа. Один подход, защищенный [4], и в настоящее время используемый Службой управления государственным долгом Великобритании, является функцией штрафа следующей формы:

log(λ(m))=L-(L-S)e-mμ

Параметры L, S, и mu обычно оцениваются от исторических данных.

IRFunctionCurve объект может использоваться, чтобы соответствовать представлению сплайна сглаживания прямой кривой с функцией штрафа использование метода fitSmoothingSpline.

Необходимыми входными параметрами, как для методов выше, является CurveType, CurveSettle, Instruments матрица и указатель на функцию (Lambdafun) содержа функцию штрафа.

Дополнительные параметры похожи на fitNelsonSiegel и fitSvensson.

% Parameters chosen to be roughly similar to [4] below.
L = 9.2;
S = -1;
mu = 1;

lambdafun = @(t) exp(L - (L-S)*exp(-t/mu)); % Construct penalty function
t = 0:.1:25; % Construct data to plot penalty function
y = lambdafun(t);
figure
semilogy(t,y);
title('Penalty Function for VRP Approach')
ylabel('Penalty')
xlabel('Time')

VRPModel = IRFunctionCurve.fitSmoothingSpline('Forward',CurveSettle,...
    Instruments,lambdafun,'Compounding',-1,...
    'InstrumentPeriod',InstrumentPeriod);

Используйте кривые по экспериментальным точкам и постройте результаты

Если кривая создается, методы используются, чтобы извлечь Прямые и Нулевые Уровни и Коэффициенты дисконтирования. Эта кривая может также быть преобразована в RateSpec структура с помощью toRateSpec метод. RateSpec может затем использоваться со многими другими функциями в Financial Instruments Toolbox™

PlottingDates = CurveSettle+20:30:CurveSettle+365*25;
TimeToMaturity = yearfrac(CurveSettle,PlottingDates);

NSForwardRates = NSModel.getForwardRates(PlottingDates);
SvenssonForwardRates = SvenssonModel.getForwardRates(PlottingDates);
VRPForwardRates = VRPModel.getForwardRates(PlottingDates);

figure
hold on
plot(TimeToMaturity,NSForwardRates,'r')
plot(TimeToMaturity,SvenssonForwardRates,'g')
plot(TimeToMaturity,VRPForwardRates,'b')
title('UK Instantaneous Nominal Forward Curve')
xlabel('Years Ahead')
legend({'Nelson Siegel','Svensson','VRP'})

Сравните с этой Ссылкой

Эта ссылка обеспечивает живой взгляд на выведенную кривую доходности, опубликованную Великобританией

https://www.bankofengland.co.uk

Библиография

Этот пример основан на следующих бумагах и статьях в журнале:

[1] Нельсон, C.R., Зигель, A.F., (1987), "Экономное Моделирование Кривых доходности". Журнал Бизнеса. 60, стр 473-89.

[2] Свенсон, L.E.O. (1994), "Оценка и интерпретация прямых процентных ставок: Швеция 1992-4". Международный валютный фонд, рабочий документ МВФ, 1994/114.

[3] Фишер, M., Nychka, D., Zervos, D. (1995), "Соответствуя термину структура процентных ставок со сглаживанием сплайнов". Совет управляющих Федеральной резервной системы, рабочего документа федерального резервного управления, 95-1.

[4] Андерсон, N., Sleath, J. (1999), "Новые Оценки Великобритании Действительные и Номинальные Кривые доходности". Банк Англии Ежеквартальный Бюллетень. Ноябрь, стр 384-92.

[5] Извозчик, Д. (1997), "Методы сплайна для извлечения кривых процентной ставки от цен облигации на предъявителя". Рабочий документ федерального резервного управления, 97-10.

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

[7] Более полужирный, D.J., Gusba, S (2002), "Экспоненциалы, полиномы и ряд Фурье: больше моделирования кривой доходности в Банке Канады". Рабочие документы 02-29, Банк Канады.

[8] Более полужирный, D.J., Стрелиский, D (1999), "Моделирование кривой доходности в Банке Канады". Технические отчеты 84, Банк Канады.

Для просмотра документации необходимо авторизоваться на сайте