Ценовые конвертируемые облигации из стандартного триномиального дерева
[
цены конвертируемых облигаций из стандартного триномиального дерева (STT) с использованием кредитного спреда или с учетом риска дефолта по облигациям.Price
,PriceTree
,EquityTree
,DebtTree
]
= cbondbystt(___,Name,Value
)
Чтобы включить риск в форму кредитного спреда (метод Цивериотиса-Фернандеса), используйте дополнительный входной параметр пары "имя-значение" Spread
. Чтобы включить риск по умолчанию в алгоритм, задайте дополнительные входные параметры пара "имя-значение" DefaultProbability
и RecoveryRate
.
Создайте RateSpec
.
StartDates = 'Jan-1-2015'; EndDates = 'Jan-1-2020'; Rates = 0.025; Basis = 1; RateSpec = intenvset('ValuationDate',StartDates,'StartDates',StartDates,... 'EndDates',EndDates,'Rates',Rates,'Compounding',-1,'Basis',Basis)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: -1
Disc: 0.8825
Rates: 0.0250
EndTimes: 5
StartTimes: 0
EndDates: 737791
StartDates: 735965
ValuationDate: 735965
Basis: 1
EndMonthRule: 1
Создайте StockSpec
.
AssetPrice = 80; Sigma = 0.12; StockSpec = stockspec(Sigma,AssetPrice)
StockSpec = struct with fields:
FinObj: 'StockSpec'
Sigma: 0.1200
AssetPrice: 80
DividendType: []
DividendAmounts: 0
ExDividendDates: []
Создайте STTTree
.
TimeSpec = stttimespec(StartDates, EndDates, 20); STTTree = stttree(StockSpec, RateSpec, TimeSpec)
STTTree = struct with fields:
FinObj: 'STStockTree'
StockSpec: [1x1 struct]
TimeSpec: [1x1 struct]
RateSpec: [1x1 struct]
tObs: [1x21 double]
dObs: [1x21 double]
STree: {1x21 cell}
Probs: {1x20 cell}
Определите конвертируемую связь. Конвертируемая облигация может быть названа начиная с 1 января 2016 года со страйк-ценой 95.
CouponRate = 0.03; Settle = 'Jan-1-2015'; Maturity = 'April-1-2018'; Period = 1; CallStrike = 95; CallExDates = [datenum('Jan-1-2016') datenum('April-1-2018')]; ConvRatio = 1; Spread = 0.025;
Оцените конвертируемую связь с помощью стандартной модели триномиального дерева.
[Price,PriceTree,EqtTre,DbtTree] = cbondbystt(STTTree,CouponRate,Settle,Maturity,ConvRatio,... 'Period',Period,'Spread',Spread,'CallExDates',CallExDates,'CallStrike',CallStrike,'AmericanCall',1)
Price = 90.2511
PriceTree = struct with fields:
FinObj: 'TrinPriceTree'
PTree: {1x21 cell}
tObs: [1x21 double]
dObs: [1x21 double]
EqtTre = struct with fields:
FinObj: 'TrinPriceTree'
PTree: {1x21 cell}
tObs: [1x21 double]
dObs: [1x21 double]
DbtTree = struct with fields:
FinObj: 'TrinPriceTree'
PTree: {1x21 cell}
tObs: [1x21 double]
dObs: [1x21 double]
STTTree
Этот пример демонстрирует спред эффекта анализ 4% купонной конвертируемой облигации, вызываемой на уровне 110 в конце второго года, с погашением через пять лет со спредами 0, 50, 100 и 150 BP.
Определите RateSpec
.
StartDates = '1-Apr-2015'; EndDates = '1-Apr-2020'; Rates = 0.05; Compounding = -1; Basis = 1; RateSpec = intenvset('StartDates',StartDates,'EndDates',EndDates,'Rates',Rates,... 'Compounding',Compounding,'Basis',Basis)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: -1
Disc: 0.7788
Rates: 0.0500
EndTimes: 5
StartTimes: 0
EndDates: 737882
StartDates: 736055
ValuationDate: 736055
Basis: 1
EndMonthRule: 1
Определите данные конвертируемой облигации.
Settle = '1-Apr-2015'; Maturity = '1-Apr-2020'; CouponRate = 0.04; CallStrike = 110; CallExDates = [datenum('1-Apr-2017') datenum(Maturity)]; ConvRatio = 1; AmericanCall = 1; Sigma = 0.3; Spreads = 0:0.005:0.015; Prices = 40:10:140; convprice = zeros(length(Prices),length(Spreads));
Определите TimeSpec
для стандартного триномиального дерева создайте STTTree
использование stttree
, и оценить конвертируемую облигацию используя cbondbystt
.
NumSteps = 200; TimeSpec = stttimespec(StartDates, EndDates, NumSteps); for PriceIdx = 1:length(Prices) StockSpec = stockspec(Sigma, Prices(PriceIdx)); STTT = stttree(StockSpec, RateSpec, TimeSpec); convprice(PriceIdx,:) = cbondbystt(STTT, CouponRate, Settle, Maturity, ConvRatio,... 'Spread', Spreads(:),'CallExDates', CallExDates, 'CallStrike', CallStrike,... 'AmericanCall', AmericanCall); end
Постройте график анализа эффекта для конвертируемой связи.
stock = repmat(Prices',1,length(Spreads)); plot(stock,convprice); legend({'+0 bp'; '+50 bp'; '+100 bp'; '+150 bp'}); title ('Effect of Spread using Trinomial tree - 200 steps') xlabel('Stock Price'); ylabel('Convertible Bond Price'); text(50, 150, ['Coupon 4% semiannual,', sprintf('\n'), ... '110 Call after 2 years,' sprintf('\n'), ... 'maturing in 5 years.'],'fontweight','Bold')
DefaultProbability
и RecoveryRate
Создайте структуру терминов процентной ставки RateSpec
.
StartDates = 'Jan-1-2015'; EndDates = 'Jan-1-2020'; Rates = 0.025; Basis = 1; RateSpec = intenvset('ValuationDate',StartDates,'StartDates',StartDates,... 'EndDates',EndDates,'Rates',Rates,'Compounding',-1,'Basis',Basis)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: -1
Disc: 0.8825
Rates: 0.0250
EndTimes: 5
StartTimes: 0
EndDates: 737791
StartDates: 735965
ValuationDate: 735965
Basis: 1
EndMonthRule: 1
Создайте StockSpec
.
AssetPrice = 80; Sigma = 0.12; StockSpec = stockspec(Sigma,AssetPrice)
StockSpec = struct with fields:
FinObj: 'StockSpec'
Sigma: 0.1200
AssetPrice: 80
DividendType: []
DividendAmounts: 0
ExDividendDates: []
Создайте дерево STT для собственного капитала.
TimeSpec = stttimespec(StartDates, EndDates, 20); STTTree = stttree(StockSpec, RateSpec, TimeSpec)
STTTree = struct with fields:
FinObj: 'STStockTree'
StockSpec: [1x1 struct]
TimeSpec: [1x1 struct]
RateSpec: [1x1 struct]
tObs: [1x21 double]
dObs: [1x21 double]
STree: {1x21 cell}
Probs: {1x20 cell}
Определите и оцените конвертируемую облигацию с помощью дополнительной DefaultProbability
и RecoveryRate
аргументы.
CouponRate = 0.03; Settle = 'Jan-1-2015'; Maturity = 'April-1-2018'; Period = 1; CallStrike = 95; CallExDates = [datenum('Jan-1-2016') datenum('April-1-2018')]; ConvRatio = 1; DefaultProbability = .30; RecoveryRate = .82; [Price,PriceTree,EqtTre,DbtTree] = cbondbystt(STTTree,CouponRate,Settle,Maturity,ConvRatio,... 'Period',Period,'CallExDates',CallExDates,'CallStrike',CallStrike,'AmericanCall',1,... 'DefaultProbability',DefaultProbability,'RecoveryRate',RecoveryRate)
Price = 80
PriceTree = struct with fields:
FinObj: 'TrinPriceTree'
PTree: {1x21 cell}
tObs: [1x21 double]
dObs: [1x21 double]
EqtTre = struct with fields:
FinObj: 'TrinPriceTree'
PTree: {1x21 cell}
tObs: [1x21 double]
dObs: [1x21 double]
DbtTree = struct with fields:
FinObj: 'TrinPriceTree'
PTree: {1x21 cell}
tObs: [1x21 double]
dObs: [1x21 double]
STTTree
- Древовидная структура для стандартного триномиального дереваСтруктура дерева запасов для стандартного триномиального дерева, заданная при помощи stttree
.
Типы данных: struct
CouponRate
- Ставка купона по облигациям Ставка купона на облигацию, заданная как NINST
-by- 1
десятичный годовой темп или NINST
-by- 1
массив ячеек, где каждый элемент является NumDates
-by- 2
массив ячеек. Первый столбец NumDates
-by- 2
массив ячеек является датами, и второй столбец связан скоростями. Дата указывает на последний день действия ставки купона.
Типы данных: double
| cell
Settle
- Дата расчетаДата расчета, заданная как NINST
-by- 1
скаляр с использованием последовательного неотрицательного номера даты или вектора символов даты.
Примечание
The Settle
дата для каждой конвертируемой облигации устанавливается равной ValuationDate
стандартного триномиального (STT) дерева запасов. Аргумент в пользу облигации, Settle
, игнорируется.
Типы данных: double
| char
Maturity
- Дата погашенияДата зрелости, заданная как NINST
-by- 1
скаляр с использованием последовательного неотрицательного номера даты или вектора символов даты.
Типы данных: double
| char
ConvRatio
- Количество акций, конвертируемых в одну облигациюКоличество акций, конвертируемых в одну облигацию, заданное как NINST
-by- 1
с неотрицательным числом.
Типы данных: double
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
[Price,PriceTree,EquityTree,DebtTree] = cbondbystt(STTTree,CouponRate,Settle,Maturity,ConvRatio,'Spread',Spread,'CallExDates',CallExDates,'CallStrike',CallStrike,'AmericanCall',1)
'Spread'
- Количество базисных точек над базисной ставкой0
(по умолчанию) | векторКоличество базисных точек над ссылочной ставкой, заданное как разделенная разделенными запятой парами, состоящая из 'Spread'
и a NINST
-by- 1
вектор.
Примечание
Чтобы включить риск в форму кредитного спреда (метод Цивериотиса-Фернандеса), используйте необязательный входной параметр Spread
. Чтобы включить риск по умолчанию в алгоритм, задайте необязательные входные параметры DefaultProbability
и RecoveryRate
. Не используйте Spread
с DefaultProbability
и RecoveryRate
.
Типы данных: double
'Period'
- Купоны в год2
в год (по умолчанию) | векторКупоны в год, заданные как разделенная разделенными запятой парами, состоящая из 'Period'
и a NINST
-by- 1
вектор.
Типы данных: double
'IssueDate'
- Дата выпуска облигацийДата выпуска облигации, заданная как разделенная разделенными запятой парами, состоящая из 'IssueDate'
и a NINST
-by- 1
вектор с использованием серийного номера даты или вектора символов даты.
Типы данных: double
| char
'FirstCouponDate'
- Нерегулярная дата первого купонаНерегулярная дата первого купона, заданная как разделенная разделенными запятой парами, состоящая из 'FirstCouponDate'
и a NINST
-by- 1
скаляр с использованием серийного номера даты или вектора символов даты.
Типы данных: double
| char
'LastCouponDate'
- Нерегулярная дата последнего купонаНерегулярная дата последнего купона, заданная как разделенная разделенными запятой парами, состоящая из 'LastCouponDate'
и a NINST
-by- 1
использование серийного номера даты или вектора символов даты.
Типы данных: double
| char
'Face'
- Номинал100
(по умолчанию) | неотрицательное значение | массив ячеек неотрицательных значенийНоминальное значение, заданное как разделенная разделенными запятой парами, состоящая из 'Face'
и a NINST
-by- 1
вектор неотрицательных значений граней или NINST
-by- 1
массив ячеек, где каждый элемент является NumDates
-by- 2
массив ячеек. Первый столбец NumDates
-by- 2
массив ячеек - даты, а второй столбец - связанное лицевое значение. Дата указывает последний день, когда значение лица является допустимым.
Типы данных: cell
| double
'CallStrike'
- Зовите цену забастовки для европейской Бермудской или американской опцииЦена доставки вызова для европейских, бермудских или американских опций, заданная как разделенная разделенными запятой парами, состоящая из 'CallStrike'
и одно из следующих значений:
Для европейской опции вызова - NINST
-by- 1
вектор неотрицательных целых чисел
Для опции вызова на Бермудские острова - NINST
-by- NSTRIKES
матрица значений цены доставки вызова, где каждая строка является расписанием для одной опции вызова. Если опция вызова имеет меньше NSTRIKES
возможности упражнений, конец строки заполнен NaN
с.
Для опции вызова по-американски - NINST
-by- 1
вектор значений цены доставки для каждой опции.
Типы данных: single
| double
'CallExDates'
- Называть дату упражнения для европейской Бермудской или американской опцииДата выполнения вызова для европейской бермудской или американской опции, заданная как разделенная разделенными запятой парами, состоящая из 'CallExDates'
и одно из следующих значений:
Для европейской опции - NINST
-by- 1
вектор серийных номеров дат или векторов символов дат.
Для опций - NINST
-by- NSTRIKES
матрица дат упражнений, где каждая строка является расписанием для одной опции. Для европейской опции существует только один CallExDate
на дату истечения срока действия опции.
За американскую опцию - NINST
-by- 1
или NINST
-by- 2
матрица контуров дат исполнения. Для каждого инструмента опция вызова может выполняться на любую древовидную дату между или включая пару дат в этой строке. Если CallExDates
является NINST
-by- 1
, опция может быть реализована между ValuationDate
дерева запасов STT и одиночных перечисленных CallExDate
.
Типы данных: double
| char
| cell
'AmericanCall'
- Индикатор типа опции вызова0
если AmericanCall
является NaN
или не введено (по умолчанию) | положительное целое число [0,1]
| вектор положительных целых чисел [0,1]
Тип опции вызова, заданный как разделенная разделенными запятой парами, состоящая из 'AmericanCall'
и a NINST
-by- 1
вектор положительных целочисленных флагов со значениями 0
или 1
.
Для европейской или Бермудской опции - AmericanCall
является 0
для каждой европейской или бермудской опции.
За американскую опцию - AmericanCall
является 1
для каждой американской опции. The AmericanCall
аргумент требуется для обращения к американским правилам упражнений.
Типы данных: single
| double
'PutStrike'
- Поставьте значения забастовки для европейской бермудской или американской опцииПоместите значения удара для европейской бермудской или американской опции, заданные как разделенная разделенными запятой парами, состоящая из 'PutStrike'
и одно из следующих значений:
Для европейской опции - NINST
-by- 1
вектор неотрицательных целых чисел.
Для Бермудских островов положите опцию - NINST
-by- NSTRIKES
матрица значений цены доставки, где каждая строка является расписанием для одной опции. Если опция put имеет меньше NSTRIKES
возможности упражнений, конец строки заполнен NaN
с.
За американскую опцию пут - NINST
-by- 1
вектор значений цены доставки для каждой опции.
Типы данных: single
| double
'PutExDates'
- Поставьте дату упражнения для европейской Бермудской или американской опцииПоставьте дату упражнения для европейской бермудской или американской опции, заданную как разделенная разделенными запятой парами, состоящая из 'PutExDates'
и одно из следующих значений:
Для европейской опции - NINST
-by- 1
вектор серийных номеров дат или векторов символов дат.
Для опций - NINST
-by- NSTRIKES
матрица дат упражнений, где каждая строка является расписанием для одной опции. Для европейской опции существует только один PutExDate
на дату истечения срока действия опции.
За американскую опцию - NINST
-by- 1
или NINST
-by- 2
матрица контуров дат исполнения. Для каждого инструмента опция put может быть реализована на любую древовидную дату между или включая пару дат в этой строке. Если PutExDates
является NINST
-by- 1
, опция может быть реализован между ValuationDate
дерева запасов STT и одиночных перечисленных PutExDate
.
Типы данных: double
| char
| cell
'AmericanPut'
- Поместите индикатор типа опции0
если AmericanPut
является NaN
или не введено (по умолчанию) | положительное целое число [0,1]
| вектор положительных целых чисел [0,1]
Поместите тип опции, заданный как разделенная разделенными запятой парами, состоящая из 'AmericanPut'
и a NINST
-by- 1
вектор положительных целочисленных флагов со значениями 0
или 1
.
Для европейской или Бермудской опции - AmericanPut
является 0
для каждой европейской или бермудской опции.
За американскую опцию - AmericanPut
является 1
для каждой американской опции. The AmericanPut
аргумент требуется для обращения к американским правилам упражнений.
Типы данных: single
| double
'ConvDates'
- Даты трансформацииMaturityDate
(по умолчанию) | серийный номер даты | символьный вектор датыДаты преобразования, заданные как разделенная разделенными запятой парами, состоящая из 'ConvDates'
и a NINST
-by- 1
или NINST
-by- 2
матрица серийных номеров дат или векторы символов дат. Если ConvDates
не задан, облигация всегда конвертируется до погашения.
Для каждого инструмента облигация может быть преобразована на любую древовидную дату между или включая пару дат в этой строке.
Если ConvDates
является NINST
-by- 1
, связь может быть конвертирована между ValuationDate
стандартного триномиального (STT) дерева запасов и отдельного перечисленного ConvDates
.
Типы данных: single
| double
| char
'DefaultProbability'
- Годовая вероятность дефолта0
(по умолчанию) | неотрицательное десятичное числоГодовая вероятность дефолта, заданная как разделенная разделенными запятой парами, состоящая из 'DefaultProbability'
и a NINST
-by- 1
неотрицательное десятичное значение.
Примечание
Чтобы включить риск по умолчанию в алгоритм, задайте необязательные входные параметры DefaultProbability
и RecoveryRate
. Чтобы включить риск в форму кредитного спреда (метод Цивериотиса-Фернандеса), используйте необязательный входной параметр Spread
. Не используйте DefaultProbability
и RecoveryRate
с Spread
.
Типы данных: single
| double
'RecoveryRate'
- Скорость восстановления1
(по умолчанию) | неотрицательное десятичное числоСкорость восстановления, заданная как разделенная разделенными запятой парами, состоящая из 'RecoveryRate'
и a NINST
-by- 1
неотрицательное десятичное значение.
Примечание
Чтобы включить риск по умолчанию в алгоритм, задайте необязательные входные параметры DefaultProbability
и RecoveryRate
. Чтобы включить риск в форму кредитного спреда (метод Цивериотиса-Фернандеса), используйте необязательный входной параметр Spread
. Не используйте DefaultProbability
и RecoveryRate
с Spread
.
Типы данных: single
| double
Price
- Ожидаемая цена в то время 0
Ожидаемая цена на момент 0
, возвращается как NINST
-by- 1
массив.
PriceTree
- Структура с вектором цен конвертируемых облигаций на каждом узлеСтруктура с вектором цен конвертируемых облигаций на каждом узле, возвращенная как древовидная структура.
EquityTree
- Структура с вектором компонента конвертируемого акционерного капитала в каждом узлеСтруктура с вектором компонентов конвертируемых облигаций в каждом узле, возвращенная как древовидная структура.
DebtTree
- Структура с вектором компонента в каждом узлеСтруктура с вектором компонентов конвертируемых облигаций в каждом узле, возвращенная как древовидная структура.
Конвертируемая облигация, которая вызывается эмитентом. Эмитент облигации требует конвертации, устраняя преимущество, заключающееся в том, что конвертация осуществляется по усмотрению держателя облигации.
По вызову держатель облигации может либо конвертировать облигацию, либо погасить ее по цене вызова. Эта опция позволяет эмитенту контролировать цену конвертируемой облигации и, при необходимости, рефинансировать долг новой более дешевой облигацией.
Конвертируемая облигация с функцией размещения позволяет держателю облигации продать облигацию с премией на определенную дату.
Эта опция защищает держателя от роста процентных ставок путем сокращения года до срока погашения.
cbondbycrr
, cbondbyeqp
, cbondbyitt
, и cbondbystt
возвращает информацию о цене в виде вектора цены и дерева цен. Эти функции реализуют риск в виде кредитного спреда или с учетом риска дефолта по облигациям. Чтобы включить риск в форму кредитного спреда (метод Цивериотиса-Фернандеса), используйте необязательный аргумент пары "имя-значение" Spread
. Чтобы включить риск по умолчанию в алгоритм, задайте необязательные аргументы пары "имя-значение" DefaultProbability
и RecoveryRate
.
[1] Tsiveriotis, K., and C. Fernandes. «Оценка конвертируемых облигаций с кредитным риском». Журнал фиксированного дохода. Том 8, 1998, с. 95-102.
[2] Hull, J. Options, Futures and Other Derivatives. Четвертое издание. Prentice Hall, 2000, с. 646-649.
cbondbycrr
| cbondbyeqp
| instadd
| instcbond
| instdisp
| intenvset
| stockspec
| sttprice
| sttsens
| stttree
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.