IRMonteCarlo
创建IRMonteCarlo
利率工具使用的定价对象HullWhite
,BraceGatarekMusiela
,BlackKarasinski
,或LinearGaussian2F
模型
描述
创建并定价帽
,地板上
,交换
,掉期期权
,FloatBond
,FixedBond
,FixedBondOption
,FloatBondOption
,OptionEmbeddedFixedBond
,或OptionEmbeddedFloatBond
具有HullWhite
,BraceGatarekMusiela
,SABRBraceGatarekMusiela
,BlackKarasinski
,或LinearGaussian2F
模型和IRMonteCarlo
使用此工作流的定价方法:
使用
fininstrument
要创建FixedBond
,FloatBond
,帽
,地板上
,交换
,掉期期权
,FixedBondOption
,FloatBondOption
,OptionEmbeddedFixedBond
,或OptionEmbeddedFloatBond
仪对象。使用
finmodel
要指定HullWhite
,BlackKarasinski
,或LinearGaussian2F
的模型帽
,地板上
,交换
,掉期期权
,FloatBond
,FixedBond
,FixedBondOption
,FloatBondOption
,OptionEmbeddedFixedBond
,或OptionEmbeddedFloatBond
仪对象。使用
finmodel
要指定BraceGatarekMusiela
或SABRBraceGatarekMusiela
的模型帽
,地板上
,FloatBond
,FixedBond
,FixedBondOption
,FloatBondOption
,OptionEmbeddedFixedBond
,或OptionEmbeddedFloatBond
仪对象。当使用
HullWhite
,BlackKarasinski
,或LinearGaussian2F
模型,使用finpricer
要指定IRMonteCarlo
对象的价格帽
,地板上
,交换
,掉期期权
,FloatBond
,FixedBond
,FixedBondOption
,FloatBondOption
,OptionEmbeddedFixedBond
,或OptionEmbeddedFloatBond
仪对象。当使用
BraceGatarekMusiela
或SABRBraceGatarekMusiela
模型,使用finpricer
要指定IRMonteCarlo
对象的价格帽
,地板上
,FloatBond
,FixedBond
,FixedBondOption
,FloatBondOption
,OptionEmbeddedFixedBond
,或OptionEmbeddedFloatBond
仪对象。
有关此工作流的详细信息,请参见开始使用基于对象的金融工具定价框架的工作流程.
有关可获得的工具、模型和定价方法的更多信息帽
,地板上
,交换
,掉期期权
,FloatBond
,FixedBond
,FixedBondOption
,FloatBondOption
,OptionEmbeddedFixedBond
,或OptionEmbeddedFloatBond
仪器,看到选择仪器,模型和价格.
创建
语法
描述
创建一个IRMonteCarloPricerObj
= finpricer (PricerType
,模型
=模型,DiscountCurve
= ratecurve_obj,SimulationDates
= simulation_dates)IRMonteCarlo
对象PricerType
并设置属性使用所需的名称-值参数模型
,DiscountCurve
,SimulationDates
.
输入参数
PricerType
- - - - - -定价的人类型
带值的字符串“IRMonteCarlo”
|带值的字符向量“IRMonteCarlo”
价格类型,指定为具有值的字符串“IRMonteCarlo”
或者一个带有值的字符向量“IRMonteCarlo”
.
数据类型:字符
|字符串
指定必需的和可选的参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
例子:IRMonteCarloPricerObj = finpricer("irmontecarlo",Model=HWModel,DiscountCurve=ratecurve_obj,SimulationDates=[datetime(2018,1,30);datetime (2019, 30)], NumTrials = 500)
IRMonteCarlo
名称-值参数
模型
- - - - - -模型对象
HullWhite
对象|BlackKarasinski
对象|LinearGaussian2F
对象|BraceGatarekMusiela
对象|SABRBraceGatarekMusiela
对象
模型对象,指定为模型
和先前创建的名称HullWhite
,BlackKarasinski
,LinearGaussian2F
,BraceGatarekMusiela
,或SABRBraceGatarekMusiela
模型对象。使用创建模型对象finmodel
.
数据类型:对象
SimulationDates
- - - - - -模拟日期
datetime数组|字符串数组|日期字符向量
模拟日期,指定为SimulationDates
以及使用日期时间数组、字符串数组或日期字符向量的标量或向量。
要支持万博1manbetx现有代码,IRMonteCarlo
也接受序列号作为输入,但不建议使用。
IRMonteCarlo
名称-值参数
NumTrials
- - - - - -模拟试验
1000
(默认)|标量
模拟试验,指定为NumTrials
和独立采样路径的标量数。
数据类型:双
RandomNumbers
- - - - - -相关随机变量
[]
(默认)|结构
相关随机变量,指定为RandomNumbers
和一个NSimulationDates
——- - - - - -NBrownians
——- - - - - -NTrials
三维时间序列阵列。三维时间序列数组有以下字段:
Z
- - - - - -NSimulationDates
——- - - - - -NBrownians
——- - - - - -NTrials
相关随机变量的3D时间序列数组,用于生成驱动模拟的布朗运动向量(即维纳过程)。
数据类型:结构体
属性
模型
- - - - - -模型对象
对象
此属性是只读的。
模型对象,作为对象返回。
数据类型:对象
DiscountCurve
- - - - - -ratecurve
现金流贴现的对象
ratecurve
对象
ratecurve
对象用于贴现现金流,返回为ratecurve
对象。
数据类型:对象
SimulationDates
- - - - - -模拟日期
datetime
模拟日期,作为datetime数组返回。
数据类型:datetime
NumTrials
- - - - - -模拟试验
1000
(默认)|标量
模拟试验,作为独立样本路径的标量数返回。
数据类型:双
RandomNumbers
- - - - - -相关随机变量
[]
(默认)|结构
相关随机变量,返回为NSimulationDates
——- - - - - -NBrownians
——- - - - - -NTrials
三维时间序列阵列。
数据类型:结构体
对象的功能
价格 |
计算利率工具的价格IRMonteCarlo 定价的人 |
例子
利用IRMonteCarlo定价模型和Hull-White模型对固定债券工具进行定价
这个例子展示了为一个对象定价的工作流FixedBond
仪器在使用HullWhite
模型和IRMonteCarlo
定价方法。
创建FixedBond
仪对象
使用fininstrument
要创建FixedBond
仪对象。
固定b =仪表(“FixedBond”成熟= datetime(2022、9、15),CouponRate = 0.05, =“fixed_bond”)
FixB = FixedBond与属性:CouponRate: 0.0500周期:2基础:0结束月规则:1本金:100 daycountadjuststedcashflow: 0 BusinessDayConvention:“实际”假期:NaT发行日期:NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT到期日期:15 sep -2022名称:“fixed_bond”
创建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
要创建IRMonteCarlo
price对象和使用ratecurve
对象的“DiscountCurve”
名称-值对参数。
outPricer = finpricer(“IRMonteCarlo”模型= HullWhiteModel DiscountCurve = myRC SimulationDates = ZeroDates)
outPricer = HWMonteCarlo with properties: NumTrials: 1000 RandomNumbers: [] DiscountCurve: [1x1 ratecurve] SimulationDates: [01- july -2019 01- january -2020 01- january -2021…型号:[1x1 finmodel。]HullWhite]
价格FixedBond
仪器
使用价格
来计算的价格FixedBond
乐器。
[Price,outPR] = Price (outprice,FixB,[“所有”])
价格= 115.0303
outPR = priceresult with properties:结果:[1x4表]PricerData: [1x1 struct]
outPR。结果
ans =1×4表价格三角洲伽马织女星 ______ _______ ______ ____ 115.03 -397.13 1430.4 0
应用IRMonteCarlo定价模型和线性高斯2f模型进行价格封顶仪
这个例子展示了为一个对象定价的工作流帽
仪器在使用LinearGaussian2F
模型和IRMonteCarlo
定价方法。
创建帽
仪对象
使用fininstrument
要创建帽
仪对象。
CapOpt = fininstrument(“帽子”成熟= datetime(2022、9、15),罢工= 0.01,= 2,重置名称=“cap_option”)
CapOpt = Cap with properties: Strike: 0.0100成熟度:15-Sep-2022 ResetOffset: 0重置:2 Basis: 0 Principal: 100 ProjectionCurve: [0x0 ratecurve] DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT Name: "cap_option"
创建LinearGaussian2F
模型对象
使用finmodel
要创建LinearGaussian2F
模型对象。
线性高斯2fmodel = finmodel(“LinearGaussian2F”α= 0.07,Sigma1 = 0.01, Alpha2 = 0.5, Sigma2 = 0.006, = -0.7)的相关性
线性高斯2fmodel =线性高斯2f与属性:Alpha1: 0.0700 Sigma1: 0.0100 Alpha2: 0.5000 Sigma2: 0.0060相关性:-0.7000
创建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
要创建IRMonteCarlo
price对象和使用ratecurve
对象的“DiscountCurve”
名称-值对参数。
outPricer = finpricer(“IRMonteCarlo”模型= LinearGaussian2FModel DiscountCurve = myRC SimulationDates = ZeroDates)
outPricer = G2PPMonteCarlo with properties: NumTrials: 1000 RandomNumbers: [] DiscountCurve: [1x1 ratecurve] SimulationDates: [01- july -2019 01-Jan-2020 01-Jan-2021…型号:[1x1 finmodel。]LinearGaussian2F]
价格帽
仪器
使用价格
来计算的价格和敏感性帽
乐器。
[Price,outPR] = Price (outprice,CapOpt,[“所有”])
价格= 1.2156
outPR = priceresult with properties:结果:[1x4表]PricerData: [1x1 struct]
outPR。结果
ans =1×4表价格三角洲伽马织女星 ______ ______ _____ ________________ 126.5 - -157.38 1.2156 - 131.37 11048
使用IRMonteCarlo定价器和BraceGatarekMusiela模型来定价下限仪器
这个例子展示了为一个对象定价的工作流地板上
仪器在使用BraceGatarekMusiela
模型和IRMonteCarlo
定价方法。
创建地板仪器对象
使用fininstrument
要创建地板上
仪对象。
FloorOpt = fininstrument(“地板”成熟= datetime(2022、9、15),罢工= 0.05,= 1,重置名称=“floor_option”)
FloorOpt = Floor with properties: Strike: 0.0500成熟度:15-Sep-2022 ResetOffset: 0重置:1 Basis: 0 Principal: 100 ProjectionCurve: [0x0 ratecurve] DaycountAdjustedCashFlow: 0 BusinessDayConvention:“实际”节假日:NaT名称:"floor_option"
创建BraceGatarekMusiela模型对象
使用finmodel
要创建BraceGatarekMusiela
模型对象。
BGMVolFunc = @ (t) ((1) * (2) t +)。* exp (* t)——(3)+ (4);BGMVolParams = [.]3 -。02.7.14];numRates = 20;VolFunc(1:numRates-1) = {@(t) BGMVolFunc(BGMVolParams,t)};Beta = .08;CorrFunc = @(i,j,Beta) exp(-Beta*abs(i-j));相关性= CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),Beta);BGM = finmodel“BraceGatarekMusiela”波动率= VolFunc =相关性,相关性期= 1);
创建ratecurve
对象
创建一个ratecurve
对象使用ratecurve
.
Settle = datetime(2019,1,1);类型=“零”;ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20])]';ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293]';ZeroDates = Settle + ZeroTimes;比率曲线(“零”、结算、ZeroDates ZeroRates)
myRC =带有属性的利率曲线:类型:“零”复合:-1基础:0日期:[9x1 datetime]利率:[9x1 double]结算:01- 01- 2019 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”
创建IRMonteCarlo
定价的人对象
使用finpricer
要创建IRMonteCarlo
price对象和使用ratecurve
对象的“DiscountCurve”
名称-值对参数。
outPricer = finpricer(“IRMonteCarlo”模型= BGM DiscountCurve = myRC SimulationDates = ZeroDates)
outPricer = BGMMonteCarlo with properties: NumTrials: 1000 RandomNumbers: [] DiscountCurve: [1x1 ratecurve] SimulationDates: [01- july -2019 01-Jan-2020 01-Jan-2021…型号:[1x1 finmodel。]BraceGatarekMusiela]
价格地板上
仪器
使用价格
来计算的价格和敏感性地板上
乐器。
[Price,outPR] = Price (outprice,FloorOpt,[“所有”])
价格= 14.7975
outPR = priceresult with properties:结果:[1x3表]PricerData: [1x1 struct]
outPR。结果
ans =1×3表价格三角洲γ ______ _______ ______ 14.797 -398.43 1399.5
利用IRMonteCarlo定价模型和Black-Karasinski模型对固定债券工具进行定价
这个例子展示了为一个对象定价的工作流FixedBond
仪器在使用BlackKarasinski
模型和IRMonteCarlo
定价方法。
创建FixedBond
仪对象
使用fininstrument
要创建FixedBond
仪对象。
固定b =仪表(“FixedBond”成熟= datetime(2022、9、15),CouponRate = 0.05, =“fixed_bond”)
FixB = FixedBond与属性:CouponRate: 0.0500周期:2基础:0结束月规则:1本金:100 daycountadjuststedcashflow: 0 BusinessDayConvention:“实际”假期:NaT发行日期:NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT到期日期:15 sep -2022名称:“fixed_bond”
创建BlackKarasinski
模型对象
使用finmodel
要创建BlackKarasinski
模型对象。
BlackKarasinskiModel = finmodel(“BlackKarasinski”,“α”, 0.02,“σ”, 0.34)
BlackKarasinskiModel = BlackKarasinski属性:阿尔法:0.0200西格玛:0.3400
创建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
要创建IRMonteCarlo
price对象和使用ratecurve
对象的“DiscountCurve”
名称-值对参数。
outPricer = finpricer(“IRMonteCarlo”模型= BlackKarasinskiModel DiscountCurve = myRC SimulationDates = datetime(2019、3、15)+ calmonths(0:6:48)”)
outPricer = BKMonteCarlo与属性:NumTrials: 1000 RandomNumbers: [] DiscountCurve: [1x1 ratecurve] SimulationDates: [15- march -2019 15-Sep-2019 15- march -2020…型号:[1x1 finmodel。]BlackKarasinski]
价格FixedBond
仪器
使用价格
来计算的价格FixedBond
乐器。
[Price,outPR] = Price (outprice,FixB,[“所有”])
价格= 113.3046
outPR = priceresult with properties:结果:[1x4表]PricerData: [1x1 struct]
outPR。结果
ans =1×4表价格三角洲伽马织女星 _____ _______ ______ ____ 113.3 - -310.39 -26744 2.03
版本历史
R2021b中引入R2022b:不建议使用序列号
虽然IRMonteCarlo
万博1manbetx支持序列号,datetime
建议使用值代替。的datetime
数据类型提供灵活的日期和时间格式、精确到纳秒的存储,以及考虑时区和夏令时的属性。
将连续日期数字或文本转换为datetime
值,使用datetime
函数。例如:
T = datetime(738427.656845093,“ConvertFrom”,“datenum”);Y =年
Y = 2021
没有计划删除对序列号输入的支持。万博1manbetx
R2022b:万博1manbetx支持Black-Karasinski模型
的名称-值参数选项模型
万博1manbetx支持一个“BlackKarasinski”
二叉树模型。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。