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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.