stepcpnprice

Ценовая облигация со ступенчатыми купонами

Описание

пример

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

пример

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

Примеры

свернуть все

Рассчитать цену и начисленные проценты по портфелю облигаций со ступенчатым купоном с выражением 7,221% при трех сценариях конвертации:

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

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

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

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

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

Yield = 0.07221;
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;

Использование stepcpnprice вычислить цены облигаций с помощью ступенчатых купонов.

[Price, AccruedInterest] = stepcpnprice(Yield, Settle, Maturity, ConvDates, CouponRates, Period, Basis, EndMonthRule, Face)
Price = 3×1

  117.3874
  113.4387
  114.1759

AccruedInterest = 3×1

    1.1587
    0.9792
    0.9792

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

свернуть все

Выход к зрелости, заданный как скаляр или 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 вектор.

Примечание

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

начисленные проценты к оплате в даты расчета, возвращенные как NUMBONDS-by- 1 вектор.

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