exponenta event banner

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 БП.

Определите 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около-1 десятичная годовая ставка или NINSTоколо-1 массив ячеек, где каждый элемент является NumDatesоколо-2 массив ячеек. Первый столбец NumDatesоколо-2 массив ячеек - даты, а второй столбец - связанные скорости. Дата указывает последний день, когда действительна ставка купона.

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

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

Примечание

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Дата упражнения вызова для европейского, бермудского или американского варианта, указанная как пара, разделенная запятыми, состоящая из 'CallExDates' и одно из следующих значений:

  • Для европейского варианта - NINSTоколо-1 вектор серийных номеров дат или векторы символов дат.

  • Для варианта на Бермудских островах - NINSTоколо-NSTRIKES матрица дат упражнений, где каждая строка является графиком для одного варианта. Для европейского варианта есть только один CallExDate на дату истечения срока действия опциона.

  • Для американского варианта - NINSTоколо-1 или NINSTоколо-2 матрица границ даты упражнения. Для каждого инструмента опцион колл может быть реализован на любую древовидную дату между или включая пару дат в этой строке. Если CallExDates является NINSTоколо-1, опцион может быть реализован между ValuationDate STT stock tree и единый список CallExDate.

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

Тип опции вызова, указанный как пара, разделенная запятыми, состоящая из 'AmericanCall' и NINSTоколо-1 вектор положительных целых флагов со значениями 0 или 1.

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

  • Для американского варианта - AmericanCall является 1 для каждого американского варианта. AmericanCall требуется аргумент для вызова американских правил упражнений.

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

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

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

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

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

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

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

  • Для европейского варианта - NINSTоколо-1 вектор серийных номеров дат или векторы символов дат.

  • Для варианта на Бермудских островах - NINSTоколо-NSTRIKES матрица дат выполнения, где каждая строка является графиком для одного варианта. Для европейского варианта есть только один PutExDate на дату истечения срока действия опциона.

  • Для американского варианта - NINSTоколо-1 или NINSTоколо-2 матрица границ даты упражнения. Для каждого инструмента опцион пут может осуществляться на любую дату дерева между или включая пару дат в этой строке. Если PutExDates является NINSTоколо-1, пут-опцион может быть реализован между ValuationDate STT stock tree и единый список PutExDate.

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

Тип опции пут, указанный как пара, разделенная запятыми, состоящая из 'AmericanPut' и NINSTоколо-1 вектор положительных целых флагов со значениями 0 или 1.

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

  • Для американского варианта - AmericanPut является 1 для каждого американского варианта. AmericanPut требуется аргумент для вызова американских правил упражнений.

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

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

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

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

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

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

Примечание

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

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

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

Примечание

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

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

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

свернуть все

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

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

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

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

Подробнее

свернуть все

Вызываемый трансформируемый

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

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

Трансформируемый Puttable

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

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

Алгоритмы

cbondbycrr, cbondbyeqp, cbondbyitt, и cbondbysttвозвращает информацию о цене в виде вектора цен и дерева цен. Эти функции реализуют риск либо в виде кредитного спреда, либо с учетом риска дефолта по облигациям. Чтобы включить риск в форму кредитного спреда (метод Цивериотиса-Фернандеса), используйте необязательный аргумент пара имя-значение Spread. Чтобы включить в алгоритм риск по умолчанию, укажите необязательные аргументы пары имя-значение DefaultProbability и RecoveryRate.

Ссылки

[1] Цивериотис, К. и С. Фернандеш. «Оценка конвертируемых облигаций с кредитным риском». Журнал фиксированного дохода. Том 8, 1998, стр. 95-102.

[2] Халл, J. Опционы, фьючерсы и другие деривативы. Четвертое издание. Prentice Hall, 2000, стр. 646-649.

Представлен в R2015b