cbondbyeqp

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

Описание

пример

Price = cbondbyeqp(EQPTree,CouponRate,Settle,Maturity,ConvRatio) цены конвертируются из биномиального дерева EQP по методу Цивериотиса и Фернандеса.

пример

[Price,PriceTree] = cbondbyeqp(EQPTree,CouponRate,Settle,Maturity,ConvRatio) цены конвертируются из биномиального дерева EQP по методу Цивериотиса и Фернандеса.

пример

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

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

Примеры

свернуть все

Создайте структуру терминов процентной ставки RateSpec.

StartDates = 'Jan-1-2014'; 
EndDates = 'Jan-1-2016'; 
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.9512
            Rates: 0.0250
         EndTimes: 2
       StartTimes: 0
         EndDates: 736330
       StartDates: 735600
    ValuationDate: 735600
            Basis: 1
     EndMonthRule: 1

Создайте StockSpec.

AssetPrice = 110; 
Sigma = 0.22; 
Div = 0.02; 
StockSpec = stockspec(Sigma,AssetPrice,'continuous',Div)
StockSpec = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.2200
         AssetPrice: 110
       DividendType: {'continuous'}
    DividendAmounts: 0.0200
    ExDividendDates: []

Создайте дерево EQP для собственного капитала.

NumSteps = 6;
TimeSpec = eqptimespec(StartDates,EndDates,NumSteps);
EQPTree = eqptree(StockSpec,RateSpec,TimeSpec)
EQPTree = struct with fields:
       FinObj: 'BinStockTree'
       Method: 'EQP'
    StockSpec: [1x1 struct]
     TimeSpec: [1x1 struct]
     RateSpec: [1x1 struct]
         tObs: [0 0.3333 0.6667 1 1.3333 1.6667 2]
         dObs: [735600 735721 735843 735965 736086 736208 736330]
        STree: {1x7 cell}
      UpProbs: [0.5000 0.5000 0.5000 0.5000 0.5000 0.5000]

Определите конвертируемую связь. Конвертируемая облигация может быть названа начиная с 1 января 2015 года со страйк-ценой 125.

Settle = 'Jan-1-2014'; 
Maturity = 'Jan-1-2016'; 
CouponRate = 0.03;
CallStrike = 125; 
Period = 1;
CallExDates = [datenum('Jan-1-2015') datenum('Jan-1-2016')];
ConvRatio = 1.5;

Цена конвертируемой облигации.

Spread = 0.045;

[Price,PriceTree,EqtTre,DbtTree] = cbondbyeqp(EQPTree,CouponRate,Settle,...
Maturity,ConvRatio,'Period',Period,'Spread',Spread,'CallExDates',...
CallExDates,'CallStrike',CallStrike,'AmericanCall',1)
Price = 165
PriceTree = struct with fields:
    FinObj: 'BinPriceTree'
     PTree: {1x7 cell}
      tObs: [0 0.3333 0.6667 1 1.3333 1.6667 2]
      dObs: [735600 735721 735843 735965 736086 736208 736330]

EqtTre = struct with fields:
    FinObj: 'BinPriceTree'
     PTree: {1x7 cell}
      tObs: [0 0.3333 0.6667 1 1.3333 1.6667 2]
      dObs: [735600 735721 735843 735965 736086 736208 736330]

DbtTree = struct with fields:
    FinObj: 'BinPriceTree'
     PTree: {1x7 cell}
      tObs: [0 0.3333 0.6667 1 1.3333 1.6667 2]
      dObs: [735600 735721 735843 735965 736086 736208 736330]

Создайте структуру терминов процентной ставки RateSpec.

StartDates = 'Jan-1-2014'; 
EndDates = 'Jan-1-2016'; 
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.9512
            Rates: 0.0250
         EndTimes: 2
       StartTimes: 0
         EndDates: 736330
       StartDates: 735600
    ValuationDate: 735600
            Basis: 1
     EndMonthRule: 1

Создайте StockSpec.

AssetPrice = 110; 
Sigma = 0.22; 
Div = 0.02; 
StockSpec = stockspec(Sigma,AssetPrice,'continuous',Div)
StockSpec = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.2200
         AssetPrice: 110
       DividendType: {'continuous'}
    DividendAmounts: 0.0200
    ExDividendDates: []

Создайте дерево EQP для собственного капитала.

NumSteps = 6;
TimeSpec = eqptimespec(StartDates,EndDates,NumSteps);
EQPTree = eqptree(StockSpec,RateSpec,TimeSpec)
EQPTree = struct with fields:
       FinObj: 'BinStockTree'
       Method: 'EQP'
    StockSpec: [1x1 struct]
     TimeSpec: [1x1 struct]
     RateSpec: [1x1 struct]
         tObs: [0 0.3333 0.6667 1 1.3333 1.6667 2]
         dObs: [735600 735721 735843 735965 736086 736208 736330]
        STree: {1x7 cell}
      UpProbs: [0.5000 0.5000 0.5000 0.5000 0.5000 0.5000]

Определите и оцените конвертируемую облигацию с помощью дополнительной DefaultProbability и RecoveryRate аргументы.

Settle = 'Jan-1-2014';
Maturity = 'Jan-1-2016';
CouponRate = 0.03;
CallStrike = 125;
Period = 1;
CallExDates = [datenum('Jan-1-2015') datenum('Jan-1-2016')];
ConvRatio = 1.5;
DefaultProbability = .30;
RecoveryRate = .82;

[Price,PriceTree,EqtTre,DbtTree] = cbondbyeqp(EQPTree,CouponRate,Settle,...
Maturity,ConvRatio,'Period',Period,'CallExDates',...
CallExDates,'CallStrike',CallStrike,'AmericanCall',1,...
'DefaultProbability',DefaultProbability,'RecoveryRate',RecoveryRate)
Price = 165
PriceTree = struct with fields:
    FinObj: 'BinPriceTree'
     PTree: {1x7 cell}
      tObs: [0 0.3333 0.6667 1 1.3333 1.6667 2]
      dObs: [735600 735721 735843 735965 736086 736208 736330]

EqtTre = struct with fields:
    FinObj: 'BinPriceTree'
     PTree: {1x7 cell}
      tObs: [0 0.3333 0.6667 1 1.3333 1.6667 2]
      dObs: [735600 735721 735843 735965 736086 736208 736330]

DbtTree = struct with fields:
    FinObj: 'BinPriceTree'
     PTree: {1x7 cell}
      tObs: [0 0.3333 0.6667 1 1.3333 1.6667 2]
      dObs: [735600 735721 735843 735965 736086 736208 736330]

Входные параметры

свернуть все

Древовидная структура запаса, заданная при помощи eqptree.

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

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

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

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

Примечание

The Settle дата для каждой конвертируемой облигации устанавливается равной ValuationDate дерева запасов EQP. Аргумент в пользу облигации, 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] = cbondbyeqp(EQPT,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 вектор с использованием серийного номера даты или вектора символов даты.

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

Нерегулярная дата последнего купона, заданная как разделенная разделенными запятой парами, состоящая из '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 дерева запасов EQP и одиночных перечисленных 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 strike, где каждая строка является расписанием для одной опции put. Если опция 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 дерева запасов EQP и одиночных перечисленных 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 дерева запасов EQP и одиночных перечисленных ConvDates.

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

Годовая вероятность дефолта, заданная как разделенная разделенными запятой парами, состоящая из '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 массив.

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

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

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

Подробнее о

свернуть все

Вызываемый кабриолет

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

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

Кабриолет 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.

Введенный в R2015a