OptionEmbeddedFixedBond
объект прибора
Создайте и оцените OptionEmbeddedFixedBond
объект инструмента, использующий этот рабочий процесс:
Использовать fininstrument
для создания OptionEmbeddedFixedBond
объект прибора.
использовать finmodel
для задания HullWhite
или BlackKarasinski
модель для OptionEmbeddedFixedBond
прибора.
Использовать finpricer
для задания IRTree
метод ценообразования для OptionEmbeddedFixedBond
прибора.
Дополнительные сведения об этом рабочем процессе см. в разделе Запуске с рабочими процессами с использованием объектной среды для ценообразования финансовых инструментов.
Для получения дополнительной информации о доступных моделях и методах ценообразования для OptionEmbeddedFixedBond
инструмент, см. «Выбор инструментов», «Модели» и «Цены».
создает OptionEmbeddedFixedBondObj
= fininstrument(InstrumentType
,'CouponRate
',couponrate_value,'Maturity
',maturity_date,'CallSchedule
',call_schedule_value)OptionEmbeddedFixedBond
объект путем определения InstrumentType
и устанавливает свойства для необходимых аргументов пары "имя-значение" CouponRate
, Maturity
, и CallSchedule
.
The OptionEmbeddedFixedBond
инструмент поддерживает ванильную связь со встроенной опцией, ступенчатую купонную связь со встроенной опцией и амортизационную связь со встроенной опцией. Дополнительные сведения см. в разделе Дополнительные сведения.
создает OptionEmbeddedFixedBondObj
= fininstrument(InstrumentType
,'CouponRate
',couponrate_value,'Maturity
',maturity_date,'PutSchedule
',put_schedule_value)OptionEmbeddedFixedBond
объект путем определения InstrumentType
и устанавливает свойства для необходимых аргументов пары "имя-значение" CouponRate
, Maturity
, и PutSchedule
.
устанавливает необязательные свойства с помощью дополнительных пар "имя-значение" в дополнение к необходимым аргументам в предыдущем синтаксисе. Для примера, OptionEmbeddedFixedBondObj
= fininstrument(___,Name,Value
)OptionEmbeddedFixedBondObj = fininstrument("OptionEmbeddedFixedBond",'CouponRate',0.034,'Maturity',datetime(2019,1,30),'Period',2,'Basis',1,'Principal',100,'CallSchedule',schedule,'CallExerciseStyle',"American",'Name',"optionembeddedfixedbond_instrument")
создает OptionEmbeddedFixedBond
инструмент с американским упражнением и расписанием вызовов. Можно задать несколько аргументы пары "имя-значение".
InstrumentType
- Тип КИПиА"OptionEmbeddedFixedBond"
| вектор символов с 'OptionEmbeddedFixedBond'
значений
Тип инструмента, заданный как строка со значением "OptionEmbeddedFixedBond"
или вектор символов со значением 'OptionEmbeddedFixedBond'
.
Типы данных: char
| string
OptionEmbeddedFixedBond
Аргументы в виде пар имя-значениеУкажите требуемые и необязательные разделенные запятой пары Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
OptionEmbeddedFixedBondObj = fininstrument("OptionEmbeddedFixedBond",'CouponRate',0.034,'Maturity',datetime(2019,1,30),'Period',2,'Basis',1,'Principal',100,'CallSchedule',schedule,'CallExerciseStyle',"American",'Name',"optionembeddedfixedbond_instrument")
OptionEmbeddedFixedBond
Аргументы в виде пар имя-значение'CouponRate'
- Ставка купона для OptionEmbeddedFixedBond
Ставка купона для OptionEmbeddedFixedBond
, заданная как разделенная разделенными запятой парами, состоящая из 'CouponRate'
в виде скалярного десятичного числа для годовой скорости или расписания, где первый столбец является датами, а второй столбец связан со скоростями. Дата указывает на последний день действия ставки купона.
Типы данных: double
| timetable
'Maturity'
- Дата погашения OptionEmbeddedFixedBond
Дата погашения OptionEmbeddedFixedBond
, заданная как разделенная разделенными запятой парами, состоящая из 'Maturity'
и скалярное значение datetime, серийный номер даты, вектор символов даты или строка даты.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime
потому что Maturity
свойство сохранено как datetime.
Типы данных: char
| double
| string
| datetime
'CallSchedule'
- Расписание вызовов Расписание вызовов, заданное как разделенная разделенными запятой парами, состоящая из 'CallSchedule'
и расписание дат вызовов и забастовок.
Если вы используете вектор символов даты или строку даты для дат в этом расписании, формат должен быть распознаваемым datetime
потому что CallSchedule
свойство сохранено как datetime.
Примечание
The OptionEmbeddedFixedBond
инструмент поддерживает либо CallSchedule
и CallExerciseStyle
или PutSchedule
и PutExerciseStyle
, но не то и другое.
Типы данных: timetable
'PutSchedule'
- Расписание вызовов Поместите расписание, заданное как разделенная разделенными запятой парами, состоящая из 'PutSchedule'
и расписание дат вызовов и забастовок.
Если вы используете вектор символов даты или строку даты для дат в этом расписании, формат должен быть распознаваемым datetime
потому что PutSchedule
свойство сохранено как datetime.
Примечание
The OptionEmbeddedFixedBond
инструмент поддерживает либо CallSchedule
и CallExerciseStyle
или PutSchedule
и PutExerciseStyle
, но не то и другое.
Типы данных: timetable
OptionEmbeddedFixedBond
Аргументы в виде пар имя-значение'Period'
- Периодичность платежей в год2
(по умолчанию) | целое числоЧастота платежей в год, заданная как разделенная разделенными запятой парами, состоящая из 'Period'
и скалярное целое число. Значения для Period
являются: 1
, 2
, 3
, 4
, 6
, и 12
.
Типы данных: double
'CallExerciseStyle'
- Стиль упражнения Call option"European"
(по умолчанию) | строку со значением "European"
, "American"
, или "Bermudan"
| вектор символов с 'European'
значений
, 'American'
, или 'Bermudan'
Стиль упражнения опции вызова, заданный как разделенная разделенными запятой парами, состоящая из 'CallExerciseStyle'
и скалярную строку или вектор символов.
Типы данных: string
| char
'PutExerciseStyle'
- Поставьте стиль упражнения опции"European"
(по умолчанию) | строку со значением "European"
, "American"
, или "Bermudan"
| вектор символов с 'European'
значений
, 'American'
, или 'Bermudan'
Стиль упражнения опции Пут, заданный как разделенная разделенными запятой парами, состоящая из 'PutExerciseStyle'
и скалярную строку или вектор символов.
Типы данных: string
| char
'Basis'
- базис подсчета дней 0
(фактический/фактический) (по умолчанию) | целое число от 0
на 13
Базис отсчета дней, заданный как разделенная разделенными запятой парами, состоящая из 'Basis'
и скалярное целое число с использованием одного из следующих значений:
0 - факт/факт
1 - 30/360 (SIA)
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 - BUS/252
Для получения дополнительной информации см. раздел Базиса.
Типы данных: double
'Principal'
- Условная сумма основной суммы или график основного значения100
(по умолчанию) | скалярное число | расписаниеУсловная сумма основной суммы или график основного значения, заданный как разделенная разделенными запятой парами, состоящая из 'Principal'
и скаляр число или расписание.
Principal
принимает timetable
, где первый столбец является датами, а второй - связанным условным основным значением. Дата указывает на последний день действия основного значения.
Типы данных: double
| timetable
'DaycountAdjustedCashFlow'
- Флаг, указывающий, корректируется ли денежный поток к соглашению о подсчете днейfalse
(по умолчанию) | значение true
или false
Флаг, указывающий, корректируется ли денежный поток к соглашению о подсчете дней, задается как разделенная разделенными запятой парами, состоящая из 'DaycountAdjustedCashFlow'
и скаляр логический со значением true
или false
.
Типы данных: logical
'BusinessDayConvention'
- Договоры о рабочих днях"actual"
(по умолчанию) | строку | вектор символовСоглашения о рабочих днях, заданные как разделенная разделенными запятой парами, состоящая из 'BusinessDayConvention'
и скалярную строку или вектор символов. Выбор для соглашения о рабочих днях определяет, как обрабатываются дни небизнеса. Дни небизнеса определяются как выходные дни плюс любая другая дата, когда предприятия не открыты (для примера, уставных праздников). Значения:
"actual"
- Дни небизнеса эффективно игнорируются. Денежные потоки, которые приходятся на нерабочие дни, считаются распределенными на фактическую дату.
"follow"
- Денежные потоки, которые приходятся на день небизнеса, принимаются распределенными на следующий рабочий день.
"modifiedfollow"
- Денежные потоки, которые приходятся на день небизнеса, принимаются распределенными на следующий рабочий день. Однако если следующий рабочий день находится в другом месяце, то вместо этого принимается предыдущий рабочий день.
"previous"
- Денежные потоки, которые приходятся на день небизнеса, принимаются распределенными в предыдущий рабочий день.
"modifiedprevious"
- Денежные потоки, которые приходятся на день небизнеса, принимаются распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в другом месяце, вместо этого принимается следующий рабочий день.
Типы данных: char
| string
'Holidays'
- Праздничные дни, используемые в рабочих дняхNaT
(по умолчанию) | datetime | массив ячеек из векторов символов даты | строковые массивы дат | последовательные номера датПраздничные дни, используемые в вычислении рабочих дней, заданные как разделенная разделенными запятой парами, состоящая из 'Holidays'
и дат с использованием 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
Флаг правила конца месяца для генерации дат при Maturity
- дата конца месяца для месяца с 30 или менее дней, заданная как разделенная разделенными запятой парами, состоящая из 'EndMonthRule'
и скаляр логическое значение true
или false
.
Если вы задаете EndMonthRule
на false
программное обеспечение игнорирует правило, означающее, что дата платежа всегда является одним и тем же числовым днем месяца.
Если вы задаете EndMonthRule
на true
программное обеспечение устанавливает правило, означающее, что дата платежа всегда является последним фактическим днем месяца.
Типы данных: logical
'IssueDate'
- Дата выпуска облигацийNaT
(по умолчанию) | datetime | серийный номер даты | вектор символов даты | строка датыДата выпуска облигации, заданная как разделенная разделенными запятой парами, состоящая из 'IssueDate'
и скалярное значение datetime, серийный номер даты, вектор символов даты или строка даты.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime
потому что IssueDate
свойство сохранено как datetime.
Типы данных: double
| char
| string
| datetime
'FirstCouponDate'
- Нерегулярная дата первого купонаNaT
(по умолчанию) | datetime | серийный номер даты | вектор символов даты | строка датыНерегулярная дата первого купона, заданная как разделенная разделенными запятой парами, состоящая из 'FirstCouponDate'
и скалярное значение datetime, серийный номер даты, вектор символов даты или строка даты.
Когда FirstCouponDate
и LastCouponDate
оба заданы, FirstCouponDate
имеет приоритет при определении структуры купонного платежа. Если вы не задаете FirstCouponDate
Даты платежа денежного потока определяются из других входов.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime
потому что FirstCouponDate
свойство сохранено как datetime.
Типы данных: double
| char
| string
| datetime
'LastCouponDate'
- Нерегулярная дата последнего купонаNaT
(по умолчанию) | datetime | серийный номер даты | вектор символов даты | строка датыНерегулярная дата последнего купона, заданная как разделенная разделенными запятой парами, состоящая из 'LastCouponDate'
и скалярное значение datetime, серийный номер даты, вектор символов даты или строка даты.
Если вы задаете LastCouponDate
но не FirstCouponDate
, LastCouponDate
определяет купонную структуру облигации. Купонная структура облигации усечена на LastCouponDate
, независимо от того, где он падает, и сопровождается только датой движения денежных средств по облигации со сроком погашения. Если вы не задаете LastCouponDate
Даты платежа денежного потока определяются из других входов.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime
потому что LastCouponDate
свойство сохранено как datetime.
Типы данных: double
| char
| string
| datetime
'StartDate'
- Форвардная дата начала платежейNaT
(по умолчанию) | datetime | серийный номер даты | вектор символов даты | строка датыДата начала пересчета платежей, заданная как разделенная разделенными запятой парами, состоящая из 'StartDate'
и скалярное значение datetime, серийный номер даты, вектор символов даты или строка даты.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime
потому что StartDate
свойство сохранено как datetime.
Типы данных: char
| double
| string
| datetime
'Name'
- Определяемое пользователем имя прибора" "
(по умолчанию) | строку | вектор символовОпределяемое пользователем имя инструмента, заданное как разделенная разделенными запятой парами, состоящая из 'Name'
и скалярную строку или вектор символов.
Типы данных: char
| string
CouponRate
- Годовая ставка купонаГодовая ставка купона, возвращенная в виде скалярного десятичного знака или расписания.
Типы данных: double
| timetable
Maturity
- Дата погашенияДата погашения, возвращенная как datetime.
Типы данных: datetime
CallSchedule
- Расписание вызовов Расписание вызовов, возвращаемое как расписание.
Типы данных: cell
| datetime
PutSchedule
- Расписание вызовов Поставьте расписание, вернитесь как расписание.
Типы данных: cell
| datetime
Period
- Купоны в год2
(по умолчанию) | целое числоКупоны в год, возвращаются в виде скалярного целого числа.
Типы данных: double
Basis
- базис подсчета дней 0
(фактический/фактический) (по умолчанию) | целое число от 0
на 13
Базис отсчета дней, возвращенный как скалярное целое число.
Типы данных: double
Principal
- Условная сумма основной суммы или график основного значения100
(по умолчанию) | скалярное число | расписаниеУсловная сумма основной суммы или график основного значения, возвращаемый в виде скалярного числа или расписания.
Типы данных: timetable
| double
DaycountAdjustedCashFlow
- Флаг, указывающий, корректируется ли денежный поток к соглашению о подсчете днейfalse
(по умолчанию) | значение true
или false
Флаг, указывающий, скорректирован ли денежный поток по соглашению о подсчете дней, возвращен как скалярный логический со значением true
или false
.
Типы данных: logical
BusinessDayConvention
- Договоры о рабочих днях"actual"
(по умолчанию) | строкуСоглашения о рабочих днях, возвращенные как строка
Типы данных: string
Holidays
- Праздничные дни, используемые в рабочих дняхNaT
(по умолчанию) | datetimeПраздничные дни, используемые в вычислении рабочих дней, возвращенные как datetimes.
Типы данных: datetime
EndMonthRule
- Флаг правила конца месяца для генерации дат при Maturity
является датой конца месяца для месяца с 30 или менее днейtrue
(в действии) (по умолчанию) | значение true
или false
Флаг правила конца месяца для генерации дат при Maturity
- дата конца месяца для месяца с 30 или менее дней, возвращаемая как скаляр логическая.
Типы данных: logical
IssueDate
- Дата выпуска облигацийNaT
(по умолчанию) | datetimeДата выпуска облигаций, возвращенная как datetime.
Типы данных: datetime
FirstCouponDate
- Нерегулярная дата первого купонаNaT
(по умолчанию) | datetimeНерегулярная дата первого купона, возвращенная как datetime.
Типы данных: datetime
LastCouponDate
- Нерегулярная дата последнего купонаNaT
(по умолчанию) | datetimeНерегулярная дата последнего купона, возвращенная как datetime.
Типы данных: datetime
StartDate
- Форвардная дата начала платежейNaT
(по умолчанию) | datetimeФорвардная дата начала платежей, возвращенная как datetime.
Типы данных: datetime
CallExerciseStyle
- Стиль упражнения Call option"European"
(по умолчанию) | строку со значением "European"
, "American"
, или "Bermuda"
Это свойство доступно только для чтения.
Стиль упражнения опции вызова, возвращенный как строка со значением "European"
, "American"
, или "Bermuda"
.
Типы данных: string
PutExerciseStyle
- Поставьте стиль упражнения опции"European"
(по умолчанию) | строку со значением "European"
, "American"
, или "Bermuda"
Это свойство доступно только для чтения.
Поместите опцию стиль упражнения, возвращенный как строка со значением "European"
, "American"
, или "Bermuda"
.
Типы данных: string
Name
- Определяемое пользователем имя прибора" "
(по умолчанию) | строкуОпределяемое пользователем имя инструмента, возвращаемое как строка.
Типы данных: string
setCallExercisePolicy | Установите политику выполнения вызовов для OptionEmbeddedFixedBond , OptionEmbeddedFloatBond , или ConvertibleBond инструмент |
setPutExercisePolicy | Установите политику упражнений put для OptionEmbeddedFixedBond , OptionEmbeddedFloatBond , или ConvertibleBond инструмент |
Этот пример показывает рабочий процесс по цене американских, европейских и бермудских стилей упражнений для трех вызываемых OptionEmbeddedFixedBond
инструменты, когда вы используете 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);
Создание OptionEmbeddedFixedBond
Объекты приборов
Использование fininstrument
создать три OptionEmbeddedFixedBond
объекты инструмента с различными стилями упражнений.
Maturity = datetime(2024,1,1); % Option embedded bond (Bermudan callable bond) Strike = [100; 100]; ExerciseDates = [datetime(2020,1,1); datetime(2024,1,1)]; Period = 1; CallSchedule = timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); CallableBondBermudan = fininstrument("OptionEmbeddedFixedBond",'Maturity',Maturity,... 'CouponRate',0.025,'Period',Period, ... 'CallSchedule',CallSchedule,'CallExerciseStyle', "bermudan")
CallableBondBermudan = OptionEmbeddedFixedBond with properties: CouponRate: 0.0250 Period: 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 bond (American callable bond) Strike = 100; ExerciseDates = datetime(2024,1,1); CallSchedule = timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); Period = 1; CallableBondAmerican = fininstrument("OptionEmbeddedFixedBond",'Maturity',Maturity,... 'CouponRate',0.025,'Period', Period, ... 'CallSchedule',CallSchedule,'CallExerciseStyle',"american")
CallableBondAmerican = OptionEmbeddedFixedBond with properties: CouponRate: 0.0250 Period: 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 bond (European callable bond) Strike = 100; ExerciseDates = datetime(2024,1,1); CallSchedule = timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); Period = 1; CallableBondEuropean = fininstrument("OptionEmbeddedFixedBond",'Maturity',Maturity,... 'CouponRate',0.025,'Period',Period, ... 'CallSchedule',CallSchedule)
CallableBondEuropean = OptionEmbeddedFixedBond with properties: CouponRate: 0.0250 Period: 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
и используйте объект pricer 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 = 103.2729
outPR = priceresult with properties: Results: [1x4 table] PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
______ _______ ______ _______
103.27 -148.28 1375.9 -290.33
[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 = 107.7023
outPR = priceresult with properties: Results: [1x4 table] PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
_____ ____ ______ _______
107.7 0 4086.4 -602.56
В этом примере показан рабочий процесс для оценки вызываемого OptionEmbeddedFixedBond
инструмент и получите вероятности упражнений, когда вы используете BlackKarasinski
модель и IRTree
метод ценообразования.
Создание ratecurve
Объект
Создайте ratecurve
объект, использующий ratecurve
.
Settle = datetime(2018, 1, 1); ZeroTimes = calyears(1:4)'; ZeroRates = [0.035; 0.042147; 0.047345; 0.052707]; ZeroDates = Settle + ZeroTimes; Compounding = 1; ZeroCurve = ratecurve("zero",Settle,ZeroDates,ZeroRates, "Compounding",Compounding)
ZeroCurve = ratecurve with properties: Type: "zero" Compounding: 1 Basis: 0 Dates: [4x1 datetime] Rates: [4x1 double] Settle: 01-Jan-2018 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создание OptionEmbeddedFixedBond
Объект прибора
Использование fininstrument
для создания OptionEmbeddedFixedBond
объект инструмента с американским стилем упражнений.
CouponRate = 0.0425; Strike = [95; 98]; ExerciseDates = [datetime(2021,1,1); datetime(2022,1,1)]; Maturity = datetime(2022,1,1); Period = 1; CallSchedule = timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); CallableBond = fininstrument("OptionEmbeddedFixedBond", 'Maturity',Maturity,... 'CouponRate',CouponRate,'Period', Period, ... 'CallSchedule',CallSchedule,... 'CallExerciseStyle', "American",... 'Name',"MyCallableBond")
CallableBond = OptionEmbeddedFixedBond with properties: CouponRate: 0.0425 Period: 1 Basis: 0 EndMonthRule: 1 Principal: 100 DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT IssueDate: NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT Maturity: 01-Jan-2022 CallDates: [2x1 datetime] PutDates: [0x1 datetime] CallSchedule: [2x1 timetable] PutSchedule: [0x0 timetable] CallExerciseStyle: "american" PutExerciseStyle: [0x0 string] Name: "MyCallableBond"
Создание BlackKarasinski
Объект модели
Использование finmodel
для создания BlackKarasinski
объект модели.
VolCurve = 0.01; AlphaCurve = 0.1; BKModel = finmodel("BlackKarasinski",'alpha',AlphaCurve,'sigma',VolCurve)
BKModel = BlackKarasinski with properties: Alpha: 0.1000 Sigma: 0.0100
Создание IRTree
Объект прейскуранта
Использование finpricer
для создания IRTree
и используйте объект pricer ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
BKTreePricer = finpricer("IRTree",'Model',BKModel,'DiscountCurve',ZeroCurve,'TreeDates',ZeroDates)
BKTreePricer = HWBKTree with properties: Tree: [1x1 struct] TreeDates: [4x1 datetime] Model: [1x1 finmodel.BlackKarasinski] DiscountCurve: [1x1 ratecurve]
Ценовые OptionEmbeddedFixedBond
Инструмент
Использование price
вычислить цену и чувствительность для OptionEmbeddedFixedBond
прибора.
[Price, PriceResults]= price(BKTreePricer, CallableBond)
Price = 92.5235
PriceResults = priceresult with properties: Results: [1x1 table] PricerData: [1x1 struct]
Исследуйте выходные PriceResults.PricerData.PriceTree.ExTree
, который содержит массивы индикаторов упражнений. В массиве ячеек a 1
указывает выполняемую опцию и 0
указывает на неэксперсную опцию.
PriceResults.PricerData.PriceTree.ExTree{5}
ans = 1x7 logical array
1 1 1 1 1 1 1
Опции не выполняются.
PriceResults.PricerData.PriceTree.ExTree{4}
ans = 1x7 logical array
0 0 0 0 0 0 0
Инструмент выполняется на всех узлах.
PriceResults.PricerData.PriceTree.ExTree{3}
ans = 1x5 logical array
0 0 0 0 0
Опции не выполняются.
PriceResults.PricerData.PriceTree.ExTree{2}
ans = 1x3 logical array
0 0 0
Опции не выполняются.
Просмотрите вероятность достижения каждого узла из корневого узла используя PriceResults.PricerData.PriceTree.ProbTree
.
PriceResults.PricerData.PriceTree.ProbTree{2}
ans = 1×3
0.1667 0.6667 0.1667
PriceResults.PricerData.PriceTree.ProbTree{3}
ans = 1×5
0.0203 0.2206 0.5183 0.2206 0.0203
PriceResults.PricerData.PriceTree.ProbTree{4}
ans = 1×7
0.0018 0.0395 0.2370 0.4433 0.2370 0.0395 0.0018
PriceResults.PricerData.PriceTree.ProbTree{5}
ans = 1×7
0.0018 0.0395 0.2370 0.4433 0.2370 0.0395 0.0018
Просмотрите вероятности упражнений, используя PriceResults.PricerData.PriceTree.ExProbTree
. PriceResults.PricerData.PriceTree.ExProbTree
содержит вероятности упражнений. Каждый элемент массива ячеек является массивом, содержащим 0
где нет упражнений или вероятность достижения этого узла, где выполняются упражнения.
PriceResults.PricerData.PriceTree.ExProbTree{5}
ans = 1×7
0.0018 0.0395 0.2370 0.4433 0.2370 0.0395 0.0018
PriceResults.PricerData.PriceTree.ExProbTree{4}
ans = 1×7
0 0 0 0 0 0 0
PriceResults.PricerData.PriceTree.ExProbTree{3}
ans = 1×5
0 0 0 0 0
PriceResults.PricerData.PriceTree.ExProbTree{2}
ans = 1×3
0 0 0
Просмотрите вероятности упражнений на каждом уровне дерева с помощью PriceResults.PricerData.PriceTree.ExProbsByTreeLevel
. PriceResults.PricerData.PriceTree.ExProbsByTreeLevel
- массив, в котором каждая строка сохраняет вероятность упражнения для заданной опции во время наблюдения дерева.
PriceResults.PricerData.PriceTree.ExProbsByTreeLevel
ans = 1×5
0 0 0 0 1.0000
vanilla coupon bond представляет собой обеспечение, представляющее собой обязательство погасить заимствованную сумму в установленный срок и производить периодические выплаты процентов до этого времени.
Эмитент облигации производит периодические выплаты процентов до погашения облигации. При погашении эмитент выплачивает держателю облигации основную сумму задолженности ( номинальное значение) и последний процентный платеж. Ванильная облигация с встроенной опцией - это там, где опционный контракт имеет базовый актив ванильной облигации.
step-up bond и step-down bond является обеспечением долга с заранее определенной структурой купона с течением времени.
С помощью этих инструментов купоны увеличиваются (повышаются) или уменьшаются (снижаются) в определенные моменты времени в течение срока действия облигации. Шаговые купонные облигации могут иметь опции функции (вызов и размещение).
amortizing callable bond или amortizing puttable bond работа по расписанию Principal
.
Амортизирующая вызываемая облигация дает эмитенту право перезвонить облигации, но вместо оплаты Principal
сумма в срок погашает часть основной суммы вместе с купонными платежами. Амортизирующая облигация, подлежащая оплате, возвращает часть основной суммы вместе с купонными платежами и предоставляет держателю облигации право продать облигацию эмитенту.
После создания OptionEmbeddedFixedBond
объект, можно изменить CallSchedule
и CallExerciseStyle
использование setCallExercisePolicy
. Или можно изменить PutSchedule
и PutExerciseStyle
значения с использованием setPutExercisePolicy
.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.