Цены облигаций и сдвиги параллели кривой доходности

Этот пример использует функции оценки связи Financial Toolbox™, чтобы оценить влияние времени к зрелости и изменение урожая на цене портфеля связи. Кроме того, этот пример показывает, как визуализировать динамику цен портфеля связей по широкому спектру сценариев кривой доходности, и в то время как время прогрессирует к зрелости.

Задайте значения в течение расчетного дня, даты погашения, номинальной стоимости, купонной ставки и периодичности купонного платежа портфеля с четырьмя связями. Для простоты примите значения по умолчанию для платежного правила конца месяца (правило в действительности) и (фактическое/фактическое) основание дневного количества. Кроме того, синхронизируйте структуру купонного платежа с датой погашения (никакие нечетные первые или последние даты купона). Любые входные параметры, для которых приняты значения по умолчанию, собираются освободить матрицы ([]) как заполнители, где это необходимо. Кроме того, задайте точки на кривой доходности для каждой связи.

Settle     = '15-Jan-1995';
Maturity   = datenum(['03-Apr-2020'; '14-May-2025'; ...
                      '09-Jun-2019'; '25-Feb-2019']);
Face       = [1000; 1000; 1000; 1000];
CouponRate = [0; 0.05; 0; 0.055];
Periods    = [0; 2; 0; 2];

Yields = [0.078; 0.09; 0.075; 0.085];

Используйте функции Financial Toolbox, чтобы вычислить истинные цены облигаций как сумму указанной цены плюс начисленные проценты.

[CleanPrice, AccruedInterest] = bndprice(Yields,... 
CouponRate,Settle, Maturity, Periods,...
[], [], [], [], [], [], Face);

Prices  =  CleanPrice + AccruedInterest
Prices = 4×1

  145.2452
  594.7757
  165.8949
  715.7584

Примите, что значение каждой связи составляет 25 000$, и определите количество каждой связи, таким образом, что стоимость портфеля составляет 100 000$.

BondAmounts = 25000 ./ Prices;

Вычислите цену портфеля за прокручивающийся ряд расчетных дней в области значений урожаев. Даты оценки происходят ежегодно 15 января, начинаясь 15 января 1995 (урегулирование) и расширяя до 15 января 2018. Таким образом этот шаг оценивает цену портфеля на сетку времени прогрессии (dT) и процентные ставки (dY).

dy = -0.05:0.005:0.05;               % Yield changes

D  = datevec(Settle);                % Get date components
dt = datenum(D(1):2018, D(2), D(3)); % Get evaluation dates

[dT, dY]  =  meshgrid(dt, dy); % Create grid

NumTimes  =  length(dt);       % Number of time steps
NumYields =  length(dy);       % Number of yield changes
NumBonds  =  length(Maturity); % Number of bonds

% Preallocate vector
Prices = zeros(NumTimes*NumYields, NumBonds);

Теперь, когда сетка и ценовые векторы были созданы, вычислите цену каждой связи в портфеле на сетке одна связь за один раз.

for i = 1:NumBonds

   [CleanPrice, AccruedInterest] = bndprice(Yields(i)+... 
   dY(:), CouponRate(i), dT(:), Maturity(i), Periods(i),...
   [], [], [], [], [], [], Face(i));

   Prices(:,i) = CleanPrice + AccruedInterest;

end

Масштабируйте цены облигаций количеством связей и измените стоимости облигации, чтобы соответствовать базовой сетке оценки.

Prices = Prices * BondAmounts;
Prices = reshape(Prices, NumYields, NumTimes);

Постройте цену портфеля как функция расчетного дня и область значений урожаев, и как функция изменения в урожае (dY). Этот график иллюстрирует чувствительность процентной ставки портфеля как прогресс времени (dT) под областью значений сценариев процентной ставки. Со следующими графическими командами можно визуализировать 3D поверхность относительно текущей стоимости портфеля (то есть, 100 000$).

figure                   % Open a new figure window
surf(dt, dy, Prices)     % Draw the surface

hold on                  % Add the current value for reference
basemesh = mesh(dt, dy, 100000*ones(NumYields, NumTimes));
set(basemesh, 'facecolor', 'none');
set(basemesh, 'edgecolor', 'm');
set(gca, 'box', 'on');

dateaxis('x', 11);
xlabel('Evaluation Date (YY Format)');
ylabel('Change in Yield');
zlabel('Portfolio Price');
hold off
view(-25,25);

MATLAB® 3D графика позволяет вам визуализировать риск процентной ставки, испытанный портфелем связи в зависимости от времени. Принятая параллель этого примера переключает термин на нижний регистр структура, но это может так же позволить другим компонентам отличаться, такие как уровень и наклон.

Смотрите также

| | | | | | | | | |

Похожие темы