cfamounts

Поток наличности и время, сопоставляя для портфеля связи

В R2017b изменилась спецификация дополнительных входных параметров. В то время как предыдущий упорядоченный входной синтаксис все еще поддерживается, он больше не может поддерживаться в будущем релизе. Используйте дополнительные входные параметры пары "имя-значение": Period, Basis, EndMonthRule, IssueDate, FirstCouponDate, LastCouponDate, StartDate, Face, AdjustCashFlowsBasis, BusinessDayConvention, CompoundingFrequency, DiscountBasis, Holidays, и PrincipalType.

Описание

пример

[CFlowAmounts,CFlowDates,TFactors,CFlowFlags,CFPrincipal] = cfamounts(CouponRate,Settle,Maturity) возвращает матрицы сумм потока наличности, дат потока наличности, факторов времени и флагов потока наличности для портфеля NUMBONDS ценные бумаги фиксированного дохода.

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

пример

[CFlowAmounts,CFlowDates,TFactors,CFlowFlags,CFPrincipal] = cfamounts(___,Name,Value) добавляют дополнительные аргументы name-value.

Примеры

свернуть все

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

Settle = '01-Nov-1993';
Maturity = ['15-Dec-1994';'15-Jun-1995'];
CouponRate= [0.06; 0.05];
Period = [4; 2];
Basis = [1; 0];
[CFlowAmounts, CFlowDates, TFactors, CFlowFlags] = ...
cfamounts(CouponRate,Settle, Maturity, Period, Basis)
CFlowAmounts = 2×6

   -0.7667    1.5000    1.5000    1.5000    1.5000  101.5000
   -1.8989    2.5000    2.5000    2.5000  102.5000       NaN

CFlowDates = 2×6

      728234      728278      728368      728460      728552      728643
      728234      728278      728460      728643      728825         NaN

TFactors = 2×6

         0    0.2404    0.7403    1.2404    1.7403    2.2404
         0    0.2404    1.2404    2.2404    3.2404       NaN

CFlowFlags = 2×6

     0     3     3     3     3     4
     0     3     3     3     4   NaN

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

Settle = datetime('01-Nov-1993','Locale','en_US');
Maturity = ['15-Dec-1994';'15-Jun-1995'];
CouponRate= [0.06; 0.05];
Period = [4; 2];
Basis = [1; 0];
[CFlowAmounts, CFlowDates, TFactors, CFlowFlags] = cfamounts(CouponRate,...
Settle, Maturity, Period, Basis)
CFlowAmounts = 2×6

   -0.7667    1.5000    1.5000    1.5000    1.5000  101.5000
   -1.8989    2.5000    2.5000    2.5000  102.5000       NaN

CFlowDates = 2x6 datetime
Columns 1 through 5

   01-Nov-1993   15-Dec-1993   15-Mar-1994   15-Jun-1994   15-Sep-1994
   01-Nov-1993   15-Dec-1993   15-Jun-1994   15-Dec-1994   15-Jun-1995

Column 6

   15-Dec-1994
   NaT        

TFactors = 2×6

         0    0.2404    0.7403    1.2404    1.7403    2.2404
         0    0.2404    1.2404    2.2404    3.2404       NaN

CFlowFlags = 2×6

     0     3     3     3     3     4
     0     3     3     3     4   NaN

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

Settle = '01-Jun-2010';
Maturity = ['15-Dec-2011';'15-Jun-2012'];
CouponRate= [0.06; 0.05];
Period = [4; 2];
Basis = [1; 0];
 
[CFlowAmounts, CFlowDates, TFactors, CFlowFlags] = ...
cfamounts(CouponRate,Settle, Maturity, 'Period',Period, ... 
'Basis', Basis, 'AdjustCashFlowsBasis', true,...
'BusinessDayConvention','modifiedfollow')
CFlowAmounts = 2×8

   -1.2667    1.5000    1.5000    1.5000    1.5000    1.5000    1.5000  101.5000
   -2.3077    2.4932    2.5068    2.4932    2.5000  102.5000       NaN       NaN

CFlowDates = 2×8

      734290      734304      734396      734487      734577      734669      734761      734852
      734290      734304      734487      734669      734852      735035         NaN         NaN

TFactors = 2×8

         0    0.0778    0.5778    1.0778    1.5778    2.0778    2.5778    3.0778
         0    0.0769    1.0769    2.0769    3.0769    4.0769       NaN       NaN

CFlowFlags = 2×8

     0     3     3     3     3     3     3     4
     0     3     3     3     3     4   NaN   NaN

В этом примере показано, как использовать cfamounts с CouponRate расписание. Для CouponRate и Face это переключает жизнь связи, расписаний для CouponRate и Face может быть задан с NINST- 1 массив ячеек, где каждым элементом является NumDates- 2 матрицы, где первый столбец является датами и вторым столбцом, являются сопоставленными уровнями.

CouponSchedule = {[datenum('15-Mar-2012') .04;datenum('15- Mar -2013') .05;...
datenum('15- Mar -2015') .06]}
CouponSchedule = 1x1 cell array
    {3x2 double}

cfamounts(CouponSchedule,'01-Mar-2011','15-Mar-2015' )
ans = 1×10

   -1.8453    2.0000    2.0000    2.0000    2.5000    2.5000    3.0000    3.0000    3.0000  103.0000

В этом примере показано, как использовать cfamounts с Face расписание. Для CouponRate и Face это переключает жизнь связи, расписаний для CouponRate и Face может быть задан с NINST- 1 массив ячеек, где каждым элементом является NumDates- 2 матрицы, где первый столбец является датами и вторым столбцом, являются сопоставленными уровнями.

FaceSchedule = {[datenum('15-Mar-2012') 100;datenum('15- Mar -2013') 90;...
datenum('15- Mar -2015') 80]}
FaceSchedule = 1x1 cell array
    {3x2 double}

cfamounts(.05,'01-Mar-2011','15-Mar-2015', 'Face', FaceSchedule)
ans = 1×10

   -2.3066    2.5000    2.5000   12.5000    2.2500   12.2500    2.0000    2.0000    2.0000   82.0000

В этом примере показано, как использовать cfamounts сгенерировать потоки наличности для снижающейся связи.

[CFlowAmounts,CFDates,TFactors,CFFlags,CFPrincipal] = cfamounts(.05,'04-Nov-2010',...
{'15-Jul-2014';'15-Jul-2015'},'Face',{[datenum('15-Jul-2013') 100;datenum('15-Jul-2014')...
90;datenum('15-Jul-2015') 80]})
CFlowAmounts = 2×11

   -1.5217    2.5000    2.5000    2.5000    2.5000    2.5000   12.5000    2.2500   92.2500       NaN       NaN
   -1.5217    2.5000    2.5000    2.5000    2.5000    2.5000   12.5000    2.2500   12.2500    2.0000   82.0000

CFDates = 2×11

      734446      734518      734699      734883      735065      735249      735430      735614      735795         NaN         NaN
      734446      734518      734699      734883      735065      735249      735430      735614      735795      735979      736160

TFactors = 2×11

         0    0.3913    1.3913    2.3913    3.3913    4.3913    5.3913    6.3913    7.3913       NaN       NaN
         0    0.3913    1.3913    2.3913    3.3913    4.3913    5.3913    6.3913    7.3913    8.3913    9.3913

CFFlags = 2×11

     0     3     3     3     3     3    13     3     4   NaN   NaN
     0     3     3     3     3     3    13     3    13     3     4

CFPrincipal = 2×11

     0     0     0     0     0     0    10     0    90   NaN   NaN
     0     0     0     0     0     0    10     0    10     0    80

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

свернуть все

Годовая процентная ставка раньше определяла купоны, подлежащие оплате на связи в виде десятичного числа с помощью скаляра или NBONDS- 1 вектор.

CouponRate 0 для облигаций с нулевым купоном.

Примечание

CouponRate и Face может переключить жизнь связи. Расписания для CouponRate и Face может быть задан с NBONDS- 1 массив ячеек, где каждым элементом является NumDates- 2 матричный или массив ячеек, где первый столбец является датами (последовательные числа даты или векторы символов) и второй столбец, является сопоставленными уровнями. Дата указывает в последний день, что купонная ставка или номинальная стоимость допустимы. Это означает что соответствующий CouponRate и Face значение применяется "на или перед" заданная конечная дата.

Типы данных: double | cell | char

Расчетный день связи в виде скаляра или NBONDS- 1 вектор с помощью последовательных чисел даты, векторов символов даты или массивов datetime. Settle дата должна быть перед Maturity дата.

Типы данных: double | char | datetime

Дата погашения связи в виде скаляра или NBONDS- 1 вектор с помощью последовательных чисел даты, векторов символов даты или массивов datetime.

Типы данных: double | char | datetime

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: [CFlowAmounts, CFlowDates, TFactors, CFlowFlags] = ... cfamounts(CouponRate,Settle, Maturity,'Period',4,'Basis',3,'AdjustCashFlowsBasis',true,'BusinessDayConvention','modifiedfollow')

Количество купонных платежей в год за связь в виде разделенной запятой пары, состоящей из 'Period' и скаляр или NBONDS- 1 вектор с помощью значений: 0, 1, 2, 3, 4, 6, или 12.

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

Базис дневного количества связи в виде разделенной запятой пары, состоящей из 'Basis' и скаляр или NBONDS- 1 вектор с помощью поддерживаемого значения:

  •  0 = фактический/фактический

  •  1 = 30/360 (СИА)

  •  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 = ШИНА/252

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

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

Правило конца месяца отмечает в виде разделенной запятой пары, состоящей из 'EndMonthRule' и скаляр или NBONDS- 1 вектор. Это правило применяется только когда Maturity дата конца месяца в течение месяца, имея 30 или меньше дней.

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

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

Типы данных: логический

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

Если вы не задаете IssueDate, платежные дни потока наличности определяются из других входных параметров.

Типы данных: double | char | datetime

Неправильная или нормальная первая дата купона в виде разделенной запятой пары, состоящей из 'FirstCouponDate' и скаляр или NBONDS- 1 вектор с помощью последовательных чисел даты, векторов символов даты или массивов datetime.

Если вы не задаете FirstCouponDate, платежные дни потока наличности определяются из других входных параметров.

Примечание

Когда FirstCouponDate и LastCouponDate

оба заданы, FirstCouponDate более приоритетен в определении структуры купонного платежа. Если FirstCouponDate не задан, затем LastCouponDate определяет структуру купона связи.

Типы данных: double | char | datetime

Неправильная или нормальная последняя дата купона в виде разделенной запятой пары, состоящей из 'LastCouponDate' и скаляр или NBONDS- 1 вектор с помощью последовательных чисел даты, векторов символов даты или массивов datetime.

Примечание

Когда FirstCouponDate и LastCouponDate оба заданы, FirstCouponDate более приоритетен в определении структуры купонного платежа. Если FirstCouponDate не задан, затем LastCouponDate определяет структуру купона связи.

Типы данных: double | char | datetime

Передайте срок начала работы купонных платежей после Settle дата в виде разделенной запятой пары, состоящей из 'StartDate' и скаляр или NBONDS- 1 вектор с помощью последовательных чисел даты, векторов символов даты или массивов datetime.

Примечание

Чтобы сделать инструмент, вперед запускающийся, задайте StartDate как будущая дата.

Если вы не задаете StartDate, эффективной датой начала является Settle дата.

Типы данных: double | char | datetime

Номинальная стоимость связи в виде разделенной запятой пары, состоящей из 'Face' и скаляр или NBONDS- 1 вектор.

Примечание

CouponRate и Face может переключить жизнь связи. Расписания для CouponRate и Face может быть задан с NBONDS- 1 массив ячеек, где каждым элементом является NumDates- 2 матричный или массив ячеек, где первый столбец является датами (последовательные числа даты или векторы символов) и второй столбец, является сопоставленными уровнями. Дата указывает в последний день, что купонная ставка или номинальная стоимость допустимы. Это означает что соответствующий CouponRate и Face значение применяется "на или перед" заданная конечная дата.

Когда соответствующий Face значение используется для расчета поток наличности купона в заданную конечную дату. Три вещи происходят в заданную конечную дату:

  1. Последний купон, соответствующий текущему Face стоимость возмещена.

  2. Основной дифференциал (между током и следующим Face значение), заплачен.

  3. Дата отмечает начало периода со следующим Face значение, для которого поток наличности не происходит до позже.

Типы данных: double | cell | char

Настраивает потоки наличности согласно сумме наращивания на основе фактического дневного количества периода в виде разделенной запятой пары, состоящей из 'AdjustCashFlowsBasis' и скаляр или NBONDS- 1 вектор.

Типы данных: логический

Соглашения рабочего дня в виде разделенной запятой пары, состоящей из 'BusinessDayConvention' и скаляр или NBONDS- 1 массив ячеек из символьных векторов соглашений рабочего дня, которые будут использоваться в вычислительных платежных днях. Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:

  • 'actual' — Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.

  • 'follow' — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.

  • 'modifiedfollow' — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.

  • 'previous' — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.

  • 'modifiedprevious' — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.

Типы данных: char | cell

Соединение частоты для вычисления выражения в виде разделенной запятой пары, состоящей из 'CompoundingFrequency' и скаляр или NBONDS- 1 вектор. Значения:

  • 1 — Ежегодное соединение

  • 2 — Полугодовое соединение

  • 3 — Соединение три раза в год

  • 4 — Ежеквартально соединение

  • 6 — Два раза в месяц соединение

  • 12 — Ежемесячно соединение

Примечание

По умолчанию, основы SIA (0-7) и BUS/252 используйте полугодовое соглашение соединения и основы ICMA (8-12) используйте ежегодное соглашение соединения.

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

Базис использовался для расчета коэффициентов дисконтирования в вычислении выражения в виде разделенной запятой пары, состоящей из 'DiscountBasis' и скаляр или NBONDS- 1 вектор. Значения:

  •  0 = фактический/фактический

  •  1 = 30/360 (СИА)

  •  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 = ШИНА/252

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

Примечание

Если базис дневного количества SIA задан в Basis входной параметр и нет никакого значения, присвоенного для DiscountBasis, поведение по умолчанию для основ SIA, чтобы использовать actual/actual дневное количество, чтобы вычислить коэффициенты дисконтирования.

Если базис дневного количества ICMA или BUS/252 задан в Basis входной параметр и нет никакого значения, присвоенного для DiscountBasis, заданные основы от Basis входной параметр используется.

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

Даты праздников в виде разделенной запятой пары, состоящей из 'Holidays' и NHOLIDAYS- 1 вектор из MATLAB® даты с помощью последовательных чисел даты, векторов символов даты или массивов datetime. Праздники используются в вычислении рабочих дней.

Типы данных: double | char | datetime

Тип принципала, когда Face запланируйте в виде разделенной запятой пары, состоящей из 'PrincipalType' и значение 'sinking' или 'bullet' использование скаляра или NBONDS- 1 вектор.

Если 'sinking', основные потоки наличности возвращены в течение жизни связи.

Если 'bullet', основной поток наличности только возвращен в зрелости.

Типы данных: char | cell

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

свернуть все

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

Даты потока наличности портфеля связей, возвращенных как NBONDS- NCFS матрица. Каждая строка представляет одну связь в портфеле. Каждый элемент в столбце представляет дату потока наличности той связи.

Если все вышеупомянутые входные параметры (Settle, Maturity, IssueDate, FirstCouponDate, LastCouponDate, и StartDate) или последовательные числа даты или векторы символов даты, затем CFlowDates возвращен как последовательный номер даты. Если какие-либо из этих входных параметров являются массивами datetime, то CFlowDates возвращен как массив datetime.

Матрица факторов времени для портфеля связей, возвращенных как NBONDS- NCFS матрица. Каждая строка соответствует вектору из факторов времени для каждой связи. Каждый элемент в столбце соответствует определенному фактору времени, сопоставленному с каждым потоком наличности связи.

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

Поток наличности отмечает для портфеля связей, возвращенных как NBONDS- NCFS матрица. Каждая строка соответствует вектору из флагов потока наличности для каждой связи. Каждый элемент в столбце соответствует определенному флагу, сопоставленному с каждым потоком наличности связи. Флаги идентифицируют тип каждого потока наличности (например, номинального потока наличности купона, передней стороны или конца частичный, или "тупиковый" купон, поток наличности зрелости).

Флаг

Тип потока наличности

0

Начисленные проценты, подлежащие выплате на связи в поселении.

1

Начальная сумма потока наличности, меньшая, чем нормальный из-за “тупикового” периода купона. Тупиковый период создается, когда время от даты выпуска до первой даты купона короче, чем нормальный.

2

Больше, чем нормальный начальный поток наличности составляют, потому что первый период купона более длинен, чем нормальный.

3

Номинальная сумма потока наличности купона.

4

Нормальная сумма потока наличности зрелости (номинальная стоимость плюс номинальная сумма купона).

5

Закончите “тупиковую” сумму купона (последний период купона является неправильно коротким и фактическим потоком наличности зрелости, меньше, чем нормальный).

6

Больше, чем нормальный поток наличности зрелости, потому что последний период купона дольше, чем нормальный.

7

Поток наличности зрелости на облигации на предъявителя, когда связь имеет меньше чем один период купона к зрелости.

8

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

9

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

10

Поток наличности зрелости на облигации с нулевым купоном.

11

Снижение основной и начальной суммы потока наличности, меньшей, чем нормальный из-за "тупикового" периода купона. Тупиковый период создается, когда время от даты выпуска до первой даты купона короче, чем нормальный.

12

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

13

Снижение основной и номинальной суммы потока наличности купона.

Основные потоки наличности, возвращенные как NBONDS- NCFS матрица.

Если PrincipalType 'sinking', CFPrincipal выведите указывает, когда принципал возвращен.

Если PrincipalType 'bullet', CFPrincipal все нули и, в Maturity, соответствующий Face значение.

Больше о

свернуть все

Факторы времени

Справка Time factors определяет приведенную стоимость потока потоков наличности.

Термин time factors refer к TF экспоненты в уравнении дисконтирования

PV=i=1n(CF(1+zf)TF),

где:

PV =

Приведенная стоимость потока наличности.

CF =

Сумма потока наличности.

z =

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

f =

Частота кавычек для выражения. Значением по умолчанию является 2 для Basis значения 0 к 7 и 13 и 1 для Basis значения 8 к 12. Значение по умолчанию может быть заменено путем определения CompoundingFrequency пара "имя-значение".

TF =

Фактор времени для данного потока наличности. Фактор времени вычисляется с помощью частоты соединения и дисконтного базиса. Если эти значения не заданы, то значения по умолчанию следующие: CompoundingFrequency значением по умолчанию является 2 для Basis значения 0 к 7 и 13 и 1 для Basis значения 8 к 12.

DiscountBasis 0 для Basis значения 0 к 7 и 13 и значение входа Basis для Basis значения 8 к 12.

Примечание

Basis всегда используемые для расчета начисленные проценты.

Ссылки

[1] Krgin, D. Руководство глобальных вычислений фиксированного дохода. Вайли, 2002.

[2] Mayle, J. "Методы вычислений стандартных защит: формулы ценных бумаг фиксированного дохода для аналитических мер". SIA, Vol 2, январь 1994.

[3] Stigum, M., Робинсон, F. Денежный рынок и вычисление связи. McGraw-Hill, 1996.

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