Ценовая связь от дерева процентной ставки Black-Derman-Toy
[
добавляют дополнительные аргументы пары "имя-значение".Price
,PriceTree
]
= bondbybdt(___,Name,Value
)
Оцените 10%-ю связь с помощью дерева процентной ставки BDT.
Загрузите deriv.mat
, который обеспечивает BDTTree
. BDTTree
структура содержит время, и информация о процентной ставке должна была оценить связь.
load deriv.mat;
Задайте связь с помощью обязательных аргументов. Другие аргументы используют значения по умолчанию.
CouponRate = 0.10; Settle = '01-Jan-2000'; Maturity = '01-Jan-2003'; Period = 1;
Используйте bondbybdt
вычислить цену связи.
Price = bondbybdt(BDTTree, CouponRate, Settle, Maturity, Period)
Price = 95.5030
Цена одна ступенчатые облигации на предъявителя с помощью данных о рынке.
Задайте структуру термина процентной ставки.
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;
Создайте дерево BDT и примите энергозависимость, чтобы быть 10% с помощью следующих данных о рынке:
Sigma = 0.1; BDTTimeSpec = bdttimespec(ValuationDate, EndDates); BDTVolSpec = bdtvolspec(ValuationDate, EndDates, Sigma*ones(1, length(EndDates))'); BDTT = bdttree(BDTVolSpec, RS, BDTTimeSpec)
BDTT = struct with fields:
FinObj: 'BDTFwdTree'
VolSpec: [1x1 struct]
TimeSpec: [1x1 struct]
RateSpec: [1x1 struct]
tObs: [0 1 2 3]
dObs: [734139 734504 734869 735235]
TFwd: {[4x1 double] [3x1 double] [2x1 double] [3]}
CFlowT: {[4x1 double] [3x1 double] [2x1 double] [4]}
FwdTree: {1x4 cell}
Вычислите цену ступенчатых облигаций на предъявителя.
PBDT= bondbybdt(BDTT, CouponRate, Settle,Maturity , Period)
PBDT = 4×1
100.7246
100.0945
101.5900
102.0820
Цена две связи с расписаниями амортизации с помощью Face
входной параметр, чтобы задать расписание.
Задайте структуру термина процентной ставки.
Rates = 0.035; ValuationDate = '1-Nov-2011'; StartDates = ValuationDate; EndDates = '1-Nov-2017'; Compounding = 1;
Создайте RateSpec
.
RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding);
Создайте инструмент связи. Связи имеют купонную ставку 4% и 3,85%, период одного года, и назревают 1 ноября 2017.
CouponRate = [0.04; 0.0385]; Settle ='1-Nov-2011'; Maturity = '1-Nov-2017'; Period = 1;
Задайте расписание амортизации.
Face = {{'1-Nov-2015' 100;'1-Nov-2016' 85;'1-Nov-2017' 70}; {'1-Nov-2015' 100;'1-Nov-2016' 90;'1-Nov-2017' 80}};
Создайте дерево BDT и примите энергозависимость, чтобы быть 10%.
MatDates = {'1-Nov-2012'; '1-Nov-2013';'1-Nov-2014';'1-Nov-2015';'1-Nov-2016';'1-Nov-2017'}; BDTTimeSpec = bdttimespec(ValuationDate, MatDates); Volatility = 0.1; BDTVolSpec = bdtvolspec(ValuationDate, MatDates, Volatility*ones(1,length(MatDates))'); BDTT = bdttree(BDTVolSpec, RateSpec, BDTTimeSpec);
Вычислите цену связей амортизации.
Price = bondbybdt(BDTT, CouponRate, Settle, Maturity, 'Period',Period,... 'Face', Face)
Price = 2×1
102.4791
101.7786
BDTTree
— Структура процентной ставкиДревовидная структура процентной ставки, созданная bdttree
Типы данных: struct
CouponRate
— Уровень облигационного купона Уровень облигационного купона, заданный как NINST
- 1
десятичный годовой показатель или NINST
- 1
массив ячеек, где каждым элементом является NumDates
- 2
cellArray. Первый столбец NumDates
- 2
массив ячеек является датами, и второй столбец является сопоставленными уровнями. Дата указывает в последний день, что купонная ставка допустима.
Типы данных: double |
cell
Settle
— Расчетный деньРасчетный день, заданный или как скаляр или как NINST
- 1
вектор последовательных чисел даты или векторов символов даты.
Settle
дата каждой связи назначена к ValuationDate
из дерева BDT. Аргумент Settle
связи проигнорирован.
Типы данных: char |
double
Maturity
— Дата погашенияДата погашения, заданная как NINST
- 1
вектор последовательных чисел даты или векторов символов даты, представляющих дату погашения для каждой связи.
Типы данных: char |
double
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
[Price,PriceTree] = bondbybdt(BDTTree,CouponRate,Settle,Maturity,'Period',4,'Face',10000)
'Period'
— Купоны в год
в год (значение по умолчанию) | векторКупоны в год, заданный как разделенная запятой пара, состоящая из 'Period'
и NINST
- 1
вектор. Значения для Period
1
, 2, 3
, 4
, 6
, и
12
.
Типы данных: double
'Basis'
— Основание дневного количества
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
к 13
Основание дневного количества инструмента, заданного как разделенная запятой пара, состоящая из 'Basis'
и NINST
- 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 или меньше дней
(в действительности) (значение по умолчанию) | неотрицательный целочисленный [0,1]
Правило конца месяца отмечает для генерации дат когда Maturity
дата конца месяца в течение месяца, имея 30 или меньше дней, заданных как разделенная запятой пара, состоящая из 'EndMonthRule'
и неотрицательное целое число [0
, 1] использование
NINST
- 1
вектор.
0 = Проигнорируйте правило, подразумевая, что платежный день всегда является тем же числовым днем месяца.
1 = Установите правило о, подразумевая, что платежный день всегда является прошлым фактическим днем месяца.
Типы данных: логический
'IssueDate'
— Дата выпуска облигацийДата выпуска облигаций, заданная как разделенная запятой пара, состоящая из 'IssueDate'
и NINST
- 1
вектор с помощью последовательного неотрицательного номера даты или вектора символов даты.
Типы данных: double |
char
'FirstCouponDate'
— Неправильная первая дата купонаНеправильная первая дата купона, заданная как разделенная запятой пара, состоящая из 'FirstCouponDate'
и NINST
- 1
вектор с помощью последовательного неотрицательного номера даты или вектора символов даты.
Когда FirstCouponDate
и LastCouponDate
оба заданы, FirstCouponDate
более приоритетен в определении структуры купонного платежа. Если вы не задаете FirstCouponDate
, платежные дни потока наличности определяются из других входных параметров.
Типы данных: double |
char
'LastCouponDate'
— Неправильная последняя дата купонаНеправильная последняя дата купона, заданная как разделенная запятой пара, состоящая из 'LastCouponDate'
и NINST
- 1
вектор с помощью последовательного неотрицательного номера даты или вектора символов даты.
В отсутствие заданного FirstCouponDate
, заданный LastCouponDate
определяет структуру купона связи. Структура купона связи является усеченной в LastCouponDate
, независимо от того, где это падает и сопровождается только датой потока наличности зрелости связи. Если вы не задаете LastCouponDate
, платежные дни потока наличности определяются из других входных параметров.
Типы данных: double |
char
'StartDate'
— Передайте срок начала работы платежейSettle
дата (значение по умолчанию) | последовательный номер даты | вектор символов датыПередайте срок начала работы платежей (дата, с которой поток наличности связи рассматривается), заданный как разделенная запятой пара, состоящая из 'StartDate'
и NINST
- 1
вектор с помощью последовательных чисел даты или векторов символов даты.
Если вы не задаете StartDate
, эффективной датой начала является Settle
дата.
Типы данных: char |
double
'Face'
— Номинальная стоимость
(значение по умолчанию) | неотрицательное значение | массив ячеек неотрицательных значенийПоверхность или номинальная стоимость, заданная как разделенная запятой пара, состоящая из 'Face'
и NINST
- 1
вектор неотрицательных номинальных стоимостей или NINST
- 1
массив ячеек номинальных стоимостей или расписаний номинальной стоимости. Для последнего случая каждым элементом массива ячеек является NumDates
- 2
массив ячеек, где первый столбец является датами и вторым столбцом, является своей связанной номинальной стоимостью. Дата указывает в последний день, что номинальная стоимость допустима.
Типы данных: cell
| double
'Options'
— Производные оценивая опцииПроизводные оценивая опции, заданные как разделенная запятой пара, состоящая из 'Options'
и структура, которая создается с derivset
.
Типы данных: struct
'AdjustCashFlowsBasis'
— Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | значение 0
(FALSE) или 1
TRUEОтметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода, заданного как разделенная запятой пара, состоящая из 'AdjustCashFlowsBasis'
и NINST
- 1
вектор logicals со значениями 0
(FALSE) или 1
TRUE.
Типы данных: логический
'BusinessDayConvention'
— Соглашения рабочего дняactual
(значение по умолчанию) | вектор символов | массив ячеек из символьных векторовСоглашения рабочего дня, заданные как разделенная запятой пара, состоящая из 'BusinessDayConvention'
и вектор символов или N
- 1
(или NINST
- 2
если BusinessDayConvention
отличается для каждого участка), массив ячеек из символьных векторов соглашений рабочего дня. Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:
actual
— Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.
follow
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.
modifiedfollow
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.
previous
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.
modifiedprevious
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.
Типы данных: char |
cell
'Holidays'
— Праздники используются в вычислении рабочих днейholidays.m
(значение по умолчанию) | числа даты MATLAB®Праздники используются в вычислении рабочих дней, заданных как разделенная запятой пара, состоящая из 'Holidays'
и числа даты MATLAB с помощью NHolidays
- 1
вектор.
Типы данных: double
Price
— Ожидаемые цены облигаций во время 0Ожидаемые цены облигаций во время 0, возвращенный как NINST
- 1
вектор.
PriceTree
— Древовидная структура цен на инструментыДревовидная структура цен на инструменты, возвращенных как структура MATLAB деревьев, содержащих векторы цен на инструменты и начисленных процентов, и вектор времен наблюдения для каждого узла. В PriceTree
:
PriceTree.PTree
содержит чистые цены.
PriceTree.AITree
содержит начисленные проценты.
PriceTree.tObs
содержит времена наблюдения.
Облигация на предъявителя ванили является безопасностью, представляющей обязательство возместить одолженную сумму в назначенное время и сделать периодические выплаты процентов до того времени.
Выпускающий связи делает периодические выплаты процентов, пока связь не назревает. В зрелости выпускающий выплачивает держателю связи основную сумму, бывшую должную (номинальную стоимость) и последнюю выплату процентов.
Связь повышения и понижения является долговой безопасностью с предопределенной структурой купона в зависимости от времени.
С этими инструментами увеличение купонов (подходит) или уменьшается (уходят) в конкретные моменты времени во время жизни связи.
Амортизируемая связь обработана как актив с суммой скидки, амортизируемой к процентным расходам по жизни связи.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.