主要内容

FloatBondOption

FloatBondOption仪对象

描述

创建并定价FloatBondOption一个或多个浮动债券期权工具的工具对象,使用此工作流:

  1. 使用fininstrument要创建FloatBondOption浮动债券期权工具的工具对象。

  2. 使用finmodel要指定HullWhiteBlackKarasinskiBraceGatarekMusielaSABRBraceGatarekMusiela,或LinearGaussian2F的模型FloatBondOption仪对象。

  3. 选择一种定价方法。

    • 当使用HullWhiteBlackKarasinski模型,使用finpricer要指定IRTree一个或多个定价方法FloatBondOption仪器。

    • 当使用HullWhiteBraceGatarekMusielaSABRBraceGatarekMusiela,或LinearGaussian2F模型,使用finpricer要指定IRMonteCarlo一个或多个定价方法FloatBondOption仪器。

有关此工作流的详细信息,请参见开始使用基于对象的金融工具定价框架的工作流程

有关现有型号和定价方法的更多信息FloatBondOption仪器,看选择仪器,模型和价格

创建

描述

例子

FloatBondOptionObj= fininstrument (InstrumentType”,罢工“strike_value,”ExerciseDate“exercise_date,”债券”,bond_obj)创建一个FloatBond对象为一个或多个浮动债券期权工具指定InstrumentType并设置属性使用所需的名称-值对参数罢工ExerciseDate,债券

例子

FloatBondOptionObj= fininstrument (___名称,值设置可选属性在前面的语法中,除了必需的参数外,还使用其他的名-值对参数。例如,FloatBondOptionObj = fininstrument("FloatBondOption",'Strike',100,'ExerciseDate',datetime(2019,1,30),'Bond',bond_obj,'OptionType','put','ExerciseStyle',"american",'Name',"float_bond_option")创建一个FloatBondOption一种100度的乐器和美式练习。可以指定多个名称-值对参数。

输入参数

全部展开

仪器类型,指定为值为的字符串“FloatBondOption”,值为的字符向量“FloatBondOption”,一个NINST——- - - - - -1值为的字符串数组“FloatBondOption”,或NINST——- - - - - -1值为的字符向量的单元格数组“FloatBondOption”

数据类型:字符|细胞|字符串

FloatBondOption名称-值对参数

指定必需的和可选的逗号分隔的对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:FloatBondOptionObj = fininstrument("FloatBondOption",'Strike',100,'ExerciseDate',datetime(2019,1,30),'Bond',bond_obj,'OptionType','put','ExerciseStyle',"american",'Name',"float_bond_option")
要求FloatBondOption名称-值对参数

全部展开

选项行值,指定为逗号分隔的对,由“罢工”标量非负值或者NINST——- - - - - -1非负值的向量。

数据类型:

期权行权日期,由逗号分隔的对组成“ExerciseDate”和标量序列日期数字,日期字符向量,日期字符串,日期时间或NINST——- - - - - -1日期时间向量、序列号、日期字符向量的单元格数组或日期字符串数组。

  • 至于欧洲选项,只有一个ExerciseDate在期权到期日。

  • 百慕大的选项,有一个1——- - - - - -NSTRIKES运动日期向量。

  • 对于美式期权,期权可以在ValuationDate的股票树和单上市ExerciseDate

如果使用日期字符向量或日期字符串,格式必须由datetime因为成熟属性存储为日期时间。

数据类型:|细胞|字符|字符串|datetime

标的浮动债券,指定为逗号分隔的一对,由“债券”还有a的名字FloatBond对象或NINST——- - - - - -1向量的FloatBond对象。

数据类型:对象

可选FloatBondOption名称-值对参数

全部展开

选项的定义,指定为逗号分隔的对,由“OptionType”标量字符向量或字符串或NINST——- - - - - -1单元格数组的字符向量或字符串数组使用“电话”“把”

数据类型:字符|细胞|字符串

选项类型,指定为逗号分隔的对,由“ExerciseStyle”标量字符向量或字符串或NINST——- - - - - -1字符向量或字符串数组的单元格数组。

数据类型:字符串|细胞|字符

一个或多个仪器的用户定义名称,指定为逗号分隔的对,由“名字”标量字符串或字符向量或NINST——- - - - - -1字符向量或字符串数组的单元格数组。

数据类型:字符|细胞|字符串

属性

全部展开

仪器类型,返回为标量字符串或NINST——- - - - - -1字符串数组。

数据类型:字符串

选项执行值,返回为标量非负值或NINST——- - - - - -1非负值的向量。

数据类型:

选项执行日期,返回为标量日期时间或NINST——- - - - - -1日期时间向量。

数据类型:datetime

选项的定义,返回为标量字符串或NINST——- - - - - -1字符串数组。

数据类型:字符串

选项类型,返回为标量字符串或NINST——- - - - - -1字符串数组。

数据类型:字符串

标的浮动债券,作为标量返回FloatBond对象或NINST——- - - - - -1向量的FloatBond对象。

数据类型:对象

仪器的用户定义名称,返回为标量字符串或NINST——- - - - - -1字符串数组。

数据类型:字符串

对象的功能

setExercisePolicy 制定锻炼策略FixedBondOptionFloatBondOption,或香草仪器

例子

全部折叠

这个例子展示了为一个对象定价的工作流FloatBondOption仪器当你使用HullWhite模型和IRTree定价方法。

创建FloatBond仪对象

使用fininstrument要创建FloatBond仪器对象作为基础债券。

金融工具(“FloatBond”“成熟”datetime(2030、9、15),“传播”, 0.021,“名字”“bond_instrument”
BondInst = FloatBond with properties: Spread: 0.0210 ProjectionCurve: [0x0 rate ecurve] ResetOffset: 0 Reset: 2 Basis: 0 EndMonthRule: 1 Principal: 100 daycountadjuststedcashflow: 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),“罢工”, 98,“债券”BondInst,“OptionType”“电话”“ExerciseStyle”“欧洲”“名字”“float_bond_option_european”
FloatBOptionEuro = FloatBondOption属性:OptionType: "call" ExerciseStyle: "european" ExerciseDate: 15-Sep-2029罢工:98债券:[1x1 fininstrument。FloatBond]名称:"float_bond_option_europe "
FloatBOptionAmerican = fininstrument(“FloatBondOption”“ExerciseDate”datetime(2029、9、15),“罢工”, 98,“债券”BondInst,“OptionType”“电话”“ExerciseStyle”“美国”“名字”“float_bond_option_american”
FloatBOptionAmerican = FloatBondOption属性:OptionType: "call" exercisstyle: "american" ExerciseDate: 15-Sep-2029 Strike: 98 Bond: [1x1 fininstrument.]FloatBond]名称:"float_bond_option_american"
floatboption百慕大= fininstrument(“FloatBondOption”“ExerciseDate”,[datetime(2025,9,15), datetime(2029,9,15)],“罢工”[98100],“债券”BondInst,“OptionType”“电话”“ExerciseStyle”“百慕大”“名字”“float_bond_option_bermudan”
floatboptionbermuda = FloatBondOption与属性:OptionType: "call" ExerciseStyle: "bermuda " ExerciseDate: [15-Sep-2025 15-Sep-2029]罢工:[98 100]债券:[1x1 fininstrument。FloatBond]名称:" float_bond_option_百慕大"

                    

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

set = datetime(204,9,15);类型=“零”;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;比率曲线(“零”、结算、ZeroDates ZeroRates)
myRC =带有属性的利率曲线:类型:“零”复合:-1基础:0日期:[10x1 datetime]利率:[10x1 double]结算:15-Sep-2024 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”

创建一个HullWhite模型对象

使用finmodel要创建HullWhite模型对象。

HullWhiteModel = finmodel(“HullWhite”“α”, 0.01,“σ”, 0.05)
HullWhiteModel = HullWhite属性:阿尔法:0.0100西格玛:0.0500

创建IRTree定价的人对象

使用finpricer要创建IRTreeprice对象和使用ratecurve对象的“DiscountCurve”名称-值对参数。

CFdates = CFdates(确定,BondInst。成熟,BondInst。重置,BondInst.Basis);hwtreeprice = finpricer(“IRTree”“模型”HullWhiteModel,“DiscountCurve”myRC,“TreeDates”, CFdates ')
HWTreePricer = HWBKTree with properties: Tree: [1x1 struct] TreeDates: [12x1 datetime] Model: [1x1 finmodel。折扣曲线:[1x1率曲线]
HWTreePricer。树
ans =带字段的结构: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}探针:{1x11 cell}连接:{1x11 cell} FwdTree: {1x12 cell} RateTree: {1x12 cell}

价格FixedBondOption仪器

使用价格计算两者的价格和敏感度FixedBondOption仪器。

[Price, outPR] = Price (hwtreeprice,FloatBOptionEuro,[“所有”])
价格= 3.8040
outPR = priceresult with properties:结果:[1x4表]PricerData: [1x1 struct]
outPR。结果
ans =1×4表价格织女星γδ  _____ ___________ ______ _______ 3.804 - -2.6645 e-11 110.75 - -20.465
[Price, outPR] = Price (hwtreeprice,FloatBOptionAmerican,[“所有”])
价格= 14.1700
outPR = priceresult with properties:结果:[1x4表]PricerData: [1x1 struct]
outPR。结果
ans =1×4表价格织女星γδ  _____ ____ ______ _______ 14.17 0 160.87 - -38.981
[Price, outPR] = Price (hwtreeprice, floatboptionbermuda,[“所有”])
价格= 12.0676
outPR = priceresult with properties:结果:[1x4表]PricerData: [1x1 struct]
outPR。结果
ans =1×4表价格织女星γδ  ______ ___________ ______ _______ 12.068 - -2.8422平台以及161.55 - -39.402

这个例子展示了多重定价的工作流FloatBondOption仪器,当你使用HullWhite模型和IRTree定价方法。

创建FloatBond仪对象

使用fininstrument要创建FloatBond仪器对象作为基础债券。

金融工具(“FloatBond”“成熟”datetime(2030、9、15),“传播”, 0.021,“名字”“bond_instrument”
BondInst = FloatBond with properties: Spread: 0.0210 ProjectionCurve: [0x0 rate ecurve] ResetOffset: 0 Reset: 2 Basis: 0 EndMonthRule: 1 Principal: 100 daycountadjuststedcashflow: 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]),“罢工”, 98;99;100年),“债券”BondInst,“OptionType”“电话”“ExerciseStyle”“欧洲”“名字”“float_bond_option_european”
FloatBOptionEuro =3×1对象3x1 FloatBondOption数组,包含属性:OptionType ExerciseStyle ExerciseDate罢工绑定名称

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

set = datetime(204,9,15);类型=“零”;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;比率曲线(“零”、结算、ZeroDates ZeroRates)
myRC =带有属性的利率曲线:类型:“零”复合:-1基础:0日期:[10x1 datetime]利率:[10x1 double]结算:15-Sep-2024 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”

创建一个HullWhite模型对象

使用finmodel要创建HullWhite模型对象。

HullWhiteModel = finmodel(“HullWhite”“α”, 0.01,“σ”, 0.05)
HullWhiteModel = HullWhite属性:阿尔法:0.0100西格玛:0.0500

创建IRTree定价的人对象

使用finpricer要创建IRTreeprice对象和使用ratecurve对象的“DiscountCurve”名称-值对参数。

CFdates = CFdates(确定,BondInst。成熟,BondInst。重置,BondInst.Basis);hwtreeprice = finpricer(“IRTree”“模型”HullWhiteModel,“DiscountCurve”myRC,“TreeDates”, CFdates ')
HWTreePricer = HWBKTree with properties: Tree: [1x1 struct] TreeDates: [12x1 datetime] Model: [1x1 finmodel。折扣曲线:[1x1率曲线]
HWTreePricer。树
ans =带字段的结构: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}探针:{1x11 cell}连接:{1x11 cell} FwdTree: {1x12 cell} RateTree: {1x12 cell}

价格FixedBondOption仪器

使用价格计算的价格和敏感性FixedBondOption仪器。

[Price, outPR] = Price (hwtreeprice,FloatBOptionEuro,[“所有”])
价格=3×11.8081 2.8617 3.9097
outPR =3×1对象带有属性的3x1 priceresult数组
outPR。结果
ans =1×4表价格织女星γδ  ______ __________ ______ _______ 1.8081 - 4.4409 e-12 65.153 - -10.854
ans =1×4表价格织女星γδ  ______ ___________ ______ _______ 2.8617 - -1.7764 e-11 87.167 - -15.751
ans =1×4表价格织女星γδ  ______ ___________ ______ _______ 3.9097 - -7.1054 e-11 108.64 - -20.493

这个例子展示了为一个对象定价的工作流FloatdBondOption仪器在使用HullWhite模型和IRMonteCarlo定价方法。

创建FloatBond仪对象

使用fininstrument要创建FloatBond仪器对象作为基础债券。

金融工具(“FloatBond”“成熟”datetime(2030、9、15),“传播”, 0.021,“名字”“bond_instrument”
BondInst = FloatBond with properties: Spread: 0.0210 ProjectionCurve: [0x0 rate ecurve] ResetOffset: 0 Reset: 2 Basis: 0 EndMonthRule: 1 Principal: 100 daycountadjuststedcashflow: 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),“罢工”, 98,“债券”BondInst,“OptionType”“电话”“ExerciseStyle”“欧洲”“名字”“float_bond_option_european”
FloatBOptionEuro = FloatBondOption属性:OptionType: "call" ExerciseStyle: "european" ExerciseDate: 15- mar2-2020罢工:98债券:[1x1 fininstrument。FloatBond]名称:"float_bond_option_europe "

创建HullWhite模型对象

使用finmodel要创建HullWhite模型对象。

HullWhiteModel = finmodel(“HullWhite”“α”, 0.32,“σ”, 0.49)
HullWhiteModel = HullWhite属性:阿尔法:0.3200西格玛:0.4900

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

Settle = datetime(2019,1,1);类型=“零”;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;比率曲线(“零”、结算、ZeroDates ZeroRates)
myRC =带有属性的利率曲线:类型:“零”复合:-1基础:0日期:[10x1 datetime]利率:[10x1 double]结算:01- 01- 2019 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”

创建IRMonteCarlo定价的人对象

使用finpricer要创建IRMonteCarloprice对象和使用ratecurve对象的“DiscountCurve”名称-值对参数。

outPricer = finpricer(“IRMonteCarlo”“模型”HullWhiteModel,“DiscountCurve”myRC,“SimulationDates”datetime (2019 3 15) + calmonths(0:6:48)”)
outPricer = HWMonteCarlo with properties: NumTrials: 1000 RandomNumbers: [] DiscountCurve: [1x1 ratecurve] SimulationDates: [15- march -2019 15-Sep-2019 15- march -2020…型号:[1x1 finmodel。]HullWhite]

价格FloatBondOption仪器

使用价格来计算的价格和敏感性FloatBondOption乐器。

[Price,outPR] = Price (outprice,FloatBOptionEuro,[“所有”])
价格= 18.2369
outPR = priceresult with properties:结果:[1x4表]PricerData: [1x1 struct]
outPR。结果
ans =1×4表价格三角洲伽马织女星  ______ _______ _____ _______ 18.237 -104.22 788.7 -13.949

更多关于

全部展开

提示

在创建FloatBondOption仪器对象,可以使用setExercisePolicy更改选项的大小。例如,考虑以下工具:

FloatBOption = fininstrument("FloatBondOption",'ExerciseDate',datetime(2029,9,15),'Strike',98,'Bond',BondInst,'OptionType',"call",' exercisstyle ',"European")
控件的大小FloatBondOption仪器对象通过改变ExerciseStyle“欧洲”“美国”,使用setExercisePolicy
FloatBOption = setExercisePolicy(FloatBOption,[datetime(2021,1,1) datetime(2022,1,1)],100,'American')

R2020a中引入