exponenta event banner

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

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

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

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

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

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

  • Свенсон

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

Выбор данных

Первый вопрос при моделировании кривой доходности заключается в том, какие данные следует использовать. Для моделирования кривой доходности, свободной от дефолта, должны использоваться рыночные инструменты, свободные от дефолта и опциона. Наиболее значимой составляющей данных являются государственные облигации Великобритании (известные как Gilts). Исторические данные извлекаются со следующего сайта:

https://www.dmo.gov.uk

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

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

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

s = β0 + (β1 + β2)

Для получения дополнительной информации см. [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

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

s = β0 + β1 (1-e-m

Для получения дополнительной информации см. [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), суммированная по всем облигациям в наборе данных, а второй член - штрафной член (где лямбда - штрафная функция, а f - сплайн).

См. разделы [3], [4], [5] ниже.

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

log (λ (m)) = L- (L-S) e-мкм

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

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

Требуемые входные данные, как и для методов, описанных выше, являются CurveType, КриваяSettle, 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')

Figure contains an axes. The axes with title Penalty Function for VRP Approach contains an object of type line.

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

Использование подогнанных кривых и результатов печати

После построения кривой используются методы извлечения форвардных и нулевых ставок и коэффициентов дисконтирования. Эта кривая также может быть преобразована в RateSpec структура с использованием toRateSpec способ. RateSpec затем может использоваться со многими другими функциями в финансовых инструментах 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'})

Figure contains an axes. The axes with title UK Instantaneous Nominal Forward Curve contains 3 objects of type line. These objects represent Nelson Siegel, Svensson, VRP.

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

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

https://www.bankofengland.co.uk

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

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

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

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

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

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

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

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

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

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

См. также

| | |

Связанные примеры

Подробнее

Внешние веб-сайты