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

Этот пример показывает, как использовать объекты 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, Банк Канады.