cbondbystt

Ценовые конвертируемые облигации из стандартного триномиального дерева

Описание

пример

Price = cbondbystt(STTTree,CouponRate,Settle,Maturity,ConvRatio) цены конвертируемых облигаций с использованием стандартного триномиального дерева (STT) с использованием метода Цивериотиса и Фернандеса.

пример

[Price,PriceTree] = cbondbystt(STTTree,CouponRate,Settle,Maturity,ConvRatio) цены конвертируемых облигаций с использованием стандартного триномиального дерева (STT) с использованием метода Цивериотиса и Фернандеса.

пример

[Price,PriceTree,EquityTree,DebtTree] = cbondbystt(___,Name,Value) цены конвертируемых облигаций из стандартного триномиального дерева (STT) с использованием кредитного спреда или с учетом риска дефолта по облигациям.

Чтобы включить риск в форму кредитного спреда (метод Цивериотиса-Фернандеса), используйте дополнительный входной параметр пары "имя-значение" 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]

Этот пример демонстрирует спред эффекта анализ 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')

Figure contains an axes. The axes with title Effect of Spread using Trinomial tree - 200 steps contains 5 objects of type line, text. These objects represent +0 bp, +50 bp, +100 bp, +150 bp.

Создайте структуру терминов процентной ставки 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.

Типы данных: struct

Ставка купона на облигацию, заданная как NINST-by- 1 десятичный годовой темп или NINST-by- 1 массив ячеек, где каждый элемент является NumDates-by- 2 массив ячеек. Первый столбец NumDates-by- 2 массив ячеек является датами, и второй столбец связан скоростями. Дата указывает на последний день действия ставки купона.

Типы данных: double | cell

Дата расчета, заданная как NINST-by- 1 скаляр с использованием последовательного неотрицательного номера даты или вектора символов даты.

Примечание

The Settle дата для каждой конвертируемой облигации устанавливается равной ValuationDate стандартного триномиального (STT) дерева запасов. Аргумент в пользу облигации, Settle, игнорируется.

Типы данных: double | char

Дата зрелости, заданная как NINST-by- 1 скаляр с использованием последовательного неотрицательного номера даты или вектора символов даты.

Типы данных: double | char

Количество акций, конвертируемых в одну облигацию, заданное как 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' и a NINST-by- 1 вектор.

Примечание

Чтобы включить риск в форму кредитного спреда (метод Цивериотиса-Фернандеса), используйте необязательный входной параметр Spread. Чтобы включить риск по умолчанию в алгоритм, задайте необязательные входные параметры DefaultProbability и RecoveryRate. Не используйте Spread с DefaultProbability и RecoveryRate.

Типы данных: double

Купоны в год, заданные как разделенная разделенными запятой парами, состоящая из 'Period' и a NINST-by- 1 вектор.

Типы данных: double

Дата выпуска облигации, заданная как разделенная разделенными запятой парами, состоящая из 'IssueDate' и a NINST-by- 1 вектор с использованием серийного номера даты или вектора символов даты.

Типы данных: double | char

Нерегулярная дата первого купона, заданная как разделенная разделенными запятой парами, состоящая из 'FirstCouponDate' и a NINST-by- 1 скаляр с использованием серийного номера даты или вектора символов даты.

Типы данных: double | char

Нерегулярная дата последнего купона, заданная как разделенная разделенными запятой парами, состоящая из 'LastCouponDate' и a NINST-by- 1 использование серийного номера даты или вектора символов даты.

Типы данных: double | char

Номинальное значение, заданное как разделенная разделенными запятой парами, состоящая из 'Face' и a NINST-by- 1 вектор неотрицательных значений граней или NINST-by- 1 массив ячеек, где каждый элемент является NumDates-by- 2 массив ячеек. Первый столбец NumDates-by- 2 массив ячеек - даты, а второй столбец - связанное лицевое значение. Дата указывает последний день, когда значение лица является допустимым.

Типы данных: cell | double

Цена доставки вызова для европейских, бермудских или американских опций, заданная как разделенная разделенными запятой парами, состоящая из 'CallStrike' и одно из следующих значений:

  • Для европейской опции вызова - NINST-by- 1 вектор неотрицательных целых чисел

  • Для опции вызова на Бермудские острова - NINST-by- NSTRIKES матрица значений цены доставки вызова, где каждая строка является расписанием для одной опции вызова. Если опция вызова имеет меньше NSTRIKES возможности упражнений, конец строки заполнен NaNс.

  • Для опции вызова по-американски - NINST-by- 1 вектор значений цены доставки для каждой опции.

Типы данных: single | double

Дата выполнения вызова для европейской бермудской или американской опции, заданная как разделенная разделенными запятой парами, состоящая из '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' и a NINST-by- 1 вектор положительных целочисленных флагов со значениями 0 или 1.

  • Для европейской или Бермудской опции - AmericanCall является 0 для каждой европейской или бермудской опции.

  • За американскую опцию - AmericanCall является 1 для каждой американской опции. The AmericanCall аргумент требуется для обращения к американским правилам упражнений.

Типы данных: single | double

Поместите значения удара для европейской бермудской или американской опции, заданные как разделенная разделенными запятой парами, состоящая из 'PutStrike' и одно из следующих значений:

  • Для европейской опции - NINST-by- 1 вектор неотрицательных целых чисел.

  • Для Бермудских островов положите опцию - NINST-by- NSTRIKES матрица значений цены доставки, где каждая строка является расписанием для одной опции. Если опция put имеет меньше NSTRIKES возможности упражнений, конец строки заполнен NaNс.

  • За американскую опцию пут - NINST-by- 1 вектор значений цены доставки для каждой опции.

Типы данных: single | double

Поставьте дату упражнения для европейской бермудской или американской опции, заданную как разделенная разделенными запятой парами, состоящая из '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' и a NINST-by- 1 вектор положительных целочисленных флагов со значениями 0 или 1.

  • Для европейской или Бермудской опции - AmericanPut является 0 для каждой европейской или бермудской опции.

  • За американскую опцию - AmericanPut является 1 для каждой американской опции. The AmericanPut аргумент требуется для обращения к американским правилам упражнений.

Типы данных: single | double

Даты преобразования, заданные как разделенная разделенными запятой парами, состоящая из 'ConvDates' и a NINST-by- 1 или NINST-by- 2 матрица серийных номеров дат или векторы символов дат. Если ConvDates не задан, облигация всегда конвертируется до погашения.

Для каждого инструмента облигация может быть преобразована на любую древовидную дату между или включая пару дат в этой строке.

Если ConvDates является NINST-by- 1, связь может быть конвертирована между ValuationDate стандартного триномиального (STT) дерева запасов и отдельного перечисленного ConvDates.

Типы данных: single | double | char

Годовая вероятность дефолта, заданная как разделенная разделенными запятой парами, состоящая из 'DefaultProbability' и a NINST-by- 1 неотрицательное десятичное значение.

Примечание

Чтобы включить риск по умолчанию в алгоритм, задайте необязательные входные параметры DefaultProbability и RecoveryRate. Чтобы включить риск в форму кредитного спреда (метод Цивериотиса-Фернандеса), используйте необязательный входной параметр Spread. Не используйте DefaultProbability и RecoveryRate с Spread.

Типы данных: single | double

Скорость восстановления, заданная как разделенная разделенными запятой парами, состоящая из 'RecoveryRate' и a NINST-by- 1 неотрицательное десятичное значение.

Примечание

Чтобы включить риск по умолчанию в алгоритм, задайте необязательные входные параметры DefaultProbability и RecoveryRate. Чтобы включить риск в форму кредитного спреда (метод Цивериотиса-Фернандеса), используйте необязательный входной параметр Spread. Не используйте DefaultProbability и RecoveryRate с Spread.

Типы данных: single | double

Выходные аргументы

свернуть все

Ожидаемая цена на момент 0, возвращается как NINST-by- 1 массив.

Структура с вектором цен конвертируемых облигаций на каждом узле, возвращенная как древовидная структура.

Структура с вектором компонентов конвертируемых облигаций в каждом узле, возвращенная как древовидная структура.

Структура с вектором компонентов конвертируемых облигаций в каждом узле, возвращенная как древовидная структура.

Подробнее о

свернуть все

Callable Convertible (Кабри

Конвертируемая облигация, которая вызывается эмитентом. Эмитент облигации требует конвертации, устраняя преимущество, заключающееся в том, что конвертация осуществляется по усмотрению держателя облигации.

По вызову держатель облигации может либо конвертировать облигацию, либо погасить ее по цене вызова. Эта опция позволяет эмитенту контролировать цену конвертируемой облигации и, при необходимости, рефинансировать долг новой более дешевой облигацией.

Кабриолет Puttable

Конвертируемая облигация с функцией размещения позволяет держателю облигации продать облигацию с премией на определенную дату.

Эта опция защищает держателя от роста процентных ставок путем сокращения года до срока погашения.

Алгоритмы

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.

Введенный в R2015b