stepcpnyield

Доходность к погашению облигации со ступенчатыми купонами

Описание

пример

Yield = stepcpnyield(Price,Settle,Maturity,ConvDates,CouponRates) вычисляет выражение к погашению облигаций со ступенчатыми купонами по цене. Функция поддерживает любое количество дат преобразования.

пример

Yield = stepcpnyield(___,Period,Basis,EndMonthRule,Face) добавляет дополнительные необязательные аргументы.

Примеры

свернуть все

Найдите выражение к погашению трех облигаций с переходным купоном известной цены, учитывая три сценария конвертации:

  • Облигация A имеет две конверсии, первая из которых приходится на дату расчета и сразу же истекает.

  • Облигация B имеет три конвертации с датами конвертации точно на даты купона.

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

Следующая таблица иллюстрирует характеристики процентной ставки этого портфеля облигаций.

Определите спецификации для облигаций.

format long
Price = [117.3824; 113.4339; 113.4339];
Settle = datenum('02-Aug-1992');

ConvDates = [datenum('02-Aug-1992'), datenum('15-Jun-2003'), nan;
datenum('15-Jun-1997'), datenum('15-Jun-2001'), datenum('15-Jun-2005'); 
datenum('14-Jun-1997'), datenum('14-Jun-2001'), datenum('14-Jun-2005')];
        
Maturity = datenum('15-Jun-2010');

CouponRates = [0.075 0.08875 0.0925 nan;
               0.075 0.08875 0.0925 0.1;
               0.075 0.08875 0.0925 0.1];
Basis = 1;
Period = 2;
EndMonthRule = 1;
Face = 100;

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

Yield = stepcpnyield(Price, Settle, Maturity, ConvDates, CouponRates, Period, Basis, EndMonthRule, Face)
Yield = 3×1

   0.072214402049150
   0.072214267800360
   0.072864799557221

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

свернуть все

Цена облигации, заданная в виде скаляра или NUMBONDS-by- 1 вектор числовых значений.

Типы данных: double

Дата расчета, заданная в виде скаляра или NUMBONDS-by- 1 вектор серийных номеров дат.

Settle должно быть раньше Maturity.

Типы данных: double

Дата зрелости, заданная в виде скаляра или NUMBONDS-by- 1 вектор серийных номеров дат, представляющий дату погашения для каждой облигации.

Типы данных: double

Даты преобразования, заданные как NSTP-by-max (NCONV) матрица, содержащая даты преобразования после Settle. Размер матрицы равен количеству инструментов на максимальное количество преобразований. Заполните неопределенные записи NaN.

Типы данных: double

Ставка купона на облигацию, заданная как NSTP-by-max (NCONV+1) матрица, содержащая ставки купонов для каждой облигации в портфеле в десятичной форме. Размер матрицы равен количеству инструментов по максимальному количеству преобразований + 1. Первый столбец этой матрицы содержит скорости, применимые между Settle и первую дату преобразования (дата в первом столбце ConvDates). Заполните неопределенные записи NaN

ConvDates имеет одинаковое число строк как CouponRates для отражения того же количества облигаций. Однако ConvDates имеет на один столбец меньше, чем CouponRates. Эта ситуация проиллюстрирована на

Settle---------ConvDate1-----------ConvDate2------------Maturity

         Rate1               Rate2                 Rate3

Типы данных: double

(Необязательно) Купоны в год в виде NUMBONDS-by- 1 вектор. Значения для Period являются 1, 2, 3, 4, 6, и 12.

Типы данных: double

(Необязательно) Дневной базис каждого инструмента, заданный как NUMBONDS-by- 1 вектор.

  • 0 = факт/факт

  • 1 = 30/360 (SIA)

  • 2 = факт/360

  • 3 = факт/365

  • 4 = 30/360 (PSA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (европейский)

  • 7 = факт/365 (японский)

  • 8 = факт/факт (ICMA)

  • 9 = факт/360 (ICMA)

  • 10 = факт/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = факт/365 (ISDA)

  • 13 = BUS/252

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

Типы данных: double

(Необязательно) Флаг правила конца месяца для генерации дат при Maturity - дата конца месяца для месяца, имеющего 30 или менее дней, заданная для каждой связи в качестве неотрицательного целого числа [0, 1] использование NUMBONDS-by- 1 вектор.

  • 0 = Игнорировать правило, означающее, что дата платежа всегда является одним и тем же числовым днем месяца.

  • 1 = Установите правило, означающее, что дата платежа всегда является последним фактическим днем месяца.

Типы данных: logical

(Необязательно) Номинальное значение, заданная для каждой облигации как NUMBONDS-by- 1 вектор неотрицательных значений граней.

Типы данных: double

Выходные аргументы

свернуть все

Доходность до зрелости, возвращенная как NUMBONDS-by- 1 вектор в десятичной форме.

Примечание

Для облигаций с фиксированными купонами используйте bndyield. Вы получаете ошибку incorrect number of inputs если вы используете облигацию с фиксированным купоном с stepcpnyield.

Представлено до R2006a