Ценовое долговое обязательство с плавающей ставкой от набора кривых нулевой ширины
[Price,DirtyPrice,CFlowAmounts,CFlowDates]
= floatbyzero(RateSpec,Spread,Settle,Maturity)
[Price,DirtyPrice,CFlowAmounts,CFlowDates]
= floatbyzero(___,Name,Value)
[
оценивает долговое обязательство с плавающей ставкой от набора кривых нулевой ширины.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 декабря 1999, который был ранее, чем дата оценки ZeroRateSpec
(01 января 2000). Этой ошибки можно избежать путем определения уровня в сроке начала работы инструмента с помощью аргумента пары "имя-значение" LatestFloatingRate
.
Задайте LatestFloatingRate
и вычислите цену с плавающей ставкой.
Price = floatbyzero(ZeroRateSpec, Spread, Settle, Maturity, 'LatestFloatingRate', 0.03)
Price = 100.0285
Задайте уровни LIBOR и OIS.
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
для кривых LIBOR и OIS.
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
-by-1
вектор.
Типы данных: double
Settle
— Расчетный деньРасчетный день, заданный или как скаляр или как NINST
-by-1
вектор последовательных чисел даты или векторов символов даты.
Settle
должен быть ранее, чем Maturity
.
Типы данных: char
| double
Maturity
— Дата погашенияДата погашения, заданная как NINST
-by-1
вектор последовательных чисел даты или векторов символов даты, представляющих дату погашения для каждого долгового обязательства с плавающей ставкой.
Типы данных: char
| double
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
[Price,DirtyPrice,CFlowAmounts,CFlowDates] = floatbyzero(RateSpec,Spread,Settle,Maturity,'Principal',Principal)
'FloatReset'
— Частота платежей в год1
(значение по умолчанию) | векторЧастота платежей в год, заданный как пара, разделенная запятой, состоящая из 'FloatReset'
и NINST
-by-1
вектор.
Типы данных: double
'Basis'
— Дневное основание количества 0
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
до 13
Дневное основание количества, заданное как пара, разделенная запятой, состоящая из '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
'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
= Установленное правило о, означая, что платежный день всегда является прошлым фактическим днем месяца.
Типы данных: логический
'LatestFloatingRate'
— Уровень для следующей плавающей оплатыRateSpec
(значение по умолчанию) | числовойУровень для следующего плавающего платежного набора в последнюю дату сброса, заданную как пара, разделенная запятой, состоящая из 'LatestFloatingRate'
и NINST
-by-1
.
Типы данных: double
'ProjectionCurve'
— Кривая уровня используется в генерации будущих форвардных курсовRateSpec
используется и для дисконтирования потоков наличности и для проектирования будущих форвардных курсов (значение по умолчанию) | структураКривая уровня, которая будет использоваться в генерации будущих форвардных курсов, заданных как пара, разделенная запятой, состоящая из 'ProjectionCurve'
и структуры, созданной с помощью intenvset
. Используйте этот дополнительный вход, если прямая кривая отличается от дисконтной кривой.
Типы данных: struct
'AdjustCashFlowsBasis'
— Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | значение (FALSE) 0
или (TRUE) 1
Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода, заданного как пара, разделенная запятой, состоящая из 'AdjustCashFlowsBasis'
и NINST
-by-1
вектор logicals со значениями (FALSE) 0
или (TRUE) 1
.
Типы данных: логический
'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
- NUMCURVES
матрица. Каждый столбец является результатом одной из кривых нулевой ширины.
CFlowAmounts
— Суммы потока наличностиСуммы потока наличности, возвращенные как NINST
- NUMCFS
матрица потоков наличности для каждого примечания. Если существует больше чем одна кривая, заданная во входе RateSpec
, то первые строки NCURVES
соответствуют первому примечанию, вторые строки NCURVES
соответствуют второму примечанию и так далее.
CFlowDates
— Даты потока наличностиДаты потока наличности, возвращенные как NINST
- NUMCFS
матрица платежных дней каждого примечания.
bondbyzero
| cfbyzero
| fixedbyzero
| intenvset
| swapbyzero
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.