stepcpncfamounts

Суммы и время денежного потока для облигаций и ступенчатых купонов

Описание

пример

[CFlows,CDates,CTimes] = stepcpncfamounts(Settle,Maturity,ConvDates,CouponRates) возвращает матрицы сумм денежного потока, дат денежного потока и временных факторов для портфеля NUMBONDS шаговые купонные облигации.

пример

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

Примеры

свернуть все

Этот пример генерирует ступенчатые денежные потоки для трех различных облигаций, все платящие проценты раз в полгода. Срок службы облигаций составляет около 18-19 лет каждый:

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

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

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

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

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

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'); 
            datenum('15-Jun-2010'); 
            datenum('15-Jun-2011')];

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

Использование stepcpncfamounts для вычисления денежных потоков и сроков.

[CFlows, CDates, CTimes] = stepcpncfamounts(Settle, Maturity, ConvDates, CouponRates)
CFlows = 3×39

   -1.1639    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.6250    4.6250    4.6250    4.6250    4.6250    4.6250    4.6250    4.6250    4.6250    4.6250    4.6250    4.6250    4.6250  104.6250       NaN       NaN
   -0.9836    3.7500    3.7500    3.7500    3.7500    3.7500    3.7500    3.7500    3.7500    3.7500    3.7500    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.4375    4.6250    4.6250    4.6250    4.6250    4.6250    4.6250    4.6250    4.6250    5.0000    5.0000    5.0000    5.0000    5.0000    5.0000    5.0000    5.0000    5.0000  105.0000       NaN       NaN
   -0.3279    1.2500    1.2500    1.2500    1.2500    1.2500    1.2500    1.2500    1.2500    1.2500    2.5000    2.5000    2.5000    2.5000    2.5000    2.5000    2.5000    2.5000    3.7500    3.7500    3.7500    3.7500    3.7500    3.7500    3.7500    3.7500    5.0000    5.0000    5.0000    5.0000    5.0000    5.0000    5.0000    5.0000    5.0000    5.0000    5.0000    5.0000  105.0000

CDates = 3×39

      727778      727913      728095      728278      728460      728643      728825      729008      729191      729374      729556      729739      729921      730104      730286      730469      730652      730835      731017      731200      731382      731565      731747      731930      732113      732296      732478      732661      732843      733026      733208      733391      733574      733757      733939      734122      734304         NaN         NaN
      727778      727913      728095      728278      728460      728643      728825      729008      729191      729374      729556      729739      729921      730104      730286      730469      730652      730835      731017      731200      731382      731565      731747      731930      732113      732296      732478      732661      732843      733026      733208      733391      733574      733757      733939      734122      734304         NaN         NaN
      727778      727913      728095      728278      728460      728643      728825      729008      729191      729374      729556      729739      729921      730104      730286      730469      730652      730835      731017      731200      731382      731565      731747      731930      732113      732296      732478      732661      732843      733026      733208      733391      733574      733757      733939      734122      734304      734487      734669

CTimes = 3×39

         0    0.7377    1.7377    2.7377    3.7377    4.7377    5.7377    6.7377    7.7377    8.7377    9.7377   10.7377   11.7377   12.7377   13.7377   14.7377   15.7377   16.7377   17.7377   18.7377   19.7377   20.7377   21.7377   22.7377   23.7377   24.7377   25.7377   26.7377   27.7377   28.7377   29.7377   30.7377   31.7377   32.7377   33.7377   34.7377   35.7377       NaN       NaN
         0    0.7377    1.7377    2.7377    3.7377    4.7377    5.7377    6.7377    7.7377    8.7377    9.7377   10.7377   11.7377   12.7377   13.7377   14.7377   15.7377   16.7377   17.7377   18.7377   19.7377   20.7377   21.7377   22.7377   23.7377   24.7377   25.7377   26.7377   27.7377   28.7377   29.7377   30.7377   31.7377   32.7377   33.7377   34.7377   35.7377       NaN       NaN
         0    0.7377    1.7377    2.7377    3.7377    4.7377    5.7377    6.7377    7.7377    8.7377    9.7377   10.7377   11.7377   12.7377   13.7377   14.7377   15.7377   16.7377   17.7377   18.7377   19.7377   20.7377   21.7377   22.7377   23.7377   24.7377   25.7377   26.7377   27.7377   28.7377   29.7377   30.7377   31.7377   32.7377   33.7377   34.7377   35.7377   36.7377   37.7377

Визуализация денежных потоков третьей облигации (2,5 - 5 - 7,5 - 10) с помощью cfplot функция.

cfplot(CDates(3,:),CFlows(3,:));
xlabel('Dates in Serial Number Format')
ylabel('Relative Amounts of Cash Flows')
title('CashFlow of 2.5 - 5 - 7.5 - 10 Stepped Coupon Bond')

Figure contains an axes. The axes with title CashFlow of 2.5 - 5 - 7.5 - 10 Stepped Coupon Bond contains 3 objects of type line.

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

свернуть все

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

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

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

Дата зрелости, заданная в виде скаляра или NSTP-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

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

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

(Необязательно) Дневной базис каждого инструмента, заданный как NSTP-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] использование NSTP-by- 1 вектор.

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

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

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

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

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

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

свернуть все

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

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

Коэффициент времени для полугодового преобразования цены/доходности SIA, возвращенный как вектор. Пересчет цены/доходности SIA составляет DiscountFactor = (1 + Yield/2).^(-TFactor). Временные факторы указаны в единицах полугодовых купонных периодов. Для конвенций ISMA: DiscountFactor = (1 + Yield).^(-TFactor). Временные факторы указаны в единицах годовых купонных периодов. При вычислении временных коэффициентов используйте фактические/фактические соглашения SIA для всех вычислений временных коэффициентов.

Примечание

Для облигаций с фиксированными купонами используйте cfamounts. Если вы используете облигацию с фиксированным купоном с stepcpncfamounts, MATLAB® программа генерирует ошибку.

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте