ConvertibleBond

ConvertibleBond инструментальный объект

Описание

Создайте и оцените ConvertibleBond инструментальный объект для одного из большего количества инструментов Конвертируемой облигации с помощью этого рабочего процесса:

  1. Использование fininstrument создать ConvertibleBond инструментальный объект для одного из большего количества инструментов Конвертируемой облигации.

  2. Использование finmodel задавать BlackScholes модель для ConvertibleBond инструментальный объект.

  3. Использование finpricer задавать FiniteDifference метод ценообразования для одного или нескольких ConvertibleBond инструменты.

Для получения дополнительной информации об этом рабочем процессе смотрите Начало работы с Рабочими процессами Используя Основанную на объектах Среду для Оценки Финансовых инструментов.

Для получения дополнительной информации о доступных моделях и методах ценообразования для ConvertibleBond инструмент, смотрите, Выбирают Instruments, Models и Pricers.

Создание

Описание

пример

ConvertibleBondObj = fininstrument(InstrumentType,'CouponRate',couponrate_value,'Maturity',maturity_date,'ConversionRatio',conversion_ratio_value) создает ConvertibleBond объект для одного из большего количества инструментов Конвертируемой облигации путем определения InstrumentType и устанавливает свойства для необходимых аргументов пары "имя-значение" CouponRate, Maturity, и ConversionRatio.

пример

ConvertibleBondObj = fininstrument(___,Name,Value) устанавливает дополнительные аргументы пары "имя-значение" использования свойств в дополнение к обязательным аргументам в предыдущем синтаксисе. Например, ConvertibleBondObj = fininstrument("ConvertibleBond",'CouponRate',CouponRate, 'Maturity',Maturity,'ConversionRatio',ConvRatio,'Period',Period,'Spread',Spread,'CallSchedule',CallSchedule,'CallExerciseStyle',"american") создает ConvertibleBond инструмент с американским осуществлением и расписанием вызова. Можно задать несколько аргументов пары "имя-значение".

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

развернуть все

Инструментальный тип в виде строки со значением "ConvertibleBond", вектор символов со значением 'ConvertibleBond', NINST- 1 массив строк со значениями "ConvertibleBond", или NINST- 1 массив ячеек из символьных векторов со значениями 'ConvertibleBond'.

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

ConvertibleBond Аргументы в виде пар имя-значение

Задайте требуемые и дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: ConvertibleBondObj = fininstrument("ConvertibleBond",'CouponRate',CouponRate, 'Maturity',Maturity,'ConversionRatio',ConvRatio,'Period',Period,'Spread',Spread,'CallSchedule',CallSchedule,'CallExerciseStyle',"american")
Необходимый ConvertibleBond Аргументы в виде пар имя-значение

развернуть все

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

Примечание

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

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

Дата погашения для ConvertibleBond объект в виде разделенной запятой пары, состоящей из 'Maturity' и скалярный datetime, последовательный номер даты, вектор символов даты, строка даты или NINST- 1 вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.

Если вы используете векторы символов даты или строки даты, формат должен быть распознаваемым datetime потому что Maturity свойство хранится как datetime.

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

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

Примечание

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

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

Дополнительный ConvertibleBond Аргументы в виде пар имя-значение

развернуть все

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

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

Вызовите расписание в виде разделенной запятой пары, состоящей из 'CallSchedule' и расписание дат погашения и забастовок.

Если вы используете вектор символов даты или строку даты для дат в этом расписании, формат должен быть распознаваемым datetime потому что CallSchedule свойство хранится как datetime.

Примечание

Для ConvertibleBond инструмент, можно использовать CallSchedule с CallExerciseStyle и PutSchedule с PutExerciseStyle одновременно.

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

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

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

Поместите расписание в виде разделенной запятой пары, состоящей из 'PutSchedule' и расписание дат погашения и забастовок.

Если вы используете вектор символов даты или строку даты для дат в этом расписании, формат должен быть распознаваемым datetime потому что PutSchedule свойство хранится как datetime.

Примечание

Поскольку он ConvertibleBond инструмент, можно использовать CallSchedule с CallExerciseStyle и PutSchedule с PutExerciseStyle одновременно.

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

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

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

Частота платежей в год в виде разделенной запятой пары, состоящей из 'Period' и скалярное целое число или NINST- 1 вектор из целых чисел. Возможные значения для Period 1, 2, 3, 4, 6, и 12.

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

Дневной базис количества в виде разделенной запятой пары, состоящей из 'Basis' и скалярное целое число или NINST- 1 вектор из целых чисел с помощью следующих значений:

  • 0 — фактический/фактический

  • 1 — 30/360 (СИА)

  • 2 — фактический/360

  • 3 — фактический/365

  • 4 — 30/360 (PSA)

  • 5 — 30/360 (ISDA)

  • 6 — 30/360 (европеец)

  • 7 — фактический/365 (японский язык)

  • 8 — фактический/фактический (ICMA)

  • 9 — фактический/360 (ICMA)

  • 10 — фактический/365 (ICMA)

  • 11 — 30/360E (ICMA)

  • 12 — фактический/365 (ISDA)

  • 13 — ШИНА/252

Для получения дополнительной информации смотрите Базис.

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

Отвлеченная основная сумма или основное значение планируют в виде разделенной запятой пары, состоящей из 'Principal' и числовой скаляр или NINST- 1 числовой вектор или расписание.

Principal принимает a timetable, где первый столбец является датами, и второй столбец является связанным отвлеченным основным значением. Дата указывает в последний день, что основное значение допустимо.

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

Отметьте указание, настраивает ли поток наличности для базы ежедневного расчета процентов в виде разделенной запятой пары, состоящей из 'DaycountAdjustedCashFlow' и логический скаляр или NINST- 1 вектор из logicals со значениями true или false.

Типы данных: логический

Соглашения рабочего дня в виде разделенной запятой пары, состоящей из 'BusinessDayConvention' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк. Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Возможные значения:

  • "actual" — Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.

  • "follow" — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.

  • "modifiedfollow" — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.

  • "previous" — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.

  • "modifiedprevious" — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.

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

Праздники, используемые в вычислении рабочих дней в виде разделенной запятой пары, состоящей из 'Holidays' и даты с помощью NINST- 1 вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты. Пример следует.

H = holidays(datetime('today'),datetime(2025,12,15));
ConvertibleBondObj = fininstrument("ConvertibleBond",'CouponRate',0.34,'Maturity',datetime(2025,12,15),...
'ConversionRatio',ConvRatio,'CallSchedule',schedule,'CallExerciseStyle',"american",'Holidays',H)

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

Правило конца месяца отмечает для генерации дат когда Maturity дата конца месяца в течение месяца с 30 или меньшим количеством дней в виде разделенной запятой пары, состоящей из 'EndMonthRule' и скалярное логическое значение или NINST- 1 вектор из логических значений true или false.

  • Если вы устанавливаете EndMonthRule к false, программное обеспечение игнорирует правило, означая, что платежный день всегда является тем же числовым днем месяца.

  • Если вы устанавливаете EndMonthRule к true, программное обеспечение устанавливает правило о, означая, что платежный день всегда является прошлым фактическим днем месяца.

Типы данных: логический

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

Если вы используете векторы символов даты или строки даты, формат должен быть распознаваемым datetime потому что IssueDate свойство хранится как datetime.

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

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

Когда вы задаете оба FirstCouponDate и LastCouponDate, FirstCouponDate более приоритетен в определении структуры купонного платежа. Если вы не задаете FirstCouponDate, платежные дни потока наличности определяются из других входных параметров.

Если вы используете векторы символов даты или строки даты, формат должен быть распознаваемым datetime потому что FirstCouponDate свойство хранится как datetime.

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

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

Если вы задаете LastCouponDate но не FirstCouponDate, LastCouponDate определяет структуру купона связи. Структура купона связи является усеченной в LastCouponDate, независимо от того, где это падает и сопровождается только датой потока наличности зрелости связи. Если вы не задаете LastCouponDate, платежные дни потока наличности определяются из других входных параметров.

Если вы используете векторы символов даты или строки даты, формат должен быть распознаваемым datetime потому что LastCouponDate свойство хранится как datetime.

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

Передайте срок начала работы платежей в виде разделенной запятой пары, состоящей из 'StartDate' и скалярный datetime, последовательный номер даты, вектор символов даты, строка даты или NINST- 1 вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.

Если вы используете векторы символов даты или строки даты, формат должен быть распознаваемым datetime потому что StartDate свойство хранится как datetime.

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

Пользовательское имя для одного из большего количества инструментов в виде разделенной запятой пары, состоящей из 'Name' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.

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

Свойства

развернуть все

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

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

Дата погашения, возвращенная как скалярный datetime или NINST- 1 вектор из datetimes.

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

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

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

Количество пунктов по ссылочному уровню, возвращенному как числовой скаляр или NINST- 1 числовой вектор.

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

Вызовите расписание, возвращенное как расписание.

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

Поместите расписание, возвращенное как расписание.

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

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

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

Дневной базис количества, возвращенный как скалярное целое число или NINST- 1 вектор из целых чисел.

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

Отвлеченная основная сумма или основное расписание значения, возвращенное как числовой скаляр или NINST- 1 числовой вектор или расписание.

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

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

Типы данных: логический

Соглашения рабочего дня, возвращенные как скалярная строка или NINST- 1 массив строк.

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

Праздники используются в вычислении рабочих дней, возвращенных как datetimes или NINST- 1 вектор из datetimes.

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

Правило конца месяца отмечает для генерации дат когда Maturity дата конца месяца в течение месяца с 30 или меньшим количеством дней, возвращенных как логический скаляр или NINST- 1 вектор из logicals.

Типы данных: логический

Дата выпуска облигаций, возвращенная как скалярный datetime или NINST- 1 вектор из datetimes.

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

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

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

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

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

Передайте срок начала работы платежей, возвращенных как скалярный datetime или NINST- 1 вектор из datetimes.

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

Это свойство доступно только для чтения.

Стиль осуществления колл-опциона, возвращенный как скалярная строка или NINST- 1 массив строк со значениями "European", "American", или "Bermuda".

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

Это свойство доступно только для чтения.

Стиль осуществления пут-опциона, возвращенный как скалярная строка или NINST- 1 массив строк со значениями "European", "American", или "Bermuda".

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

Пользовательское имя для инструмента, возвращенного как скалярная строка или NINST- 1 массив строк.

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

Функции объекта

setCallExercisePolicyУстановите политику осуществления вызова для OptionEmbeddedFixedBond, OptionEmbeddedFloatBond, или ConvertibleBond инструмент
setPutExercisePolicyУстановите помещенную политику осуществления для OptionEmbeddedFixedBond, OptionEmbeddedFloatBond, или ConvertibleBond инструмент

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить ConvertibleBond инструмент, когда вы используете BlackScholes модель и FiniteDifference метод ценообразования.

Создайте ConvertibleBond Инструментальный объект

Используйте fininstrument создать ConvertibleBond инструментальный объект.

CouponRate = 0;
Maturity = datetime(2014,10,1);
ConvRatio = 2;
Period = 1;
Spread = 0.05;

CallExDates = datetime(2014,10,1);
CallStrike = 115;
CallSchedule = timetable(CallExDates, CallStrike);

ConvBond = fininstrument("ConvertibleBond",'CouponRate',CouponRate,'Maturity',Maturity,'ConversionRatio',ConvRatio,'Period',Period,'Spread',Spread,'CallSchedule',CallSchedule,'CallExercisestyle',"american",'Name',"Convertible_Bond")
ConvBond = 
  ConvertibleBond with properties:

                  CouponRate: 0
             ConversionRatio: 2
                      Spread: 0.0500
                      Period: 1
                       Basis: 0
                EndMonthRule: 1
                   Principal: 100
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                    Maturity: 01-Oct-2014
                   IssueDate: NaT
             FirstCouponDate: NaT
              LastCouponDate: NaT
                   StartDate: NaT
                CallSchedule: [1x1 timetable]
                 PutSchedule: [0x0 timetable]
           CallExerciseStyle: "american"
            PutExerciseStyle: [0x0 string]
                        Name: "Convertible_Bond"

Создайте BlackScholes Объект модели

Используйте finmodel создать BlackScholes объект модели.

AssetPrice = 50;
Volatility = 0.3;

BSModel = finmodel("BlackScholes",'Volatility',Volatility)
BSModel = 
  BlackScholes with properties:

     Volatility: 0.3000
    Correlation: 1

Создайте ratecurve Объект

Создайте ratecurve объект с помощью ratecurve.

StartDate = datetime(2014,1,1);
EndDate = datetime(2015,1,1);
Rate = 0.1;

ZeroCurve = ratecurve('zero',StartDate,EndDate,Rate,'Compounding',-1,'Basis',1)
ZeroCurve = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 1
                Dates: 01-Jan-2015
                Rates: 0.1000
               Settle: 01-Jan-2014
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создайте FiniteDifference Объект калькулятора цен

Используйте finpricer создать FiniteDifference объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

outPricer = finpricer("FiniteDifference",'Model',BSModel,'SpotPrice',AssetPrice,'DiscountCurve',ZeroCurve)
outPricer = 
  FiniteDifference with properties:

     DiscountCurve: [1x1 ratecurve]
             Model: [1x1 finmodel.BlackScholes]
         SpotPrice: 50
    GridProperties: [1x1 struct]
      DividendType: "continuous"
     DividendValue: 0

Цена ConvertibleBond Инструмент

Используйте price вычислить цену и чувствительность для ConvertibleBond инструмент.

[Price, outPR] = price(outPricer,ConvBond,"all")
Price = 104.3812
outPR = 
  priceresult with properties:

       Results: [1x7 table]
    PricerData: [1x1 struct]

outPR.Results
ans=1×7 table
    Price     Delta      Gamma     Lambda      Theta       Rho       Vega 
    ______    ______    _______    _______    _______    _______    ______

    104.38    1.3012    0.04195    0.62329    0.72984    -21.883    17.947

Этот пример показывает рабочий процесс, чтобы оценить несколько ConvertibleBond инструменты, когда вы используете BlackScholes модель и FiniteDifference метод ценообразования.

Создайте ConvertibleBond Инструментальный объект

Используйте fininstrument создать ConvertibleBond инструментальный объект для трех инструментов Конвертируемой облигации.

ConvRatio = 2;
Period = 1;
Spread = 0.05;

CallExDates = datetime(2014,10,1);
CallStrike = 115;
CallSchedule = timetable(CallExDates, CallStrike);

ConvBond = fininstrument("ConvertibleBond",'CouponRate',[0 ; 0.1 ; 0.2],'Maturity',datetime([2014,10,1 ; 2014,11,1 ; 2014,12,1]),'ConversionRatio',[2 ; 4 ; 6],'Period',Period,'Spread',Spread,'CallSchedule',CallSchedule,'CallExercisestyle',"american",'Name',"Convertible_Bond")
ConvBond=3×1 object
  3x1 ConvertibleBond array with properties:

    CouponRate
    ConversionRatio
    Spread
    Period
    Basis
    EndMonthRule
    Principal
    DaycountAdjustedCashFlow
    BusinessDayConvention
    Holidays
    Maturity
    IssueDate
    FirstCouponDate
    LastCouponDate
    StartDate
    CallSchedule
    PutSchedule
    CallExerciseStyle
    PutExerciseStyle
    Name

Создайте BlackScholes Объект модели

Используйте finmodel создать BlackScholes объект модели.

AssetPrice = 50;
Volatility = 0.3;

BSModel = finmodel("BlackScholes",'Volatility',Volatility)
BSModel = 
  BlackScholes with properties:

     Volatility: 0.3000
    Correlation: 1

Создайте ratecurve Объект

Создайте ratecurve объект с помощью ratecurve.

StartDate = datetime(2014,1,1);
EndDate = datetime(2015,1,1);
Rate = 0.1;

ZeroCurve = ratecurve('zero',StartDate,EndDate,Rate,'Compounding',-1,'Basis',1)
ZeroCurve = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 1
                Dates: 01-Jan-2015
                Rates: 0.1000
               Settle: 01-Jan-2014
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создайте FiniteDifference Объект калькулятора цен

Используйте finpricer создать FiniteDifference объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

outPricer = finpricer("FiniteDifference",'Model',BSModel,'SpotPrice',AssetPrice,'DiscountCurve',ZeroCurve)
outPricer = 
  FiniteDifference with properties:

     DiscountCurve: [1x1 ratecurve]
             Model: [1x1 finmodel.BlackScholes]
         SpotPrice: 50
    GridProperties: [1x1 struct]
      DividendType: "continuous"
     DividendValue: 0

Цена ConvertibleBond Инструменты

Используйте price вычислить цены и чувствительность для ConvertibleBond инструменты.

[Price, outPR] = price(outPricer,ConvBond,"all")
Price = 3×1

  104.3812
  198.3288
  298.3014

outPR=3×1 object
  3x1 priceresult array with properties:

    Results
    PricerData

outPR.Results
ans=1×7 table
    Price     Delta      Gamma     Lambda      Theta       Rho       Vega 
    ______    ______    _______    _______    _______    _______    ______

    104.38    1.3012    0.04195    0.62329    0.72984    -21.883    17.947

ans=1×7 table
    Price     Delta      Gamma       Lambda    Theta        Rho           Vega   
    ______    _____    __________    ______    ______    __________    __________

    198.33      4      1.7053e-13    1.0084    300.82    2.8422e-10    2.8422e-10

ans=1×7 table
    Price    Delta       Gamma       Lambda    Theta         Rho           Vega    
    _____    _____    ___________    ______    ______    ___________    ___________

    298.3      6      -1.7053e-13    1.0057    277.96    -1.7053e-09    -5.6843e-10

Больше о

развернуть все

Советы

После создания ConvertibleBond объект, можно изменить CallSchedule и CallExerciseStyle использование setCallExercisePolicy. Можно изменить PutSchedule и PutExerciseStyle использование значений setPutExercisePolicy.

Введенный в R2021a