OptionEmbeddedFloatBond
инструментальный объект
Создайте и оцените OptionEmbeddedFloatBond
инструментальный объект для одного или нескольких Опция Встроенные инструменты Связи Плавающие с помощью этого рабочего процесса:
Использование fininstrument
создать OptionEmbeddedFloatBond
инструментальный объект для одного или нескольких Опция Встроенные инструменты Связи Плавающие.
Использование finmodel
задавать HullWhite
, BlackKarasinski
, BraceGatarekMusiela
, SABRBraceGatarekMusiela
, или LinearGaussian2F
модель для OptionEmbeddedFloatBond
инструментальный объект.
Выберите метод ценообразования.
При использовании HullWhite
или BlackKarasinski
модель, использовать finpricer
задавать IRTree
метод ценообразования для одного или нескольких OptionEmbeddedFloatBond
инструменты.
При использовании HullWhite
, BraceGatarekMusiela
, SABRBraceGatarekMusiela
, или LinearGaussian2F
модель, использовать finpricer
задавать IRMonteCarlo
метод ценообразования для одного или нескольких OptionEmbeddedFloatBond
инструменты.
Для получения дополнительной информации об этом рабочем процессе смотрите Начало работы с Рабочими процессами Используя Основанную на объектах Среду для Оценки Финансовых инструментов.
Для получения дополнительной информации о доступных моделях и методах ценообразования для OptionEmbeddedFloatBond
инструмент, смотрите, Выбирают Instruments, Models и Pricers.
создает OptionEmbeddedFloatBondObj
= fininstrument(InstrumentType
,'Spread
',spread_value,'Maturity
',maturity_date,'CallSchedule
',call_schedule_value)OptionEmbeddedFloatBond
объект для одного или нескольких Опция Встроенные инструменты Связи Плавающие путем определения InstrumentType
и необходимые аргументы пары "имя-значение" Spread
, Maturity
, и CallSchedule
устанавливает свойства с помощью требуемых аргументов пары "имя-значение".
OptionEmbeddedFloatBond
связи поддержек ванили со встроенными опциями, продвинутые облигации на предъявителя со встроенными опциями и связи амортизации со встроенными опциями.
создает OptionEmbeddedFloatBondObj
= fininstrument(InstrumentType
,'Spread
',spread_value,'Maturity
',maturity_date,'PutSchedule
',put_schedule_value)OptionEmbeddedFloatBond
объект для одного или нескольких Опция Встроенные инструменты Связи Плавающие путем определения InstrumentType
и необходимые аргументы пары "имя-значение" Spread
, Maturity
, и PutSchedule
устанавливает свойства с помощью требуемых аргументов пары "имя-значение".
устанавливает дополнительные свойства с помощью дополнительных пар "имя-значение" в дополнение к обязательным аргументам в предыдущем синтаксисе. Например, OptionEmbeddedFloatBondObj
= fininstrument(___,Name,Value
)OptionEmbeddedFloatBondObj = fininstrument("OptionEmbeddedFloatBond",'Spread',0.01,'Maturity',datetime(2019,1,30),'Period',4,'Basis',5,'Principal',1000,'FirstCouponDate',datetime(2016,1,30),'EndMonthRule',1,'CallSchedule',schedule,'CallExerciseStyle',"american",'ProjectionCurve',ratecurve_obj,'Name',"optionembeddedfloatbond")
. Можно задать несколько пар "имя-значение".
InstrumentType
— Инструментальный тип"OptionEmbeddedFloatBond"
| массив строк со значениями "OptionEmbeddedFloatBond"
| вектор символов со значением 'OptionEmbeddedFloatBond'
| массив ячеек из символьных векторов со значениями 'OptionEmbeddedFloatBond'
Инструментальный тип в виде строки со значением "OptionEmbeddedFloatBond"
, вектор символов со значением 'OptionEmbeddedFloatBond'
, NINST
- 1
массив строк со значениями "OptionEmbeddedFloatBond"
, или NINST
- 1
массив ячеек из символьных векторов со значениями 'OptionEmbeddedFloatBond'
.
Типы данных: char |
cell
| string
OptionEmbeddedFloatBond
Аргументы в виде пар имя-значениеЗадайте требуемые и дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
OptionEmbeddedFloatBondObj = fininstrument("OptionEmbeddedFloatBond",'Spread',0.01,'Maturity',datetime(2019,1,30),'Period',4,'Basis',5,'Principal',1000,'FirstCouponDate',datetime(2016,1,30),'EndMonthRule',1,'CallSchedule',schedule,'CallExerciseStyle',"american",'ProjectionCurve',ratecurve_obj,'Name',"optionembeddedfloatbond")
OptionEmbeddedFloatBond
Аргументы в виде пар имя-значениеSpread
— Количество пунктов по ссылочному уровнюКоличество пунктов по ссылочному уровню в виде разделенной запятой пары, состоящей из 'Spread'
и скаляр, неотрицательный числовой или NINST
- 1
вектор из числовых неотрицательных.
Типы данных: double
Maturity
— Дата погашенияДата погашения в виде разделенной запятой пары, состоящей из 'Maturity'
и последовательный номер даты, вектор символов даты, строка даты, datetime или NINST
- 1
вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.
Типы данных: char |
cell
| double
| string
| datetime
CallSchedule
— Вызовите расписание Вызовите расписание в виде разделенной запятой пары, состоящей из 'CallSchedule'
и расписание дат погашения и забастовок.
Если вы используете вектор символов даты или строку даты для дат в этом расписании, формат должен быть распознаваемым datetime
потому что CallSchedule
свойство хранится как datetime.
Примечание
OptionEmbeddedFloatBond
инструмент поддерживает любой CallSchedule
и CallExerciseStyle
или PutSchedule
и PutExerciseStyle
, но не то и другое одновременно.
Если вы создаете один или несколько OptionEmbeddedFloatBond
инструменты и использование расписание, спецификация расписания применяется ко всему OptionEmbeddedFloatBond
инструменты. CallSchedule
не принимает NINST
- 1
массив ячеек расписаний, как введено.
Типы данных: timetable
PutSchedule
— Вызовите расписание Поместите расписание в виде разделенной запятой пары, состоящей из 'PutSchedule'
и расписание дат погашения и забастовок.
Если вы используете вектор символов даты или строку даты для дат в этом расписании, формат должен быть распознаваемым datetime
потому что PutSchedule
свойство хранится как datetime.
Примечание
OptionEmbeddedFloatBond
инструмент поддерживает любой CallSchedule
и CallExerciseStyle
или PutSchedule
и PutExerciseStyle
, но не то и другое одновременно.
Если вы создаете один или несколько OptionEmbeddedFloatBond
инструменты и использование расписание, спецификация расписания применяется ко всему OptionEmbeddedFloatBond
инструменты. PutSchedule
не принимает NINST
- 1
массив ячеек расписаний, как введено.
Типы данных: timetable
OptionEmbeddedFloatBond
Аргументы в виде пар имя-значениеReset
— Частота платежей в год
(значение по умолчанию) | скалярное целое число | вектор из целых чиселЧастота платежей в год в виде разделенной запятой пары, состоящей из 'Reset'
и скалярное целое число или NINST
- 1
вектор из целых чисел. Значения для Reset
: 1
, 2, 3
, 4
, 6
, и
12
.
Типы данных: double
CallExerciseStyle
— Стиль осуществления колл-опциона"European"
(значение по умолчанию) | представляет в виде строки со значением "European"
, "American"
, или "Bermudan"
| массив строк со значениями "European"
, "American"
, или "Bermudan"
| вектор символов со значением 'European'
, 'American'
, или 'Bermudan'
| массив ячеек из символьных векторов со значениями 'European'
, 'American'
, или 'Bermudan'
Осуществление колл-опциона разрабатывает в виде разделенной запятой пары, состоящей из 'CallExerciseStyle'
и скалярная строка или вектор символов или NINST
- 1
массив ячеек из символьных векторов или массив строк.
Примечание
CallSchedule
расписание дат погашения и забастовок. Если вы не задаете CallExerciseStyle
, затем на основе CallSchedule
спецификация, значение по умолчанию CallExerciseStyle
присвоен можно следующим образом:
Если существует одна дата осуществления в CallSchedule
, затем CallExerciseStyle
"European"
.
Если существует две даты осуществления в CallSchedule
, затем CallExerciseStyle
"American"
с датой начала и зрелостью.
Если существует больше чем две даты осуществления в CallSchedule
, затем CallExerciseStyle
"Bermudan"
.
Если вы задают CallExerciseStyle
и это не сопоставимо с тем, что вы задали в CallSchedule
, вы получаете сообщение об ошибке.
Типы данных: string
| cell
| char
PutExerciseStyle
— Стиль осуществления пут-опциона"European"
(значение по умолчанию) | представляет в виде строки со значением "European"
, "American"
, или "Bermudan"
| массив строк со значениями "European"
, "American"
, или "Bermudan"
| вектор символов со значением 'European'
, 'American'
, или 'Bermudan'
| массив ячеек из символьных векторов со значениями 'European'
, 'American'
, или 'Bermudan'
Осуществление пут-опциона разрабатывает в виде разделенной запятой пары, состоящей из 'PutExerciseStyle'
и скалярная строка или вектор символов или NINST
- 1
массив ячеек из символьных векторов или массив строк.
Примечание
PutSchedule
расписание дат погашения и забастовок. Если вы не задаете PutExerciseStyle
, затем на основе PutSchedule
спецификация, значение по умолчанию PutExerciseStyle
присвоен можно следующим образом:
Если существует одна дата осуществления в PutSchedule
, затем PutExerciseStyle
"European"
.
Если существует две даты осуществления в PutSchedule
, затем PutExerciseStyle
"American"
с датой начала и зрелостью.
Если существует больше чем две даты осуществления в PutSchedule
, затем PutExerciseStyle
"Bermudan"
.
Если вы задают PutExerciseStyle
и это не сопоставимо с тем, что вы задали в PutSchedule
, вы получаете сообщение об ошибке.
Типы данных: string
| cell
| char
Basis
— Дневной базис количества
(фактическое/фактическое) (значение по умолчанию) | скалярное целое число от 0
к 13
| вектор из целых чисел от 0
к 13
Дневной базис количества в виде разделенной запятой пары, состоящей из '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
— Отвлеченная основная сумма или основное расписание значения
(значение по умолчанию) | скаляр, числовой | числовой вектор | расписаниеОтвлеченная основная сумма или основное значение планируют в виде разделенной запятой пары, состоящей из 'Principal'
и числовой скаляр или NINST
- 1
числовой вектор или расписание.
Principal
принимает a timetable
, где первый столбец является датами, и второй столбец является связанным отвлеченным основным значением. Дата указывает в последний день, что основное значение допустимо.
Примечание
Если вы создаете один или несколько OptionEmbeddedFloatBond
инструменты и использование расписание, спецификация расписания применяется ко всему OptionEmbeddedFloatBond
инструменты. Principal
не принимает NINST
- 1
массив ячеек расписаний, как введено.
Типы данных: double |
timetable
DaycountAdjustedCashFlow
— Отметьте указание, настраивает ли поток наличности для базы ежедневного расчета процентовfalse
(значение по умолчанию) | скалярное логическое значение true
или false
| вектор из logicals со значениями true
или false
Отметьте указание, настраивает ли поток наличности для базы ежедневного расчета процентов в виде разделенной запятой пары, состоящей из 'DaycountAdjustedCashFlow'
и логический скаляр или NINST
- 1
вектор из logicals со значениями true
или false
.
Типы данных: логический
BusinessDayConvention
— Соглашения рабочего дня"actual"
(значение по умолчанию) | представляет в виде строки | массив строк | вектор символов | массив ячеек из символьных векторовСоглашения рабочего дня в виде разделенной запятой пары, состоящей из 'BusinessDayConvention'
и скалярная строка или вектор символов или NINST
- 1
массив ячеек из символьных векторов или массив строк. Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:
"actual"
— Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.
"follow"
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.
"modifiedfollow"
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.
"previous"
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.
"modifiedprevious"
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.
Типы данных: char |
cell
| string
Holidays
— Праздники используются в вычислении рабочих днейNaT
(значение по умолчанию) | datetime | массив ячеек векторов символов даты | массив строки даты | последовательные числа датыПраздники, используемые в вычислении рабочих дней в виде разделенной запятой пары, состоящей из 'Holidays'
и даты с помощью NINST
- 1
вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты. Например:
H = holidays(datetime('today'),datetime(2025,12,15)); OptionEmbeddedFixedBondObj = fininstrument("OptionEmbeddedFixedBond",'CouponRate',0.34,'Maturity',datetime(2025,12,15),... 'CallSchedule',schedule,'CallExerciseStyle',"american",'Holidays',H)
Типы данных: double |
cell
| datetime
| string
EndMonthRule
— Правило конца месяца отмечает для генерации дат когда Maturity
дата конца месяца в течение месяца с 30 или меньшим количеством днейtrue
(в действительности) (значение по умолчанию) | скалярное логическое значение true
или false
| вектор из logicals со значениями true
или false
Правило конца месяца отмечает для генерации дат когда Maturity
дата конца месяца в течение месяца с 30 или меньшим количеством дней в виде разделенной запятой пары, состоящей из 'EndMonthRule'
и логический скаляр или NINST
- 1
вектор из logicals значений true
или false
.
Если вы устанавливаете EndMonthRule
к false
, программное обеспечение игнорирует правило, означая, что платежный день всегда является тем же числовым днем месяца.
Если вы устанавливаете EndMonthRule
к true
, программное обеспечение устанавливает правило о, означая, что платежный день всегда является прошлым фактическим днем месяца.
Типы данных: логический
IssueDate
— Дата выпуска облигацийNaT
(значение по умолчанию) | datetime | последовательный номер даты | вектор символов даты | строка даты | вектор из datetimes | вектор из последовательных чисел даты | массив ячеек векторов символов даты | массив строки датыДата выпуска облигаций в виде разделенной запятой пары, состоящей из 'IssueDate'
и скалярный datetime, последовательный номер даты, вектор символов даты, строка даты или NINST
- 1
вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.
Если вы используете векторы символов даты или строки даты, формат должен быть распознаваемым datetime
потому что IssueDate
свойство хранится как datetime.
Типы данных: double |
char
| cell
| string
| datetime
FirstCouponDate
— Неправильная первая дата купонаNaT
(значение по умолчанию) | datetime | последовательный номер даты | вектор символов даты | строка даты | вектор из datetimes | вектор из последовательных чисел даты | массив ячеек векторов символов даты | массив строки датыНеправильная первая дата купона в виде разделенной запятой пары, состоящей из 'FirstCouponDate'
и скалярный datetime, последовательный номер даты, вектор символов даты, строка даты или NINST
- 1
вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.
Когда FirstCouponDate
и LastCouponDate
оба заданы, FirstCouponDate
более приоритетен в определении структуры купонного платежа. Если вы не задаете FirstCouponDate
, платежные дни потока наличности определяются из других входных параметров.
Если вы используете векторы символов даты или строки даты, формат должен быть распознаваемым datetime
потому что FirstCouponDate
свойство хранится как datetime.
Типы данных: double |
char
| cell
| string
| datetime
LastCouponDate
— Неправильная последняя дата купонаNaT
(значение по умолчанию) | datetime | последовательный номер даты | вектор символов даты | строка даты | вектор из datetimes | вектор из последовательных чисел даты | массив ячеек векторов символов даты | массив строки датыНеправильная последняя дата купона в виде разделенной запятой пары, состоящей из 'LastCouponDate'
и скалярный datetime, последовательный номер даты, вектор символов даты, строка даты или NINST
- 1
вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.
Если вы задаете LastCouponDate
но не FirstCouponDate
, LastCouponDate
определяет структуру купона связи. Структура купона связи является усеченной в LastCouponDate
, независимо от того, где это падает и сопровождается только датой потока наличности зрелости связи. Если вы не задаете LastCouponDate
, платежные дни потока наличности определяются из других входных параметров.
Если вы используете векторы символов даты или строки даты, формат должен быть распознаваемым datetime
потому что LastCouponDate
свойство хранится как datetime.
Типы данных: double |
char
| cell
| string
| datetime
StartDate
— Передайте срок начала работы платежейNaT
(значение по умолчанию) | datetime | последовательный номер даты | вектор символов даты | строка даты | вектор из datetimes | вектор из последовательных чисел даты | массив ячеек векторов символов даты | массив строки датыПередайте срок начала работы платежей в виде разделенной запятой пары, состоящей из 'StartDate'
и скалярный datetime, последовательный номер даты, вектор символов даты, строка даты или NINST
- 1
вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.
Если вы используете векторы символов даты или строки даты, формат должен быть распознаваемым datetime
потому что StartDate
свойство хранится как datetime.
Типы данных: char |
cell
| double
| string
| datetime
Name
— Пользовательское имя для инструмента" "
(значение по умолчанию) | представляет в виде строки | массив строк | вектор символов | массив ячеек из символьных векторовПользовательское имя для инструмента в виде разделенной запятой пары, состоящей из 'Name'
и скалярная строка или вектор символов или NINST
- 1
массив ячеек из символьных векторов или массив строк.
Типы данных: char |
cell
| string
Spread
— Количество пунктов по ссылочному уровнюКоличество пунктов по ссылочному уровню, возвращенному как скаляр, неотрицательный числовой или NINST
- 1
вектор из неотрицательных числовых значений.
Типы данных: double
Maturity
— Дата погашенияДата погашения, возвращенная как скалярный datetime или NINST
- 1
вектор из datetimes.
Типы данных: datetime
CallSchedule
— Вызовите расписание Вызовите расписание, возвращенное как расписание.
Типы данных: cell
| datetime
PutSchedule
— Вызовите расписание Поместите расписание, возвращенное как расписание.
Типы данных: cell
| datetime
Reset
— Частота платежей в год
(значение по умолчанию) | скалярное целое число | вектор из целых чиселЧастота платежей в год, возвращенный как скалярное целое число или NINST
- 1
вектор из целых чисел.
Типы данных: double
Basis
— Дневной базис количества
(фактическое/фактическое) (значение по умолчанию) | скалярное целое число от 0
к 13
| вектор из целых чисел от 0
к 13
Дневной базис количества, возвращенный как скалярное целое число или NINST
- 1
вектор из целых чисел.
Типы данных: double
Principal
— Отвлеченная основная сумма или основное расписание значения
(значение по умолчанию) | скаляр, числовой | числовой вектор | расписаниеОтвлеченная основная сумма или основное расписание значения, возвращенное как числовой скаляр или NINST
- 1
числовой вектор или расписание.
Типы данных: timetable
| double
DaycountAdjustedCashFlow
— Отметьте указание, настраивает ли поток наличности для базы ежедневного расчета процентовfalse
(значение по умолчанию) | скалярное логическое значение true
или false
| вектор из logicals со значениями true
или false
Отметьте указание, возвратился ли поток наличности, настроенный для базы ежедневного расчета процентов, как логический скаляр или NINST
- 1
вектор из logicals со значениями true
или false
.
Типы данных: логический
BusinessDayConvention
— Соглашения рабочего дня"actual"
(значение по умолчанию) | представляет в виде строки | массив строкСоглашения рабочего дня, возвращенные как строка или NINST
- 1
массив строк.
Типы данных: string
Holidays
— Праздники используются в вычислении рабочих днейNaT
(значение по умолчанию) | datetimesПраздники используются в вычислении рабочих дней, возвращенных как NINST
- 1
вектор из datetimes.
Типы данных: datetime
EndMonthRule
— Правило конца месяца отмечает для генерации дат когда Maturity
дата конца месяца в течение месяца с 30 или меньшим количеством днейtrue
(в действительности) (значение по умолчанию) | скалярное логическое значение true
или false
| вектор из logicals со значениями true
или false
Правило конца месяца отмечает для генерации дат когда Maturity
дата конца месяца в течение месяца с 30 или меньшим количеством дней, возвращенных как логический скаляр или NINST
- 1
вектор из logicals.
Типы данных: логический
IssueDate
— Дата выпуска облигацийNaT
(значение по умолчанию) | скалярный datetime | вектор из datetimesДата выпуска облигаций, возвращенная как скалярный datetime или NINST
- 1
вектор из datetimes.
Типы данных: datetime
FirstCouponDate
— Неправильная первая дата купонаNaT
(значение по умолчанию) | скалярный datetime | вектор из datetimesНеправильная первая дата купона, возвращенная как скалярный datetime или NINST
- 1
вектор из datetimes.
Типы данных: datetime
LastCouponDate
— Неправильная последняя дата купонаNaT
(значение по умолчанию) | скалярный datetime | вектор из datetimesНеправильная последняя дата купона, возвращенная как скалярный datetime или NINST
- 1
вектор из datetimes.
Типы данных: datetime
StartDate
— Передайте срок начала работы платежейNaT
(значение по умолчанию) | скалярный datetimeПередайте срок начала работы платежей, возвращенных как скалярный datetime или NINST
- 1
вектор из datetimes.
Типы данных: datetime
CallExerciseStyle
— Стиль осуществления колл-опциона"European"
(значение по умолчанию) | представляет в виде строки со значением "European"
, "American"
, или "Bermudan"
| массив строк со значениями "European"
, "American"
, или "Bermudan"
Это свойство доступно только для чтения.
Стиль осуществления колл-опциона, возвращенный как строка или NINST
- 1
массив строк со значениями "European"
, "American"
, или "Bermudan"
.
Типы данных: string
PutExerciseStyle
— Стиль осуществления пут-опциона"European"
(значение по умолчанию) | представляет в виде строки со значением "European"
, "American"
, или "Bermudan"
| массив строк со значениями "European"
, "American"
, или "Bermudan"
Это свойство доступно только для чтения.
Стиль осуществления пут-опциона, возвращенный как строка или NINST
- 1
массив строк со значениями "European"
, "American"
, или "Bermudan"
.
Типы данных: string
Name
— Пользовательское имя для инструмента" "
(значение по умолчанию) | представляет в виде строки | массив строкПользовательское имя для инструмента, возвращенного как строка или NINST
- 1
массив строк.
Типы данных: string
setCallExercisePolicy | Установите политику осуществления вызова для OptionEmbeddedFixedBond , OptionEmbeddedFloatBond , или ConvertibleBond инструмент |
setPutExercisePolicy | Установите помещенную политику осуществления для OptionEmbeddedFixedBond , OptionEmbeddedFloatBond , или ConvertibleBond инструмент |
Этот пример показывает рабочий процесс, чтобы оценить американца, европейца и бермудские стили осуществления для трех вызываемых OptionEmbeddedFloatBond
инструменты, когда вы используете HullWhite
модель и IRTree
метод ценообразования.
Создайте ratecurve
Объект
Создайте ratecurve
объект с помощью ratecurve
.
Settle = datetime(2018,1,1); ZeroTimes = calyears(1:10)'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; Compounding = 1; ZeroCurve = ratecurve("zero",Settle,ZeroDates,ZeroRates, "Compounding",Compounding);
Создайте OptionEmbeddedFloatBond
Инструментальные объекты
Используйте fininstrument
создать три OptionEmbeddedFloatBond
инструмент возражает с различными стилями осуществления.
Maturity = datetime(2024,1,1); % Option embedded float bond (Bermudan callable bond) Strike = [100; 100]; ExerciseDates = [datetime(2020,1,1); datetime(2024,1,1)]; Reset = 1; CallSchedule = timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); CallableBondBermudan = fininstrument("OptionEmbeddedFloatBond",'Maturity',Maturity,... 'Spread',0.025,'Reset',Reset, ... 'CallSchedule',CallSchedule,'CallExerciseStyle', "bermudan")
CallableBondBermudan = OptionEmbeddedFloatBond with properties: Spread: 0.0250 ProjectionCurve: [0x0 ratecurve] ResetOffset: 0 Reset: 1 Basis: 0 EndMonthRule: 1 Principal: 100 DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT IssueDate: NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT Maturity: 01-Jan-2024 CallDates: [2x1 datetime] PutDates: [0x1 datetime] CallSchedule: [2x1 timetable] PutSchedule: [0x0 timetable] CallExerciseStyle: "bermudan" PutExerciseStyle: [0x0 string] Name: ""
% Option embedded float bond (American callable bond) Strike = 100; ExerciseDates = datetime(2024,1,1); CallSchedule = timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); Reset = 1; CallableBondAmerican = fininstrument("OptionEmbeddedFloatBond",'Maturity',Maturity,... 'Spread',0.025,'Reset', Reset, ... 'CallSchedule',CallSchedule,'CallExerciseStyle',"american")
CallableBondAmerican = OptionEmbeddedFloatBond with properties: Spread: 0.0250 ProjectionCurve: [0x0 ratecurve] ResetOffset: 0 Reset: 1 Basis: 0 EndMonthRule: 1 Principal: 100 DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT IssueDate: NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT Maturity: 01-Jan-2024 CallDates: 01-Jan-2024 PutDates: [0x1 datetime] CallSchedule: [1x1 timetable] PutSchedule: [0x0 timetable] CallExerciseStyle: "american" PutExerciseStyle: [0x0 string] Name: ""
% Option embedded float bond (European callable bond) Strike = 100; ExerciseDates = datetime(2024,1,1); CallSchedule = timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); Reset = 1; CallableBondEuropean = fininstrument("OptionEmbeddedFloatBond",'Maturity',Maturity,... 'Spread',0.025,'Reset',Reset, ... 'CallSchedule',CallSchedule)
CallableBondEuropean = OptionEmbeddedFloatBond with properties: Spread: 0.0250 ProjectionCurve: [0x0 ratecurve] ResetOffset: 0 Reset: 1 Basis: 0 EndMonthRule: 1 Principal: 100 DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT IssueDate: NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT Maturity: 01-Jan-2024 CallDates: 01-Jan-2024 PutDates: [0x1 datetime] CallSchedule: [1x1 timetable] PutSchedule: [0x0 timetable] CallExerciseStyle: "european" PutExerciseStyle: [0x0 string] Name: ""
Создайте HullWhite
Объект модели
Используйте finmodel
создать HullWhite
объект модели.
VolCurve = 0.01; AlphaCurve = 0.1; HWModel = finmodel("HullWhite",'alpha',AlphaCurve,'sigma',VolCurve);
Создайте IRTree
Объект калькулятора цен
Используйте finpricer
создать IRTree
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
HWTreePricer = finpricer("IRTree",'Model',HWModel,'DiscountCurve',ZeroCurve,'TreeDates',ZeroDates)
HWTreePricer = HWBKTree with properties: Tree: [1x1 struct] TreeDates: [10x1 datetime] Model: [1x1 finmodel.HullWhite] DiscountCurve: [1x1 ratecurve]
Цена OptionEmbeddedFixedBond
Инструменты
Используйте price
вычислить цену и чувствительность для трех OptionEmbeddedFixedBond
инструменты.
[Price, outPR] = price(HWTreePricer,CallableBondBermudan,["all"])
Price = 104.9598
outPR = priceresult with properties: Results: [1x4 table] PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
______ ____ ______ _______
104.96 0 19.597 -7.3926
[Price, outPR] = price(HWTreePricer,CallableBondAmerican,["all"])
Price = 100
outPR = priceresult with properties: Results: [1x4 table] PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
_____ ____ _____ _____
100 0 0 0
[Price, outPR] = price(HWTreePricer,CallableBondEuropean,["all"])
Price = 114.5571
outPR = priceresult with properties: Results: [1x4 table] PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
______ ___________ ______ _______
114.56 -2.8422e-10 262.58 -50.006
Этот пример показывает рабочий процесс, чтобы оценить OptionEmbeddedFloatBondOption
инструмент при использовании HullWhite
модель и IRMonteCarlo
метод ценообразования.
Создайте ratecurve
Объект
Создайте ratecurve
объект с помощью ratecurve
.
Settle = datetime(2019,1,1); Type = 'zero'; ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC = ratecurve with properties: Type: "zero" Compounding: -1 Basis: 0 Dates: [10x1 datetime] Rates: [10x1 double] Settle: 01-Jan-2019 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создайте OptionEmbeddedFloatBondOption
Инструментальный объект
Используйте fininstrument
создать OptionEmbeddedFloatBondOption
инструментальный объект.
% Option embedded float bond (European callable bond) Maturity = datetime(2022,9,15); Strike = 100; ExerciseDates = datetime(2024,1,1); CallSchedule = timetable(datetime(2020,3,15), 50); Reset = 1; CallableBondEuropean = fininstrument("OptionEmbeddedFloatBond",'Maturity',Maturity,... 'Spread',0.025,'Reset',Reset, ... 'CallSchedule',CallSchedule)
CallableBondEuropean = OptionEmbeddedFloatBond with properties: Spread: 0.0250 ProjectionCurve: [0x0 ratecurve] ResetOffset: 0 Reset: 1 Basis: 0 EndMonthRule: 1 Principal: 100 DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT IssueDate: NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT Maturity: 15-Sep-2022 CallDates: 15-Mar-2020 PutDates: [0x1 datetime] CallSchedule: [1x1 timetable] PutSchedule: [0x0 timetable] CallExerciseStyle: "european" PutExerciseStyle: [0x0 string] Name: ""
Создайте HullWhite
Объект модели
Используйте finmodel
создать HullWhite
объект модели.
HullWhiteModel = finmodel("HullWhite",'Alpha',0.32,'Sigma',0.49)
HullWhiteModel = HullWhite with properties: Alpha: 0.3200 Sigma: 0.4900
Создайте IRMonteCarlo
Объект калькулятора цен
Используйте finpricer
создать IRMonteCarlo
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
outPricer = finpricer("IRMonteCarlo",'Model',HullWhiteModel,'DiscountCurve',myRC,'SimulationDates',datetime(2019,3,15)+calmonths(0:6:48)')
outPricer = HWMonteCarlo with properties: NumTrials: 1000 RandomNumbers: [] DiscountCurve: [1x1 ratecurve] SimulationDates: [15-Mar-2019 15-Sep-2019 15-Mar-2020 ... ] Model: [1x1 finmodel.HullWhite]
Цена OptionEmbeddedFloatBondOption
Инструмент
Используйте price
вычислить цену и чувствительность для OptionEmbeddedFloatBondOption
инструмент.
[Price,outPR] = price(outPricer,CallableBondEuropean,["all"])
Price = 51.3788
outPR = priceresult with properties: Results: [1x4 table] PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Delta Gamma Vega
______ ______ _______ _______
51.379 61.634 -81.051 -7.0508
Этот пример показывает рабочий процесс, чтобы оценить несколько OptionEmbeddedFloatBond
инструменты с бермудским осуществлением разрабатывают, когда вы используете HullWhite
модель и IRTree
метод ценообразования.
Создайте ratecurve
Объект
Создайте ratecurve
объект с помощью ratecurve
.
Settle = datetime(2018,1,1); ZeroTimes = calyears(1:10)'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; Compounding = 1; ZeroCurve = ratecurve("zero",Settle,ZeroDates,ZeroRates, "Compounding",Compounding);
Создайте OptionEmbeddedFloatBond
Инструментальные объекты
Используйте fininstrument
создать OptionEmbeddedFloatBond
инструментальный объект для трех Опций Встроенные инструменты Связи Плавающие с Bermudan
осуществите стиль.
Maturity = datetime([2025,1,1 ; 2026,1,1 ; 2027,1,1]); % Option embedded float bond (Bermudan callable bond) Strike = [101 ; 102 ; 103]; ExerciseDates = datetime([2022,1,1 ; 2023,1,1 ; 2024,1,1]); CallSchedule = timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); Reset = 1; CallableBondBermudan = fininstrument("OptionEmbeddedFloatBond",'Maturity',Maturity,... 'Spread',[0.001; 0.0015; 0.002],'Reset', Reset, ... 'CallSchedule',CallSchedule,'CallExerciseStyle',"bermudan")
CallableBondBermudan=3×1 object
3x1 OptionEmbeddedFloatBond array with properties:
Spread
ProjectionCurve
ResetOffset
Reset
Basis
EndMonthRule
Principal
DaycountAdjustedCashFlow
BusinessDayConvention
Holidays
IssueDate
FirstCouponDate
LastCouponDate
StartDate
Maturity
CallDates
PutDates
CallSchedule
PutSchedule
CallExerciseStyle
PutExerciseStyle
Name
Когда вы создаете несколько OptionEmbeddedFloatBond
инструменты и использование расписание для CallSchedule
, спецификация расписания применяется ко всему OptionEmbeddedFloatBond
инструменты. CallSchedule
входной параметр не принимает NINST
- 1
массив ячеек расписаний, как введено.
Создайте HullWhite
Объект модели
Используйте finmodel
создать HullWhite
объект модели.
VolCurve = 0.01; AlphaCurve = 0.1; HWModel = finmodel("HullWhite",'alpha',AlphaCurve,'sigma',VolCurve);
Создайте IRTree
Объект калькулятора цен
Используйте finpricer
создать IRTree
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
HWTreePricer = finpricer("IRTree",'Model',HWModel,'DiscountCurve',ZeroCurve,'TreeDates',ZeroDates)
HWTreePricer = HWBKTree with properties: Tree: [1x1 struct] TreeDates: [10x1 datetime] Model: [1x1 finmodel.HullWhite] DiscountCurve: [1x1 ratecurve]
Цена OptionEmbeddedFixedBond
Инструменты
Используйте price
вычислить цены и чувствительность для трех OptionEmbeddedFixedBond
инструменты.
[Price, outPR] = price(HWTreePricer,CallableBondBermudan,"all")
Price = 3×1
100.6713
101.1327
101.6643
outPR=3×1 object
3x1 priceresult array with properties:
Results
PricerData
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
______ ___________ _____ _______
100.67 -4.2633e-10 15.33 -2.6133
ans=1×4 table
Price Vega Gamma Delta
______ ___________ ______ _______
101.13 -5.6843e-10 31.676 -4.9053
ans=1×4 table
Price Vega Gamma Delta
______ _________ ______ _______
101.66 -0.066246 55.171 -7.8748
floating-rate note with an embedded option позволяет долговым обязательствам с плавающей ставкой иметь ранние функции освобождения.
Долговое обязательство с плавающей ставкой со встроенной опцией дает инвесторам или выпускающим опцию, чтобы ликвидировать выдающийся принципал до зрелости. Встроенный колл-опцион дает право ликвидировать примечание до даты погашения (вызываемый плавающий предмет), и встроенный пут-опцион дает право продать примечание назад по определенной цене (плавающий предмет с правом досрочного погашения).
Для получения дополнительной информации смотрите Долговое обязательство с плавающей ставкой со Встроенными Опциями.
После создания OptionEmbeddedFixedBond
объект, можно изменить CallSchedule
и CallExerciseStyle
использование setCallExercisePolicy
. Или, можно изменить PutSchedule
и PutExerciseStyle
использование значений setPutExercisePolicy
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.