Оценка и вычисление урожаев для ценных бумаг фиксированного дохода

Введение

Продукт Financial Toolbox™ обеспечивает функции для вычислительных начисленных процентов, цены, урожая, выпуклости и длительности ценных бумаг фиксированного дохода. Различные соглашения существуют для определения деталей этих вычислений. Программное обеспечение Financial Toolbox поддерживает соглашения, заданные Индустрией ценных бумаг и Ассоциацией Финансовых рынков (SIFMA), используемый на американских рынках, Ассоциации международного рынка капитала (ICMA), используемой в основном на европейских рынках и Международной Ассоциации Подкачек и Производных (ISDA). По историческим причинам SIFMA упомянут в документации Financial Toolbox как SIA, и ISMA упоминается как Ассоциация международного рынка капитала (ICMA).

Терминология фиксированного дохода

Поскольку терминология отличается среди текстов на этом предмете, вот некоторые основные определения, которые применяются к этим функциям Financial Toolbox. Глоссарий содержит дополнительные определения.

Расчетный день связи является датой, когда деньги сначала переходят к другому владельцу; то есть, когда покупатель платит за связь. Это не должно совпадать с датой выпуска, которая является датой, которую связь сначала предлагается для продажи.

Первая дата купона и последняя дата купона являются датами, когда первые и последние купоны заплачены, соответственно. Несмотря на то, что связи обычно платят периодические ежегодные или полугодовые купоны, длина первых и последних периодов купона может отличаться от стандартного периода купона. Тулбокс включает функции цены и урожая, которые обрабатывают эти нечетные первые и/или последние периоды.

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

Ценные бумаги фиксированного дохода могут быть куплены в даты, которые не совпадают с датами купонного платежа. В этом случае владелец связи не назван на полную стоимость купона в течение того периода. Когда связь куплена между датами купона, покупатель должен компенсировать продавца пропорциональную долю процентной ставки купона, заработанной с предыдущей даты купонного платежа. Эта пропорциональная доля купонного платежа называется начисленными процентами. Покупная цена, цена, заплаченная за связь, является заключенной в кавычки рыночной ценой плюс начисленные проценты.

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

Период связи относится к частоте, с которой выпускающий связи делает купонные платежи держателю.

Период связи 

Значение периода

График платежей

0

Никакие купоны (Облигация с нулевым купоном)

1

Ежегодный

2

Полугодовой

3

Ежегодный тримараном

4

Ежеквартально

6

Два раза в месяц

12

Ежемесячно

Основание связи относится к основанию или базе ежедневного расчета процентов для связи. Основание обычно выражается как часть, в которой числитель определяет номер дней между двумя датами, и знаменатель определяет номер дней в году. Например, числитель фактических/фактических означает, что при определении номера дней между двумя датами, считайте фактический номер дней; знаменатель означает, что вы используете фактический номер дней в данном году в любых вычислениях (или 365 или 366 дней в зависимости от того, является ли данный год високосным годом).

База ежедневного расчета процентов определяет, как начисленные проценты вычисляются и определяют, как потоки наличности для связи обесценены, этим означает производить вычисления цены и урожая. Кроме того, соглашение SIA состоит в том, чтобы использовать фактическую/фактическую базу ежедневного расчета процентов для дисконтирования потоков наличности во всех случаях.

Основание связи

Базисное значение

Значение

Описание

0 (значение по умолчанию)

фактический/фактический

Фактические дни сохранены за фактические дни в период купона. Знаменатель 365 за большинство лет и 366 в високосный год.

1

30/360 (СИА)

Каждый месяц содержит 30 дней; год содержит 360 дней. Платежи настроены для связей, которые платят купоны в прошлый день февраля.

2

фактический/360

Фактические дни сохранены над 360.

3

фактический/365

Фактические дни сохранены над 365, даже в високосные годы.

4

30/360 PSA

Номер дней в каждом месяце определяется к 30 (включая февраль). Если дата начала периода является или 31-й из месяца или в последний день февраля, дата начала установлена в 30-е. Если дата начала является 30-й из месяца, и дата окончания является 31-й, дата окончания установлена в 30-е. Номер дней через год 360.

5

30/360 ISDA (Международная Ассоциация Дилеров по свопам)

Вариант 30/360 с незначительными различиями для вычисления номера дней за месяц.

6

Европеец 30E/360

Вариант 30/360, используемого, в основном, в Европе.

7

фактические/365 японцы

Все годы содержат 365 дней. Дни прыжка проигнорированы.

8

фактический/фактический (ICMA)

Фактические дни сохранены за фактические дни в период купона. Знаменатель 365 за большинство лет и 366 в високосный год. Это основание принимает ежегодный период соединения.

9

фактический/360 (ICMA)

Фактические дни сохранены над 360. Это основание принимает ежегодный период соединения.

10

фактический/365 (ICMA)

Фактические дни сохранены над 365, даже в високосные годы. Это основание принимает ежегодный период соединения.

11

30/360 (ICMA)

Номер дней в каждом месяце определяется к 30. Если дата начала или дата окончания периода является 31-й из месяца, та дата назначена к 30-му. Номер дней через год 360.

12

фактический/365 (ISDA)

В этот день часть количества равна сумме номера дней накопления процентов, падая с високосным годом, разделенным на 366 и номера дней накопления процентов, не находящихся в пределах високосного года, разделенного на 365.

13

ШИНА/252

Номер рабочих дней между предыдущим купонным платежом и данными об урегулировании, разделенными на 252. Рабочие дни BUS/252 являются невыходными, непраздничными днями. Файл holidays.m задает праздники.

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

Примечание

Несмотря на то, что концепция дневного количества звучит обманчиво простой, фактическое вычисление дневных количеств может быть комплексным. Можно найти хорошее обсуждение дневных количеств и формул для вычисления их в Главе 5 Стигума и Робинсона, Денежного рынка и Вычислений Связи в Библиографии.

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

Правило конца месяца

Значение правила конца месяца

Значение

1 (значение по умолчанию)

Управляйте в действительности.

0

Правило не в действительности.

Среда

Несмотря на то, что не все функции Financial Toolbox требуют тех же входных параметров, они все принимают следующий единый набор входных параметров.

Общие входные параметры

Входной параметр

Значение

Settle

Расчетный день

Maturity

Дата погашения

Period

Период купонного платежа

Basis

Основание дневного количества

EndMonthRule

Платежное правило конца месяца

IssueDate

Дата выпуска облигаций

FirstCouponDate

Первая дата купонного платежа

LastCouponDate

Последняя дата купонного платежа

Из общих входных параметров только требуются Settle и Maturity. Все другие являются дополнительными. Они установлены в значения по умолчанию, если вы явным образом не устанавливаете их. По умолчанию FirstCouponDate и LastCouponDate неприменимы. Другими словами, если вы не задаете FirstCouponDate и LastCouponDate, связь принята, чтобы иметь нечетные первые или последние периоды купона. В этом случае связь является стандартной связью со структурой купонного платежа, базирующейся только на дате погашения.

Значения параметров по умолчанию

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

Полный синтаксис вызова с полным списком входных параметров

CFlowDates = cfdates(Settle, Maturity, Period, Basis, ... 
EndMonthRule, IssueDate, FirstCouponDate, LastCouponDate)

в то время как минимальный синтаксис вызова требует только урегулирования и дат погашения

CFlowDates = cfdates(Settle, Maturity)

Один пример связи

Как пример, предположите, что у вас есть связь с этими характеристиками:

Settle          = '20-Sep-1999'
Maturity        = '15-Oct-2007'
Period          = 2
Basis           = 0
EndMonthRule    = 1
IssueDate       = NaN
FirstCouponDate = NaN
LastCouponDate  = NaN

Period, Basis и EndMonthRule установлены в их значения по умолчанию, и IssueDate, FirstCouponDate, и LastCouponDate установлен в NaN.

Официально, NaN является стандартом арифметики IEEE® для Не числа и используется, чтобы указать на результат неопределенной операции (например, делится на нуль нулем). Однако NaN является также удобным заполнителем. В функциях SIA программного обеспечения Financial Toolbox NaN указывает на присутствие неприменимого значения. Это говорит функциям Financial Toolbox игнорировать входное значение и применять значение по умолчанию. Устанавливание IssueDate, FirstCouponDate и LastCouponDate к NaN в этом примере говорит cfdates принимать, что облигация была выпущена перед урегулированием и что существуют никакие нечетные первые или последние периоды купона.

Установив эти значения, все эти вызовы cfdates приводят к тому же результату.

cfdates(Settle, Maturity)
cfdates(Settle, Maturity, Period)
cfdates(Settle, Maturity, Period, [])
cfdates(Settle, Maturity, [], Basis)
cfdates(Settle, Maturity, [], [])
cfdates(Settle, Maturity, Period, [], EndMonthRule)
cfdates(Settle, Maturity, Period, [], NaN)
cfdates(Settle, Maturity, Period, [], [], IssueDate)
cfdates(Settle, Maturity, Period, [], [], IssueDate, [], [])
cfdates(Settle, Maturity, Period, [], [], [], [],LastCouponDate)
cfdates(Settle, Maturity, Period, Basis, EndMonthRule, ... 
IssueDate, FirstCouponDate, LastCouponDate)

Таким образом отъезд конкретного незаданного входа имеет тот же эффект как передача пустой матрицы ([]) или передача NaN – все три говорят cfdates (и другие функции Financial Toolbox) использовать значение по умолчанию для конкретного входного параметра.

Пример портфеля связи

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

Теперь предположите, что у вас есть портфель двух связей.

Settle   = '20-Sep-1999'
Maturity = ['15-Oct-2007'; '15-Oct-2010']

Эти вызовы cfdates весь набор период купона к его значению по умолчанию (  Period = 2) для обеих связей.

cfdates(Settle, Maturity, 2)
cfdates(Settle, Maturity, [2 2])
cfdates(Settle, Maturity, [])
cfdates(Settle, Maturity, NaN)
cfdates(Settle, Maturity, [NaN NaN])
cfdates(Settle, Maturity)

Первые два вызова явным образом устанавливают Period = 2. Поскольку Maturity является 2-by-1 вектор дат погашения, cfdates знает, что у вас есть портфель 2D связи.

Первый вызов задает сингл (то есть, скаляр) 2 для Period. Передача скаляра говорит cfdates применять вход со скалярным знаком ко всем связям в портфеле. Это - пример неявного скалярного расширения. Расчетный день был неявен расширенный до скаляра также.

Второй вызов также применяет период купона по умолчанию путем явной передачи двухэлементного вектора 2's. Третий вызов передает пустую матрицу, которую cfdates интерпретирует как недопустимый период, в течение которого используется значение по умолчанию. Четвертый вызов подобен, за исключением того, что NaN был передан. Пятый вызов передает два NaN и имеет тот же эффект как третье. Последняя возможность передает минимальный входной набор.

Наконец, рассмотрите следующие вызовы cfdates для того же портфеля 2D связи.

cfdates(Settle, Maturity, [4 NaN])
cfdates(Settle, Maturity, [4 2])

Первый вызов явным образом устанавливает Period = 4 для первой связи и неявно устанавливает Period = 2 по умолчанию для второй связи. Второй вызов имеет тот же эффект как первое, но явным образом устанавливает периодичность для обеих связей.

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

Вычисления даты купона

Вычисление дат купона, или фактические или квази даты, является известно сложным. Программное обеспечение Financial Toolbox следует соглашениям SIA в вычислениях даты купона.

Первый шаг в нахождении дат купона, сопоставленных со связью, должен определить ссылку или дату синхронизации (синхронизирующая дата). В среде SIA порядок очередности для определения синхронизирующей даты:

  1. Первая дата купона

  2. Последняя дата купона

  3. Дата погашения

Другими словами, функция Financial Toolbox сначала исследует вход FirstCouponDate. Если FirstCouponDate задан, даты купонного платежа и даты квазикупона вычисляются относительно FirstCouponDate; если FirstCouponDate не задан, пуст ([]) или NaN, то LastCouponDate исследован. Если LastCouponDate задан, даты купонного платежа и даты квазикупона вычисляются относительно LastCouponDate. Если и FirstCouponDate и LastCouponDate не заданы, пусты ([]) или NaN, Maturity (необходимый входной параметр) служит датой синхронизации.

Приведите к соглашениям

Существуют два, уступают и соглашения фактора времени, которые используются в программном обеспечении Financial Toolbox – они определяются входом basis. А именно, базируется, 0 к 7 приняты, чтобы иметь полугодовое соединение, в то время как основы 8 к 12 приняты, чтобы иметь ежегодное соединение независимо от периода купонных платежей связи (включая облигации с нулевым купоном). Кроме того, любая связанная с урожаем чувствительность (то есть, длительность и выпуклость), когда заключено в кавычки на периодической основе, следует этому тому же соглашению. (См. bndconvp, bndconvy, bnddurp, bnddury и bndkrdur.)

Оценка функций

Этот пример показывает, как легко можно вычислить цену связи с нечетным первым периодом с помощью функционального bndprice. Примите, что у вас есть связь с этими характеристиками:

Settle          = '11-Nov-1992';
Maturity        = '01-Mar-2005';
IssueDate       = '15-Oct-1992';
FirstCouponDate = '01-Mar-1993';
CouponRate      = 0.0785;
Yield           = 0.0625;

Позвольте периоду купонного платежа (Period = 2), основание дневного количества (Basis = 0) и правило конца месяца (EndMonthRule = 1) принимать значения по умолчанию. Кроме того, примите, что существует никакая нечетная последняя дата купона и что номинальная стоимость связи составляет 100$. Вызывание функции

[Price, AccruedInt] = bndprice(Yield, CouponRate, Settle, ... 
Maturity, [], [], [], IssueDate, FirstCouponDate)

возвращает цену 113,60$ и начисленные проценты 0,59$.

Подобные функции вычисляют цены с регулярными платежами, нечетными первыми и последними периодами и ценами Казначейских векселей и обесцененных ценных бумаг, таких как облигации с нулевым купоном.

Примечание

bndprice и другие функции используют нелинейные формулы, чтобы вычислить цену безопасности. Поэтому программное обеспечение Financial Toolbox использует метод Ньютона при решении для независимой переменной в формуле. См. любой элементарный учебник численных методов для математики, лежащей в основе метода Ньютона.

Приведите к функциям

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

Settle          = '12-Jan-2000';
Maturity        = '01-Oct-2001';
IssueDate       = '01-Jan-2000';
FirstCouponDate = '15-Jan-2000';
LastCouponDate  = '15-Apr-2000';

Примите номинальную стоимость 100$. Задайте покупную цену 95,70$, купонную ставку 4%, ежеквартальные купонные платежи и 30/360 базу ежедневного расчета процентов (Basis = 1).

Price        = 95.7;
CouponRate   = 0.04;
Period       = 4;
Basis        = 1;
EndMonthRule = 1;

Вызывание функции

Yield = bndyield(Price, CouponRate, Settle, Maturity, Period,... 
Basis, EndMonthRule, IssueDate, FirstCouponDate, LastCouponDate)

возвращается

Yield = 0.0659 (6,60%).

Чувствительность фиксированного дохода

Программное обеспечение Financial Toolbox поддерживает следующие опции для управления риском процентной ставки для одной или нескольких связей:

  • bnddurp и bnddury поддерживают анализ длительности и выпуклости на основе рыночных котировок и принимают, что параллель переключает кривую доходности облигации на нижний регистр.

  • bndkrdur поддерживает длительность ключевой процентной ставки на основе кривой доходности рынка и может смоделировать непараллель, переключает кривую доходности облигации на нижний регистр.

Вычисление длительности и выпуклости для связей

Тулбокс включает функции, чтобы выполнить анализ чувствительности, такой как выпуклость и Маколей и измененная длительность для ценных бумаг фиксированного дохода. Длительность Маколея потока дохода, такого как облигация на предъявителя, измеряется, сколько времени в среднем владелец ожидает прежде, чем получить оплату. Это - взвешенное среднее платежей времен, сделаны, с весами во время T, равный приведенной стоимости денег, полученных во время T. Измененная длительность является длительностью Маколея, обесцененной процентной ставкой на период; то есть, разделенный на (1+rate/frequency).

Чтобы проиллюстрировать, следующий пример вычисляет пересчитанного на год Маколея и измененную длительность и периодическую длительность Маколея для связи с урегулированием (12 января 2000) и зрелостью (01 октября 2001) даты как выше, 5%-я купонная ставка и доход до срока погашения на 4,5%. Для простоты любые дополнительные входные параметры принимают значения по умолчанию (то есть, полугодовые купоны и дневное количество basis = 0 (фактических/фактических) структур купонного платежа, синхронизируемых с датой погашения и платежным правилом конца месяца в действительности).

CouponRate = 0.05;
Yield = 0.045;

[ModDuration, YearDuration, PerDuration] = bnddury(Yield,... 
CouponRate, Settle, Maturity)

Длительность

ModDuration  = 1.6107 (years)
YearDuration = 1.6470 (years)
PerDuration  = 3.2940 (semiannual periods)

Обратите внимание на то, что полугодовая периодическая длительность Маколея (PerDuratio n) является дважды пересчитанной на год длительностью Маколея (YearDuration).

Вычисление длительности ключевой процентной ставки для связей

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

Вычисление поддержек bndkrdur:

krduri = (PVdown - PVup)(PV × ShiftValue × 2)

Где PV является текущим значением инструмента, PV_up и PV_down являются новыми значениями после того, как дисконтная кривая была потрясена, и ShiftValue является изменением в процентной ставке. Например, если ключевые процентные ставки 3 месяцев, 1, 2, 3, 5, 7, 10, 15, 20, 25, 30 лет были выбраны, то 30-летняя связь может иметь соответствующую длительность ключевой процентной ставки:

3M1Y2Y3Y5Y7Y10Y15Y20Y25Y30Y
.01.04.09.21.4.651.271.711.681.837.03

Длительность ключевой процентной ставки составляет в целом приблизительно равный длительность связи.

Например, вычислите длительность ключевой процентной ставки Казначейской облигации США с датой погашения от 15 августа 2028 и купонной ставки 5,5%.

Settle = datenum('18-Nov-2008'); 
CouponRate = 5.500/100;
Maturity = datenum('15-Aug-2028'); 
Price = 114.83;

Для получения информации о ZeroData о текущей точечной кривой для этой связи обратитесь к https://www.treas.gov/offices/domestic-finance/debt-management/interest-rate/yield.shtml:

ZeroDates = daysadd(Settle ,[30 90 180 360 360*2 360*3 360*5 ...
360*7 360*10 360*20 360*30]);
ZeroRates = ([0.06 0.12 0.81 1.08 1.22 1.53 2.32 2.92 3.68 4.42 4.20]/100)';

Вычислите длительность ключевой процентной ставки для определенного набора уровней (выберите это на основе сроков платежа доступных инструментов хеджирования):

krd = bndkrdur([ZeroDates ZeroRates],CouponRate,Settle,Maturity,'keyrates',[2 5 10 20])
krd =

    0.2865    0.8729    2.6451    8.5778

Отметьте, сумма длительности ключевой процентной ставки приблизительно равняется длительности связи:

[sum(krd) bnddurp(Price,CouponRate,Settle,Maturity)]
ans =

   12.3823   12.3919

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

| | | |

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

Больше о