Ценовая связь от набора кривых нулевой ширины
[Price,DirtyPrice,CFlowAmounts,CFlowDates]
= bondbyzero(RateSpec,CouponRate,Settle,Maturity)
[Price,DirtyPrice,CFlowAmounts,CFlowDates]
= bondbyzero(___,Name,Value)
[
оценивает связь от набора кривых нулевой ширины. Price
,DirtyPrice
,CFlowAmounts
,CFlowDates
]
= bondbyzero(RateSpec
,CouponRate
,Settle
,Maturity
)bondbyzero
вычисляет цены связей ванили, продвинулся связи амортизации и облигации на предъявителя.
[
добавляют дополнительные аргументы пары "имя-значение".Price
,DirtyPrice
,CFlowAmounts
,CFlowDates
]
= bondbyzero(___,Name,Value
)
Оцените 4%-ю связь с помощью кривой нулевой ширины.
Загрузите deriv.mat
, который обеспечивает ZeroRateSpec
, структуру термина процентной ставки, должен был оценить связь.
load deriv.mat; CouponRate = 0.04; Settle = '01-Jan-2000'; Maturity = '01-Jan-2004'; Price = bondbyzero(ZeroRateSpec, CouponRate, Settle, Maturity)
Price = 97.5334
Цена одна ступенчатые облигации на предъявителя с помощью данных о рынке.
Задайте данные для структуры термина процентной ставки.
Rates = [0.035; 0.042147; 0.047345; 0.052707]; ValuationDate = 'Jan-1-2010'; StartDates = ValuationDate; EndDates = {'Jan-1-2011'; 'Jan-1-2012'; 'Jan-1-2013'; 'Jan-1-2014'}; Compounding = 1;
Создайте RateSpec
.
RS = intenvset('ValuationDate', ValuationDate, 'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding)
RS = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: [4x1 double]
Rates: [4x1 double]
EndTimes: [4x1 double]
StartTimes: [4x1 double]
EndDates: [4x1 double]
StartDates: 734139
ValuationDate: 734139
Basis: 0
EndMonthRule: 1
Создайте ступенчатый инструмент связи.
Settle = '01-Jan-2010'; Maturity = {'01-Jan-2011';'01-Jan-2012';'01-Jan-2013';'01-Jan-2014'}; CouponRate = {{'01-Jan-2012' .0425;'01-Jan-2014' .0750}}; Period = 1;
Вычислите цену ступенчатых облигаций на предъявителя.
PZero= bondbyzero(RS, CouponRate, Settle, Maturity ,Period)
PZero = 4×1
100.7246
100.0945
101.5900
102.0820
Оцените связь с расписанием амортизации с помощью входного параметра Face
, чтобы задать расписание.
Задайте данные для структуры термина процентной ставки.
Rates = 0.065; ValuationDate = '1-Jan-2011'; StartDates = ValuationDate; EndDates= '1-Jan-2017'; Compounding = 1;
Создайте RateSpec
.
RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: 0.6853
Rates: 0.0650
EndTimes: 6
StartTimes: 0
EndDates: 736696
StartDates: 734504
ValuationDate: 734504
Basis: 0
EndMonthRule: 1
Создайте и оцените инструмент связи амортизации. Связь имеет купонную ставку 7%, период одного года, и назревает 1 января 2017.
CouponRate = 0.07; Settle ='1-Jan-2011'; Maturity = '1-Jan-2017'; Period = 1; Face = {{'1-Jan-2015' 100;'1-Jan-2016' 90;'1-Jan-2017' 80}}; Price = bondbyzero(RateSpec, CouponRate, Settle, Maturity, 'Period',... Period, 'Face', Face)
Price = 102.3155
Сравните результаты с ценой связи ванили.
PriceVanilla = bondbyzero(RateSpec, CouponRate, Settle, Maturity,Period)
PriceVanilla = 102.4205
Цена и амортизация и связи ванили.
Face = {{'1-Jan-2015' 100;'1-Jan-2016' 90;'1-Jan-2017' 80}; 100}; PriceBonds = bondbyzero(RateSpec, CouponRate, Settle, Maturity, 'Period',... Period, 'Face', Face)
PriceBonds = 2×1
102.3155
102.4205
Когда облигация сначала выпущена, она может быть оценена с bondbyzero
в тот день путем назначения даты Settle
к дате выпуска. Позже, если связь должна быть продана когда-нибудь между датой выпуска и датой погашения, ее новая цена может быть вычислена путем обновления даты Settle
, а также входа RateSpec
.
Обратите внимание на то, что цена связи определяется ее остающимися потоками наличности и структурой термина нулевого уровня, которая может оба измениться, когда связь назревает. В то время как bondbyzero
автоматически обновляет остающиеся потоки наличности связи относительно новой даты Settle
, необходимо подать новый входной сигнал RateSpec
в порядке отразить новую структуру термина нулевого уровня для той новой даты Settle
.
Используйте следующую информацию о Связи.
IssueDate = datenum('20-May-2014'); CouponRate = 0.01; Maturity = datenum('20-May-2019');
Определите цену облигаций 20 мая 2014.
Settle1 = datenum('20-May-2014'); ZeroDates1 = datemnth(Settle1,12*[1 2 3 5 7 10 20]'); ZeroRates1 = [0.23 0.63 1.01 1.60 2.01 2.27 2.79]'/100; RateSpec1 = intenvset('StartDate',Settle1,'EndDates',ZeroDates1,'Rates',ZeroRates1); [Price1, ~, CFlowAmounts1, CFlowDates1] = bondbyzero(RateSpec1, ... CouponRate, Settle1, Maturity, 'IssueDate', IssueDate); Price1
Price1 = 97.1899
Определите цену облигаций 10 августа 2015.
Settle2 = datenum('10-Aug-2015'); ZeroDates2 = datemnth(Settle2,12*[1 2 3 5 7 10 20]'); ZeroRates2 = [0.40 0.73 1.09 1.62 1.98 2.24 2.58]'/100; RateSpec2 = intenvset('StartDate',Settle2,'EndDates',ZeroDates2,'Rates',ZeroRates2); [Price2, ~, CFlowAmounts2, CFlowDates2] = bondbyzero(RateSpec2, ... CouponRate, Settle2, Maturity, 'IssueDate', IssueDate); Price2
Price2 = 98.9384
Чтобы оценить три связи с помощью двух различных кривых, задайте RateSpec
:
StartDates = '01-April-2016'; EndDates = ['01-April-2017'; '01-April-2018';'01-April-2019';'01-April-2020']; Rates = [[0.0356;0.041185;0.04489;0.047741],[0.0325;0.0423;0.0437;0.0465]]; RateSpec = intenvset('Rates', Rates, 'StartDates',StartDates,... 'EndDates', EndDates, 'Compounding', 1)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: [4x2 double]
Rates: [4x2 double]
EndTimes: [4x1 double]
StartTimes: [4x1 double]
EndDates: [4x1 double]
StartDates: 736421
ValuationDate: 736421
Basis: 0
EndMonthRule: 1
Цена три связи с тем же Maturity
и различными купонами.
Settle = '01-April-2016'; Maturity = '01-April-2020'; Price = bondbyzero(RateSpec,[0.025;0.028;0.035],Settle,Maturity)
Price = 3×2
92.0766 92.4888
93.1680 93.5823
95.7145 96.1338
AdjustCashFlowsBasis
Чтобы настроить потоки наличности согласно сумме наращивания, используйте дополнительный входной параметр AdjustCashFlowsBasis
при вызове bondbyzero
.
Используйте следующие данные, чтобы задать структуру термина процентной ставки и создать RateSpec
.
Rates = 0.065; ValuationDate = '1-Jan-2011'; StartDates = ValuationDate; EndDates= '1-Jan-2017'; Compounding = 1; RateSpec = intenvset('ValuationDate',ValuationDate,'StartDates',StartDates,... 'EndDates', EndDates,'Rates',Rates,'Compounding',Compounding); CouponRate = 0.07; Settle ='1-Jan-2011'; Maturity = '1-Jan-2017'; Period = 1; Face = {{'1-Jan-2015' 100;'1-Jan-2016' 90;'1-Jan-2017' 80}};
Используйте cfamounts
и цикл через Basis
0
к 13
, с помощью дополнительного аргумента AdjustCashFlowsBasis
, чтобы определить суммы потока наличности для начисленных процентов, подлежащих выплате в поселении.
AdjustCashFlowsBasis = true; CFlowAmounts = cfamounts(CouponRate,Settle,Maturity,'Period',Period,'Basis',0:13,'AdjustCashFlowsBasis',AdjustCashFlowsBasis)
CFlowAmounts = 14×7
0 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000
0 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000
0 7.0972 7.1167 7.0972 7.0972 7.0972 107.1167
0 7.0000 7.0192 7.0000 7.0000 7.0000 107.0192
0 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000
0 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000
0 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000
0 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000
0 7.0000 7.0000 7.0000 7.0000 7.0000 107.0000
0 7.0972 7.1167 7.0972 7.0972 7.0972 107.1167
⋮
Заметьте, что суммы потока наличности были настроены согласно Basis
.
Оцените связь ванили с помощью входного параметра AdjustCashFlowsBasis
.
PriceVanilla = bondbyzero(RateSpec,CouponRate,Settle,Maturity,'Period',Period,'Basis',0:13,'AdjustCashFlowsBasis',AdjustCashFlowsBasis)
PriceVanilla = 14×1
102.4205
102.4205
102.9216
102.4506
102.4205
102.4205
102.4205
102.4205
102.4205
102.9216
⋮
RateSpec
— Структура процентной ставкиСтруктура процентной ставки, заданное использование intenvset
, чтобы создать RateSpec
для пересчитанного на год нулевого уровня называют структуру.
Типы данных: struct
CouponRate
— Уровень облигационного купона Уровень облигационного купона, заданный как NINST
-by-1
десятичный годовой показатель или NINST
-by-1
массив ячеек, где каждым элементом является NumDates
-by-2
массив ячеек. Первый столбец NumDates
-by-2
массив ячеек является датами, и второй столбец является сопоставленными уровнями. Дата указывает в последний день, что купонная ставка допустима.
Типы данных: double
| cell
Settle
— Расчетный деньРасчетный день, заданный или как скаляр или как NINST
-by-1
вектор последовательных чисел даты или векторов символов даты.
Settle
должен быть ранее, чем Maturity
.
Типы данных: char
| double
Maturity
— Дата погашенияДата погашения, заданная как NINST
-by-1
вектор последовательных чисел даты или векторов символов даты, представляющих дату погашения для каждой связи.
Типы данных: char
| double
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
Price = bondbyzero(RateSpec,CouponRate,Settle,Maturity,'Period',4,'Face',10000)
'Period'
— Купоны в год2
в год (значение по умолчанию) | векторКупоны в год, заданный как пара, разделенная запятой, состоящая из 'Period'
и NINST
-by-1
вектор. Значениями для Period
является 1
, 2
, 3
, 4
, 6
и 12
.
Типы данных: 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
'EndMonthRule'
— Правило конца месяца отмечает для генерации дат, когда Maturity
является датой конца месяца в течение месяца, имея 30 или меньше дней1
(в действительности) (значение по умолчанию) | неотрицательный целочисленный [0,1]
Правило конца месяца отмечает для генерации дат, когда Maturity
является датой конца месяца в течение месяца, имея 30 или меньше дней, заданных как пара, разделенная запятой, состоящая из 'EndMonthRule'
и неотрицательного целого числа [0
, 1
] использование NINST
-by-1
вектор.
0
= Игнорирует правило, означая, что платежный день всегда является тем же числовым днем месяца.
1
= Установленное правило о, означая, что платежный день всегда является прошлым фактическим днем месяца.
Типы данных: логический
'IssueDate'
— Дата выпуска облигацийДата выпуска облигаций, заданная как пара, разделенная запятой, состоящая из 'IssueDate'
и NINST
-by-1
вектор с помощью последовательного неотрицательного номера даты или вектора символов даты.
Типы данных: double
| char
'FirstCouponDate'
— Неправильная первая дата купонаНеправильная первая дата купона, заданная как пара, разделенная запятой, состоящая из 'FirstCouponDate'
и NINST
-by-1
вектор с помощью последовательного неотрицательного номера даты или вектора символов даты.
Типы данных: double
| char
'LastCouponDate'
— Неправильная последняя дата купонаНеправильная последняя дата купона, заданная как пара, разделенная запятой, состоящая из 'LastCouponDate'
и NINST
-by-1
вектор с помощью последовательного неотрицательного номера даты или вектора символов даты.
Типы данных: double
| char
'StartDate'
— Передайте срок начала работы платежейSettle
(значение по умолчанию) | последовательный номер даты | вектор символов датыПередайте срок начала работы платежей (дата, с которой поток наличности связи рассматривается), заданный как пара, разделенная запятой, состоящая из 'StartDate'
и NINST
-by-1
вектор с помощью последовательных чисел даты или векторов символов даты.
Если вы не задаете StartDate
, эффективная дата начала является датой Settle
.
Типы данных: char
| double
'Face'
— Номинальная стоимость100
(значение по умолчанию) | скаляр неотрицательного значения | массив ячеек неотрицательных значенийНоминальная стоимость, заданная как пара, разделенная запятой, состоящая из 'Face'
и NINST
-by-1
скаляр неотрицательных номинальных стоимостей или NINST
-by-1
массив ячеек, где каждым элементом является NumDates
-by-2
массив ячеек. Первый столбец NumDates
-by-2
массив ячеек является датами, и второй столбец является связанной номинальной стоимостью. Дата указывает в последний день, что номинальная стоимость допустима.
Типы данных: cell
| double
Опции
Производные оценивая опцииПроизводные оценивая опции, заданные как пара, разделенная запятой, состоящая из 'Options'
и структуры, которая создается с derivset
.
Типы данных: struct
'AdjustCashFlowsBasis'
— Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | значение (FALSE) 0
или (TRUE) 1
Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода, заданного как пара, разделенная запятой, состоящая из 'AdjustCashFlowsBasis'
и NINST
-by-1
вектор logicals со значениями (FALSE) 0
или (TRUE) 1
.
Типы данных: логический
'BusinessDayConvention'
— Соглашения рабочего дняactual
(значение по умолчанию) | вектор символов | массив ячеек из символьных векторовСоглашения рабочего дня, заданные как пара, разделенная запятой, состоящая из 'BusinessDayConvention'
и вектора символов или N
-by-1
(или NINST
-by-2
, если BusinessDayConvention
отличается для каждого участка), массив ячеек из символьных векторов соглашений рабочего дня. Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:
actual
— Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.
follow
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.
modifiedfollow
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.
previous
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.
modifiedprevious
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.
Типы данных: char | cell
'Holidays'
— Праздники используются в вычислении рабочих днейholidays.m
(значение по умолчанию) | числа даты MATLAB®Праздники используются в вычислении рабочих дней, заданных как пара, разделенная запятой, состоящая из 'Holidays'
и чисел даты MATLAB с помощью NHolidays
-by-1
вектор.
Типы данных: double
Price
— Цены примечания с фиксированной процентной ставкойЦены долгового обязательства с плавающей ставкой, возвращенные как (NINST
) количеством кривых (NUMCURVES
) матрица. Каждый столбец является результатом одной из кривых нулевой ширины.
DirtyPrice
— Грязная цена облигацийГрязная цена облигаций (чистый + начисленные проценты), возвращенный как NINST
- NUMCURVES
матрица. Каждый столбец является результатом одной из кривых нулевой ширины.
CFlowAmounts
— Суммы потока наличностиСуммы потока наличности, возвращенные как NINST
- NUMCFS
матрица потоков наличности для каждой связи.
CFlowDates
— Даты потока наличностиДаты потока наличности, возвращенные как NINST
- NUMCFS
матрица платежных дней каждой связи.
Облигация на предъявителя ванили является безопасностью, представляющей обязательство возместить одолженную сумму в назначенное время и сделать периодические выплаты процентов до того времени.
Выпускающий связи делает периодические выплаты процентов, пока связь не назревает. В зрелости выпускающий выплачивает держателю связи основную сумму, бывшую должную (номинальную стоимость) и последнюю выплату процентов.
Связь повышения и понижения является долговой безопасностью с предопределенной структурой купона в зависимости от времени.
С этими инструментами увеличение купонов (подходит) или уменьшается (уходят) в конкретные моменты времени во время жизни связи.
Амортизируемая связь обработана как актив с суммой скидки, амортизируемой к процентным расходам по жизни связи.
cfamounts
| cfbyzero
| fixedbyzero
| floatbyzero
| swapbyzero
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.