cfspread

Вычислите распространение по кривой доходности для потока наличности

Синтаксис

Spread = cfspread(RateSpec,Price,CFlowAmounts,CFlowDates,Settle)
Spread = cfspread(___,Name,Value)

Описание

пример

Spread = cfspread(RateSpec,Price,CFlowAmounts,CFlowDates,Settle) вычисляет распространение по кривой доходности для потока наличности.

пример

Spread = cfspread(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.

Примеры

свернуть все

Используйте cfspread, чтобы вычислить распространение по кривой доходности для потока наличности.

Задайте данные для кривой доходности.

Settle = datenum('01-Jul-2003');
CurveDates = daysadd(Settle,360*[.25 .5 1 2 3 5 7 10 20],1);
ZeroRates = [.0089 .0096 .0107 .0130 .0166 .0248 .0306 .0356 .0454]';

Вычислите RateSpec.

RateSpec = intenvset('StartDates', Settle, 'EndDates', CurveDates,...
'Rates', ZeroRates)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: 2
             Disc: [9x1 double]
            Rates: [9x1 double]
         EndTimes: [9x1 double]
       StartTimes: [9x1 double]
         EndDates: [9x1 double]
       StartDates: 731763
    ValuationDate: 731763
            Basis: 0
     EndMonthRule: 1

Вычислите распространение.

Price = 98;
CFAmounts = [30;40;30];
CFDates = datenum({'15-Jul-2004', '15-Jul-2005', '15-Jul-2006'});

Spread = cfspread(RateSpec, Price, CFAmounts, CFDates, Settle)
Spread = 3×1
103 ×

   -8.7956
   -4.0774
   -3.7073

Используйте cfspread, чтобы вычислить распространение по кривой доходности для потока наличности с помощью входных параметров datetime.

Settle = datenum('01-Jul-2003');
CurveDates = daysadd(Settle,360*[.25 .5 1 2 3 5 7 10 20],1);
ZeroRates = [.0089 .0096 .0107 .0130 .0166 .0248 .0306 .0356 .0454]';
RateSpec = intenvset('StartDates', Settle, 'EndDates', CurveDates,...
'Rates', ZeroRates);
Price = 98;
CFAmounts = [30;40;30];
CFDates = datenum({'15-Jul-2004', '15-Jul-2005', '15-Jul-2006'});

CFDates = datetime(CFDates,'ConvertFrom','datenum','Locale','en_US');
Settle = datetime(Settle,'ConvertFrom','datenum','Locale','en_US');
Spread = cfspread(RateSpec, Price, CFAmounts, CFDates, Settle)
Spread = 3×1
103 ×

   -8.7956
   -4.0774
   -3.7073

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

свернуть все

Спецификация процентной ставки для начальной безрисковой кривой уровня, заданной RateSpec, получена из intenvset. Для получения информации о спецификации процентной ставки смотрите intenvset.

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

Цена потоков наличности, заданных как NINST-by-1 вектор.

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

Суммы потока наличности, заданные как NINST-by-MOSTCFS матрица. Каждая строка является списком значений потока наличности для одного инструмента. Если инструмент имеет меньше, чем потоки наличности MOSTCFS, конец строки дополнен NaN s.

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

Даты потока наличности, заданные как NINST-by-MOSTCFS матрица. Каждая запись содержит дату соответствующего потока наличности в CFlowAmounts.

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

Расчетный день, заданный как NINST-by-1 вектор с помощью последовательных чисел даты или массива ячеек векторов символов даты. Дата Settle является датой, в которую оценены потоки наличности.

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

Аргументы в виде пар имя-значение

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

Пример: Spread = cfspread(RateSpec,Price,CFlowAmounts,CFlowDates,Settle,'Basis',4)

Примечание

Дополнительный вход размера NINST-by-1 также приемлем как одно значение, применимое ко всем контрактам. Одно значения внутренне расширены до массива размера NINST-by-1.

Основание дневного количества, заданное как пара, разделенная запятой, состоящая из 'Basis' и положительного целого числа с помощью NINST-by-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

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

свернуть все

Распространение потоков наличности по кривой нулевой ширины, возвращенной как NINST-by-1 вектор. Spread выражается в пунктах.

Представленный в R2012a