FloatBondOption инструментальный объект
Создайте и оцените FloatBondOption инструментальный объект для одного или нескольких инструментов Опции Связи Плавающих с помощью этого рабочего процесса:
Использование fininstrument создать FloatBondOption инструментальный объект для одного или нескольких инструментов Опции Связи Плавающих.
Использование finmodel задавать HullWhite, BlackKarasinski, BraceGatarekMusiela, SABRBraceGatarekMusiela, или LinearGaussian2F модель для FloatBondOption инструментальный объект.
Выберите метод ценообразования.
При использовании HullWhite или BlackKarasinski модель, использовать finpricer задавать IRTree метод ценообразования для одного или нескольких FloatBondOption инструменты.
При использовании HullWhite, BraceGatarekMusiela, SABRBraceGatarekMusiela, или LinearGaussian2F модель, использовать finpricer задавать IRMonteCarlo метод ценообразования для одного или нескольких FloatBondOption инструменты.
Для получения дополнительной информации об этом рабочем процессе смотрите Начало работы с Рабочими процессами Используя Основанную на объектах Среду для Оценки Финансовых инструментов.
Для получения дополнительной информации о доступных моделях и методах ценообразования FloatBondOption инструмент, смотрите, Выбирают Instruments, Models и Pricers.
создает FloatBondOptionObj = fininstrument(InstrumentType,'Strike',strike_value,'ExerciseDate',exercise_date,'Bond',bond_obj)FloatBond объект для одного или нескольких инструментов Опции Связи Плавающих путем определения InstrumentType и свойства наборов с помощью необходимых аргументов пары "имя-значение" Strike, ExerciseDate, и Bond.
устанавливает дополнительные свойства с помощью дополнительных аргументов пары "имя-значение" в дополнение к обязательным аргументам в предыдущем синтаксисе. Например, FloatBondOptionObj = fininstrument(___,Name,Value)FloatBondOptionObj = fininstrument("FloatBondOption",'Strike',100,'ExerciseDate',datetime(2019,1,30),'Bond',bond_obj,'OptionType','put','ExerciseStyle',"american",'Name',"float_bond_option") создает FloatBondOption инструмент с забастовкой 100 и американское осуществление. Можно задать несколько аргументов пары "имя-значение".
InstrumentType — Инструментальный тип"FloatBondOption" | массив строк со значениями "FloatBondOption" | вектор символов со значением 'FloatBondOption' | массив ячеек из символьных векторов со значениями 'FloatBondOption'Инструментальный тип в виде строки со значением "FloatBondOption", вектор символов со значением 'FloatBondOption', NINST- 1 массив строк со значениями "FloatBondOption", или NINST- 1 массив ячеек из символьных векторов со значениями 'FloatBondOption'.
Типы данных: char | cell | string
FloatBondOption Аргументы в виде пар имя-значениеЗадайте требуемые и дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
FloatBondOptionObj = fininstrument("FloatBondOption",'Strike',100,'ExerciseDate',datetime(2019,1,30),'Bond',bond_obj,'OptionType','put','ExerciseStyle',"american",'Name',"float_bond_option")FloatBondOption Аргументы в виде пар имя-значениеStrike — Значение забастовки опцииЗначение забастовки опции в виде разделенной запятой пары, состоящей из 'Strike' и скалярное неотрицательное значение или NINST- 1 вектор из неотрицательных значений.
Типы данных: double
ExerciseDate — Даты осуществления опцииДата осуществления опции в виде разделенной запятой пары, состоящей из 'ExerciseDate' и скалярный последовательный номер даты, вектор символов даты, строка даты, datetime или NINST- 1 вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.
Для европейской опции существует только один ExerciseDate на дате окончания срока действия опции.
Для бермудской опции существует 1- NSTRIKES вектор из дат осуществления.
Для американской опции опция может быть осуществлена между ValuationDate из дерева запаса и одного перечисленного ExerciseDate.
Если вы используете векторы символов даты или строки даты, формат должен быть распознаваемым datetime потому что Maturity свойство хранится как datetime.
Типы данных: double | cell | char | string | datetime
Bond — Лежание в основе связи плавающей FloatBond возразите | вектор из FloatBond объектыБазовая связь плавающая в виде разделенной запятой пары, состоящей из 'Bond' и имя FloatBond возразите или NINST- 1 вектор из FloatBond объекты.
Типы данных: object
FloatBondOption Аргументы в виде пар имя-значениеOptionType — Определение опции "call" (значение по умолчанию) | представляет в виде строки со значением "call" или "put" | массив строк со значениями "call" или "put" | вектор символов со значением 'call' или 'put' | массив ячеек из символьных векторов со значениями 'call' или 'put'Определение опции в виде разделенной запятой пары, состоящей из 'OptionType' и скалярный вектор символов или строка или NINST- 1 массив ячеек из символьных векторов или массив строк с помощью 'call' или 'put'.
Типы данных: char | cell | string
ExerciseStyle — Тип опции"European" (значение по умолчанию) | представляет в виде строки со значением "European", "American", или "Bermudan" | массив строк со значениями "European", "American", или "Bermudan" | вектор символов со значением 'European', 'American', или 'Bermudan' | массив ячеек из символьных векторов со значениями 'European', 'American', или 'Bermudan'Тип опции в виде разделенной запятой пары, состоящей из 'ExerciseStyle' и скалярный вектор символов или строка или NINST- 1 массив ячеек из символьных векторов или массив строк.
Типы данных: string | cell | char
Name — Пользовательское имя для инструмента" "
(значение по умолчанию) | представляет в виде строки | массив строк | вектор символов | массив ячеек из символьных векторовПользовательское имя для одного из большего количества инструментов в виде разделенной запятой пары, состоящей из 'Name' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.
Типы данных: char | cell | string
InstrumentType — Инструментальный тип"FloatBondOption" | массив строк со значениями "FloatBondOption"Инструментальный тип, возвращенный как скалярная строка или NINST- 1 массив строк.
Типы данных: string
Strike — Значение забастовки опцииЗначение забастовки опции, возвращенное как скалярное неотрицательное значение или NINST- 1 вектор из неотрицательных значений.
Типы данных: double
ExerciseDate — Дата осуществления опцииДата осуществления опции, возвращенная как скалярный datetime или NINST- 1 вектор из datetimes.
Типы данных: datetime
OptionType — Определение опции "call" (значение по умолчанию) | представляет в виде строки со значением "call" или "put" | массив строк со значениями "call" или "put"Определение опции, возвращенной как скалярная строка или NINST- 1 массив строк.
Типы данных: string
ExerciseStyle — Тип опции"European" (значение по умолчанию) | представляет в виде строки со значением "European", "American", или "Bermudan" | массив строк со значениями "European", "American", или "Bermudan"Тип опции, возвращенный как скалярная строка или NINST- 1 массив строк.
Типы данных: string
Bond — Лежание в основе связи плавающей FloatBond возразите | вектор из FloatBond объектыБазовая связь плавающая, возвращенная как скалярный FloatBond возразите или NINST- 1 вектор из FloatBond объекты.
Типы данных: object
Name — Пользовательское имя для инструмента" "
(значение по умолчанию) | представляет в виде строки | массив строкПользовательское имя для инструмента, возвращенного как скалярная строка или NINST- 1 массив строк.
Типы данных: string
setExercisePolicy | Установите политику осуществления для FixedBondOption, FloatBondOption, или Vanilla инструмент |
Этот пример показывает рабочий процесс, чтобы оценить FloatBondOption инструмент, когда вы используете HullWhite модель и IRTree метод ценообразования.
Создайте FloatBond Инструментальный объект
Используйте fininstrument создать FloatBond инструментальный объект как базовая связь.
BondInst = fininstrument("FloatBond",'Maturity',datetime(2030,9,15),'Spread',0.021,'Name',"bond_instrument")
BondInst =
FloatBond with properties:
Spread: 0.0210
ProjectionCurve: [0x0 ratecurve]
ResetOffset: 0
Reset: 2
Basis: 0
EndMonthRule: 1
Principal: 100
DaycountAdjustedCashFlow: 0
BusinessDayConvention: "actual"
LatestFloatingRate: NaN
Holidays: NaT
IssueDate: NaT
FirstCouponDate: NaT
LastCouponDate: NaT
StartDate: NaT
Maturity: 15-Sep-2030
Name: "bond_instrument"
Создайте FloatBondOption Инструментальные объекты
Используйте fininstrument создать три вызываемых FloatBondOption инструмент возражает с европейцем, американцем и бермудским осуществлением.
FloatBOptionEuro = fininstrument("FloatBondOption",'ExerciseDate',datetime(2029,9,15),'Strike',98,'Bond',BondInst,'OptionType',"call",'ExerciseStyle',"european",'Name',"float_bond_option_european")
FloatBOptionEuro =
FloatBondOption with properties:
OptionType: "call"
ExerciseStyle: "european"
ExerciseDate: 15-Sep-2029
Strike: 98
Bond: [1x1 fininstrument.FloatBond]
Name: "float_bond_option_european"
FloatBOptionAmerican = fininstrument("FloatBondOption",'ExerciseDate',datetime(2029,9,15),'Strike',98,'Bond',BondInst,'OptionType',"call",'ExerciseStyle',"american",'Name',"float_bond_option_american")
FloatBOptionAmerican =
FloatBondOption with properties:
OptionType: "call"
ExerciseStyle: "american"
ExerciseDate: 15-Sep-2029
Strike: 98
Bond: [1x1 fininstrument.FloatBond]
Name: "float_bond_option_american"
FloatBOptionBermudan = fininstrument("FloatBondOption",'ExerciseDate',[datetime(2025,9,15) , datetime(2029,09,15)],'Strike',[98,100],'Bond',BondInst,'OptionType',"call",'ExerciseStyle',"bermudan",'Name',"float_bond_option_bermudan")
FloatBOptionBermudan =
FloatBondOption with properties:
OptionType: "call"
ExerciseStyle: "bermudan"
ExerciseDate: [15-Sep-2025 15-Sep-2029]
Strike: [98 100]
Bond: [1x1 fininstrument.FloatBond]
Name: "float_bond_option_bermudan"
Создайте ratecurve Объект
Создайте ratecurve объект с помощью ratecurve.
Settle = datetime(2024,9,15); Type = 'zero'; ZeroTimes = [calyears([1:10])]'; ZeroRates = [0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307 0.0310]'; 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: 15-Sep-2024
InterpMethod: "linear"
ShortExtrapMethod: "next"
LongExtrapMethod: "previous"
Создайте HullWhite Объект модели
Используйте finmodel создать HullWhite объект модели.
HullWhiteModel = finmodel("HullWhite",'Alpha',0.01,'Sigma',0.05)
HullWhiteModel =
HullWhite with properties:
Alpha: 0.0100
Sigma: 0.0500
Создайте IRTree Объект калькулятора цен
Используйте finpricer создать IRTree объект калькулятора цен и использование ratecurve объект с 'DiscountCurve' аргумент пары "имя-значение".
CFdates = cfdates(Settle, BondInst.Maturity, BondInst.Reset, BondInst.Basis); HWTreePricer = finpricer("IRTree",'Model',HullWhiteModel,'DiscountCurve',myRC,'TreeDates',CFdates')
HWTreePricer =
HWBKTree with properties:
Tree: [1x1 struct]
TreeDates: [12x1 datetime]
Model: [1x1 finmodel.HullWhite]
DiscountCurve: [1x1 ratecurve]
HWTreePricer.Tree
ans = struct with fields:
tObs: [0 0.4959 1 1.4959 2 2.4959 3 3.4986 4.0027 4.4986 5.0027 ... ]
dObs: [15-Sep-2024 15-Mar-2025 15-Sep-2025 ... ]
CFlowT: {1x12 cell}
Probs: {1x11 cell}
Connect: {1x11 cell}
FwdTree: {1x12 cell}
RateTree: {1x12 cell}
Цена FixedBondOption Инструменты
Используйте price вычислить цену и чувствительность для двух FixedBondOption инструменты.
[Price, outPR] = price(HWTreePricer,FloatBOptionEuro,["all"])Price = 3.8040
outPR =
priceresult with properties:
Results: [1x4 table]
PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
_____ ___________ ______ _______
3.804 -2.6645e-11 110.75 -20.465
[Price, outPR] = price(HWTreePricer,FloatBOptionAmerican,["all"])Price = 14.1700
outPR =
priceresult with properties:
Results: [1x4 table]
PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
_____ ____ ______ _______
14.17 0 160.87 -38.981
[Price, outPR] = price(HWTreePricer,FloatBOptionBermudan,["all"])Price = 12.0676
outPR =
priceresult with properties:
Results: [1x4 table]
PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
______ ___________ ______ _______
12.068 -2.8422e-10 161.55 -39.402
Этот пример показывает рабочий процесс, чтобы оценить несколько FloatBondOption инструменты, когда вы используете HullWhite модель и IRTree метод ценообразования.
Создайте FloatBond Инструментальный объект
Используйте fininstrument создать FloatBond инструментальный объект как базовая связь.
BondInst = fininstrument("FloatBond",'Maturity',datetime(2030,9,15),'Spread',0.021,'Name',"bond_instrument")
BondInst =
FloatBond with properties:
Spread: 0.0210
ProjectionCurve: [0x0 ratecurve]
ResetOffset: 0
Reset: 2
Basis: 0
EndMonthRule: 1
Principal: 100
DaycountAdjustedCashFlow: 0
BusinessDayConvention: "actual"
LatestFloatingRate: NaN
Holidays: NaT
IssueDate: NaT
FirstCouponDate: NaT
LastCouponDate: NaT
StartDate: NaT
Maturity: 15-Sep-2030
Name: "bond_instrument"
Создайте FloatBondOption Инструментальные объекты
Используйте fininstrument создать FloatBondOption инструментальный объект с европейским осуществлением для трех инструментов Опции Связи Плавающих.
FloatBOptionEuro = fininstrument("FloatBondOption",'ExerciseDate',datetime([2030,9,15 ; 2029,09,15 ; 2028,09,15]),'Strike',[98 ; 99 ; 100],'Bond',BondInst,'OptionType',"call",'ExerciseStyle',"european",'Name',"float_bond_option_european")
FloatBOptionEuro=3×1 object
3x1 FloatBondOption array with properties:
OptionType
ExerciseStyle
ExerciseDate
Strike
Bond
Name
Создайте ratecurve Объект
Создайте ratecurve объект с помощью ratecurve.
Settle = datetime(2024,9,15); Type = 'zero'; ZeroTimes = [calyears([1:10])]'; ZeroRates = [0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307 0.0310]'; 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: 15-Sep-2024
InterpMethod: "linear"
ShortExtrapMethod: "next"
LongExtrapMethod: "previous"
Создайте HullWhite Объект модели
Используйте finmodel создать HullWhite объект модели.
HullWhiteModel = finmodel("HullWhite",'Alpha',0.01,'Sigma',0.05)
HullWhiteModel =
HullWhite with properties:
Alpha: 0.0100
Sigma: 0.0500
Создайте IRTree Объект калькулятора цен
Используйте finpricer создать IRTree объект калькулятора цен и использование ratecurve объект с 'DiscountCurve' аргумент пары "имя-значение".
CFdates = cfdates(Settle, BondInst.Maturity, BondInst.Reset, BondInst.Basis); HWTreePricer = finpricer("IRTree",'Model',HullWhiteModel,'DiscountCurve',myRC,'TreeDates',CFdates')
HWTreePricer =
HWBKTree with properties:
Tree: [1x1 struct]
TreeDates: [12x1 datetime]
Model: [1x1 finmodel.HullWhite]
DiscountCurve: [1x1 ratecurve]
HWTreePricer.Tree
ans = struct with fields:
tObs: [0 0.4959 1 1.4959 2 2.4959 3 3.4986 4.0027 4.4986 5.0027 ... ]
dObs: [15-Sep-2024 15-Mar-2025 15-Sep-2025 ... ]
CFlowT: {1x12 cell}
Probs: {1x11 cell}
Connect: {1x11 cell}
FwdTree: {1x12 cell}
RateTree: {1x12 cell}
Цена FixedBondOption Инструменты
Используйте price вычислить цены и чувствительность для FixedBondOption инструменты.
[Price, outPR] = price(HWTreePricer,FloatBOptionEuro,["all"])Price = 3×1
1.8081
2.8617
3.9097
outPR=3×1 object
3x1 priceresult array with properties:
Results
PricerData
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
______ __________ ______ _______
1.8081 4.4409e-12 65.153 -10.854
ans=1×4 table
Price Vega Gamma Delta
______ ___________ ______ _______
2.8617 -1.7764e-11 87.167 -15.751
ans=1×4 table
Price Vega Gamma Delta
______ ___________ ______ _______
3.9097 -7.1054e-11 108.64 -20.493
Этот пример показывает рабочий процесс, чтобы оценить FloatdBondOption инструмент при использовании HullWhite модель и IRMonteCarlo метод ценообразования.
Создайте FloatBond Инструментальный объект
Используйте fininstrument создать FloatBond инструментальный объект как базовая связь.
BondInst = fininstrument("FloatBond",'Maturity',datetime(2030,9,15),'Spread',0.021,'Name',"bond_instrument")
BondInst =
FloatBond with properties:
Spread: 0.0210
ProjectionCurve: [0x0 ratecurve]
ResetOffset: 0
Reset: 2
Basis: 0
EndMonthRule: 1
Principal: 100
DaycountAdjustedCashFlow: 0
BusinessDayConvention: "actual"
LatestFloatingRate: NaN
Holidays: NaT
IssueDate: NaT
FirstCouponDate: NaT
LastCouponDate: NaT
StartDate: NaT
Maturity: 15-Sep-2030
Name: "bond_instrument"
Создайте FloatBondOption Инструментальный объект
Используйте fininstrument создать FloatBondOption инструментальный объект.
FloatBOptionEuro = fininstrument("FloatBondOption",'ExerciseDate',datetime(2020,3,15),'Strike',98,'Bond',BondInst,'OptionType',"call",'ExerciseStyle',"european",'Name',"float_bond_option_european")
FloatBOptionEuro =
FloatBondOption with properties:
OptionType: "call"
ExerciseStyle: "european"
ExerciseDate: 15-Mar-2020
Strike: 98
Bond: [1x1 fininstrument.FloatBond]
Name: "float_bond_option_european"
Создайте HullWhite Объект модели
Используйте finmodel создать HullWhite объект модели.
HullWhiteModel = finmodel("HullWhite",'Alpha',0.32,'Sigma',0.49)
HullWhiteModel =
HullWhite with properties:
Alpha: 0.3200
Sigma: 0.4900
Создайте 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"
Создайте 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]
Цена FloatBondOption Инструмент
Используйте price вычислить цену и чувствительность для FloatBondOption инструмент.
[Price,outPR] = price(outPricer,FloatBOptionEuro,["all"])Price = 18.2369
outPR =
priceresult with properties:
Results: [1x4 table]
PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Delta Gamma Vega
______ _______ _____ _______
18.237 -104.22 788.7 -13.949
floating-rate note option дает держателю опции право продать опцию назад (помещенному) выпускающему или искупить опцию (вызов) по определенной цене и в определенную дату.
Financial Instruments Toolbox™ поддерживает три типа пут- и колл-опционов на связях:
Американская опция — опция, что вы осуществляете любое время до его даты истечения срока
Европейская опция — опция, которую вы осуществляете только на ее дату истечения срока
Опция Бермуд — опция Бермуд напоминает гибрид американских и европейских опций; можно только осуществить его в предопределенные даты, обычно ежемесячно
Для получения дополнительной информации см. Опции Связи.
После создания FloatBondOption инструментальный объект, можно использовать setExercisePolicy изменить размер опций. Например, рассмотрите следующий инструмент:
FloatBOption = fininstrument("FloatBondOption",'ExerciseDate',datetime(2029,9,15),'Strike',98,'Bond',BondInst,'OptionType',"call",'ExerciseStyle',"European")FloatBondOption инструментальный объект путем изменения ExerciseStyle от "European" к "American"Использование setExercisePolicy:FloatBOption = setExercisePolicy(FloatBOption,[datetime(2021,1,1) datetime(2022,1,1)],100,'American')
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.