exponenta event banner

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

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

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

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

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

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

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

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

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

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

        Rate1               Rate2                 Rate3

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

Примечание

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

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