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