exponenta event banner

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

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

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

Примечание

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

Неправильная дата последнего купона, указанная как пара, разделенная запятыми, состоящая из '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 дерева запасов EQP и отдельного списка 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 дерева запасов EQP и отдельного списка 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 дерева запасов EQP и отдельного списка ConvDates.

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

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

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