Нота с плавающей ставкой цены из набора нулевых кривых
[ котирует ноту с плавающей ставкой из набора нулевых кривых.Price,DirtyPrice,CFlowAmounts,CFlowDates] = floatbyzero(RateSpec,Spread,Settle,Maturity)
floatbyzero вычисляет цены ванильных банкнот с плавающей ставкой и амортизирует банкноты с плавающей ставкой.
[ добавляет дополнительные аргументы пары имя-значение.Price,DirtyPrice,CFlowAmounts,CFlowDates] = floatbyzero(___,Name,Value)
Цена ноты с плавающей ставкой с 20 базисными точками с использованием набора нулевых кривых.
Груз deriv.mat, что обеспечивает ZeroRateSpecструктура срока процентной ставки, необходимая для оценки облигации.
load deriv.mat;Определите заметку с плавающей ставкой с помощью необходимых аргументов. В других аргументах используются значения по умолчанию.
Spread = 20; Settle = '01-Jan-2000'; Maturity = '01-Jan-2003';
Использовать floatbyzero для вычисления цены примечания.
Price = floatbyzero(ZeroRateSpec, Spread, Settle, Maturity)
Price = 100.5529
Цена амортизирующей ноты с плавающей ставкой с использованием Principal входной аргумент для определения графика амортизации.
Создать RateSpec.
Rates = [0.03583; 0.042147; 0.047345; 0.052707; 0.054302]; ValuationDate = '15-Nov-2011'; StartDates = ValuationDate; EndDates = {'15-Nov-2012';'15-Nov-2013';'15-Nov-2014' ;'15-Nov-2015';'15-Nov-2016'}; Compounding = 1; RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: [5x1 double]
Rates: [5x1 double]
EndTimes: [5x1 double]
StartTimes: [5x1 double]
EndDates: [5x1 double]
StartDates: 734822
ValuationDate: 734822
Basis: 0
EndMonthRule: 1
Создайте инструмент с плавающей ставкой, используя следующие данные:
Settle ='15-Nov-2011'; Maturity = '15-Nov-2015'; Spread = 15;
Определите график амортизации примечания с плавающей ставкой.
Principal ={{'15-Nov-2012' 100;'15-Nov-2013' 70;'15-Nov-2014' 40;'15-Nov-2015' 10}};Вычислите цену амортизирующей банкноты с плавающей ставкой.
Price = floatbyzero(RateSpec, Spread, Settle, Maturity, 'Principal', Principal)Price = 100.3059
RateSpecЕсли Settle не находится на дате сброса банкноты с плавающей ставкой, floatbyzero пытается получить последний плавающий курс до Settle от RateSpec или LatestFloatingRate параметр. Когда дата сброса для этой ставки выходит за пределы диапазона RateSpec (и LatestFloatingRate не указан), floatbyzero не удалось получить курс для этой даты, и генерируется ошибка. В этом примере показано, как использовать LatestFloatingRate входной параметр, чтобы избежать ошибки.
Создать условие ошибки при использовании инструмента с плавающей ставкой StartDate не может быть определено из RateSpec.
load deriv.mat; Spread = 20; Settle = '01-Jan-2000'; Maturity = '01-Dec-2003'; Price = floatbyzero(ZeroRateSpec, Spread, Settle, Maturity)
Error using floatbyzero (line 256) The rate at the instrument starting date cannot be obtained from RateSpec. Its reset date (01-Dec-1999) is out of the range of dates contained in RateSpec. This rate is required to calculate cash flows at the instrument starting date. Consider specifying this rate with the 'LatestFloatingRate' input parameter.
Здесь указывается дата сброса для тарифа в Settle был 01-Dec-1999, что было раньше даты оценки ZeroRateSpec (01-янв-2000). Этой ошибки можно избежать, указав курс на начальную дату прибора с помощью LatestFloatingRate аргумент пары имя-значение.
Определить LatestFloatingRate и рассчитать цену с плавающей ставкой.
Price = floatbyzero(ZeroRateSpec, Spread, Settle, Maturity, 'LatestFloatingRate', 0.03)Price = 100.0285
Определите ставки OIS и Libor.
Settle = datenum('15-Mar-2013');
CurveDates = daysadd(Settle,360*[1/12 2/12 3/12 6/12 1 2 3 4 5 7 10],1);
OISRates = [.0018 .0019 .0021 .0023 .0031 .006 .011 .017 .021 .026 .03]';
LiborRates = [.0045 .0047 .005 .0055 .0075 .011 .016 .022 .026 .030 .0348]';Постройте график двойственных кривых.
figure,plot(CurveDates,OISRates,'r');hold on;plot(CurveDates,LiborRates,'b') datetick legend({'OIS Curve', 'Libor Curve'})

Создание связанного RateSpec для кривых OIS и Libor.
OISCurve = intenvset('Rates',OISRates,'StartDate',Settle,'EndDates',CurveDates); LiborCurve = intenvset('Rates',LiborRates,'StartDate',Settle,'EndDates',CurveDates);
Определите ноту с плавающей ставкой.
Maturity = datenum('15-Mar-2018');Вычислите цену для ноты с плавающей ставкой. LiborCurve терминологическая структура будет использоваться для генерации плавающих денежных потоков плавающего инструмента. OISCurve структура терминов будет использоваться для дисконтирования денежных потоков.
Price = floatbyzero(OISCurve,0,Settle,Maturity,'ProjectionCurve',LiborCurve)Price = 102.4214
Некоторые инструменты требуют использования различных кривых процентных ставок для создания плавающих денежных потоков и дисконтирования. Это когда ProjectionCurve полезен параметр. Когда вы предоставляете оба RateSpec и ProjectionCurve, floatbyzero использует RateSpec для целей дисконтирования и использует ProjectionCurve для генерирования плавающих денежных потоков.
RateSpec - Годовая структура срока нулевой ставкиГодовая структура срока нулевой ставки, указанная с помощью intenvset для создания RateSpec.
Типы данных: struct
Spread - количество базисных пунктов по базисной ставке;Количество базисных пунктов над эталонной ставкой, указанное как NINSTоколо-1 вектор.
Типы данных: double
Settle - Дата расчетаДата расчета, указанная как скаляр или NINSTоколо-1 вектор серийных номеров дат или векторы символов дат.
Settle должно быть раньше, чем Maturity.
Типы данных: char | double
Maturity - Дата погашенияДата погашения, указанная как NINSTоколо-1 вектор серийных номеров дат или векторы символов дат, представляющие дату погашения для каждой заметки с плавающей ставкой.
Типы данных: char | double
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
[Price,DirtyPrice,CFlowAmounts,CFlowDates] = floatbyzero(RateSpec,Spread,Settle,Maturity,'Principal',Principal)'FloatReset' - Периодичность платежей в год1
(по умолчанию) | векторЧастота платежей в год, указанная как разделенная запятыми пара, состоящая из 'FloatReset' и NINSTоколо-1 вектор.
Типы данных: double
'Basis' - База подсчета дней 0 (факт/факт) (по умолчанию) | целое число от 0 кому 13База подсчета дней, указанная как пара, разделенная запятыми, состоящая из 'Basis' и NINSTоколо-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
'Principal' - Условные суммы основной суммы или графики основной стоимости100 (по умолчанию) | вектор или массив ячеекУсловные основные суммы, указанные как пара, разделенная запятыми, состоящая из 'Principal' и вектор или клеточный массив.
Principal принимает NINSTоколо-1 вектор или NINSTоколо-1 массив ячеек, где каждый элемент массива ячеек является NumDatesоколо-2 массив ячеек и первый столбец - даты, а второй столбец - связанное с ним условное основное значение. Дата указывает последний день, когда действительным является основное значение.
Типы данных: cell | double
'EndMonthRule' - флаг правила конца месяца для генерации дат, когда Maturity - дата окончания месяца, имеющего 30 или менее дней1 (в действии) (по умолчанию) | неотрицательное целое число [0,1]Флаг правила конца месяца для генерации дат при Maturity - дата окончания месяца, имеющая 30 или менее дней, указанная как пара, разделенная запятыми, состоящая из 'EndMonthRule' и неотрицательное целое число [0, 1] с использованием NINSTоколо-1 вектор.
0 = Игнорировать правило, означающее, что дата платежа всегда совпадает с числовым днем месяца.
1 = Установите правило, означающее, что дата платежа всегда является последним фактическим днем месяца.
Типы данных: logical
'LatestFloatingRate' - Ставка для следующего плавающего платежаRateSpec (по умолчанию) | числовыеСтавка для следующего плавающего платежа, установленного на дату последнего сброса, указанная как пара, разделенная запятыми, состоящая из 'LatestFloatingRate' и NINSTоколо-1.
Типы данных: double
'ProjectionCurve' - Кривая ставок, используемая при формировании будущих форвардных ставокRateSpec используется как для дисконтирования денежных потоков, так и для прогнозирования будущих форвардных ставок (по умолчанию) | structureКривая скорости, используемая при генерации будущих прямых скоростей, указанная как пара, разделенная запятыми, состоящая из 'ProjectionCurve' и структура, созданная с помощью intenvset. Используйте этот дополнительный ввод, если прямая кривая отличается от кривой скидки.
Типы данных: struct
'AdjustCashFlowsBasis' - Флажок для корректировки денежных потоков на основе фактического подсчета дней периодаfalse (по умолчанию) | значение 0 (false) или 1 ПравдаФлажок для корректировки денежных потоков на основе фактического количества дней периода, указанного как пара, разделенная запятыми, состоящая из 'AdjustCashFlowsBasis' и NINSTоколо-1 вектор логикалов со значениями 0 (false) или 1 Правда.
Типы данных: logical
'Holidays' - Праздники, используемые в вычислительных рабочих дняхholidays.m (по умолчанию) | Номера дат MATLAB ®Праздники, используемые в вычислительных рабочих днях, указанные как пара, разделенная запятыми, состоящая из 'Holidays' и номера дат MATLAB с использованием NHolidaysоколо-1 вектор.
Типы данных: double
'BusinessDayConvention' - Соглашения по рабочим днямactual (по умолчанию) | символьный вектор | массив ячеек символьных векторовСоглашения о рабочих днях, указанные как пара, разделенная запятыми, состоящая из 'BusinessDayConvention' и вектор символа или Nоколо-1 массив ячеек символьных векторов соглашений о рабочих днях. Выбор соглашения о рабочих днях определяет, как обрабатываются нерабочие дни. Нерабочие дни определяются как выходные дни плюс любая другая дата, когда предприятия не открыты (например, официальные праздники). Значения:
actual - Нерабочие дни фактически игнорируются. Предполагается, что денежные потоки, приходящиеся на нерабочие дни, распределяются на фактическую дату.
follow - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить на следующий рабочий день.
modifiedfollow - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить на следующий рабочий день. Однако если следующий рабочий день находится в другом месяце, вместо него используется предыдущий рабочий день.
previous - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить в предыдущий рабочий день.
modifiedprevious - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить в предыдущий рабочий день. Однако если предыдущий рабочий день находится в другом месяце, вместо него принимается следующий рабочий день.
Типы данных: char | cell
Price - Цены нот с плавающей ставкойЦены нот с плавающей ставкой, возвращенные как (NINST) по количеству кривых (NUMCURVES) матрица. Каждый столбец возникает из одной из нулевых кривых.
DirtyPrice - Грязная цена нотыГрязная цена ноты (чистый + начисленные проценты), возвращенная как NINSTоколо-NUMCURVES матрица. Каждый столбец возникает из одной из нулевых кривых.
CFlowAmounts - Суммы денежных потоковСуммы денежных потоков, возвращенные как NINSTоколо-NUMCFS матрица денежных потоков для каждой ноты. При наличии нескольких кривых, указанных в RateSpec ввод, затем первый NCURVES строки соответствуют первой ноте, вторая NCURVES строки соответствуют второй ноте и т.д.
CFlowDates - Даты движения денежных средствДаты движения денежных средств, возвращенные как NINSTоколо-NUMCFS матрица дат платежа для каждого примечания.
Нота с плавающей ставкой - это ценная бумага, подобная облигации, но процентная ставка ноты периодически сбрасывается относительно ссылочной ставки индекса для отражения колебаний рыночных процентных ставок.
bondbyzero | cfbyzero | fixedbyzero | intenvset | swapbyzero
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.