主要内容

OptionEmbeddedFixedBond

OptionEmbeddedFixedBond仪对象

描述

创建和定价OptionEmbeddedFixedBond嵌入固定债券工具的一个或多个选项的工具对象,使用此工作流:

  1. 使用精密仪器创建OptionEmbeddedFixedBond一个或多个期权嵌入固定债券工具的工具对象。

  2. 使用finmodel指定一个绿白色BlackKarasinskiBraceGatarekMusielaSABRBraceGatarekMusielaLinearGaussian2F模型OptionEmbeddedFixedBond仪对象。

  3. 选择一种定价方法。

    • 当使用一个绿白色BlackKarasinski模型,使用芬普瑟指定一个IRTree一个或多个的定价方法OptionEmbeddedFixedBond仪器。

    • 当使用一个绿白色BraceGatarekMusielaSABRBraceGatarekMusielaLinearGaussian2F模型,使用芬普瑟指定一个IRMonteCarlo一个或多个的定价方法OptionEmbeddedFixedBond仪器。

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

,以获取更多有关可用模型和定价方法的信息OptionEmbeddedFixedBond仪器,见选择仪器、型号和定价

创造

描述

例子

选项MBEDDEDFIXEDBONDBJ= fininstrument (仪器类型,'CouponRate“couponrate_value,”成熟'到期日'通话时间表”,call_schedule_value)创建一个OptionEmbeddedFixedBond通过指定仪器类型并设定属性用于指定的名称-值对参数CouponRate成熟,通话时间表

OptionEmbeddedFixedBond该工具支持带有嵌入期权金宝app的普通债券、带有嵌入期权的阶梯式息票债券和带有嵌入期权的摊销债券。有关更多信息,请参见更多关于

例子

选项MBEDDEDFIXEDBONDBJ= fininstrument (仪器类型,'CouponRate“couponrate_value,”成熟'到期日'PutSchedule,放置(附表)值)创建一个OptionEmbeddedFixedBond通过指定仪器类型并设定属性用于指定的名称-值对参数CouponRate成熟,PutSchedule

例子

选项MBEDDEDFIXEDBONDBJ= fininstrument (___名称,值设置可选属性除了前面语法中所需的参数之外,还使用其他名称-值对。例如,OptionEmbeddedFixedBondBodJ=有限仪器(“OptionEmbeddedFixedBond”,“耦合率”,0.034,“到期日”,日期时间(2019,1,30),“期间”,2,“基础”,1,“本金”,100,“调用时间表”,时间表,“调用的执行风格”,“美国”,“名称”,“OptionEmbeddedFixedBond工具”)创建一个OptionEmbeddedFixedBond仪器配有美式练习和通话时间表。可以指定多个名称-值对参数。

输入参数

全部展开

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

数据类型:烧焦|细胞|一串

OptionEmbeddedFixedBond名称-值对的观点

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

例子:OptionEmbeddedFixedBondBodJ=有限仪器(“OptionEmbeddedFixedBond”,“耦合率”,0.034,“到期日”,日期时间(2019,1,30),“期间”,2,“基础”,1,“本金”,100,“调用时间表”,时间表,“调用的执行风格”,“美国”,“名称”,“OptionEmbeddedFixedBond工具”)
要求OptionEmbeddedFixedBond名称-值对的观点

全部展开

票面利率OptionEmbeddedFixedBond,指定为逗号分隔的对,由“CouponRate”作为标量小数或NINST-借-1年利率或时间表的小数向量,其中第一列为日期,第二列为相关利率。日期表示息票利率有效的最后一天。

请注意

如果您正在创建一个或多个OptionEmbeddedFixedBond仪器和使用时间表,时间表规范适用于所有OptionEmbeddedFixedBond仪器。CouponRate不接受NINST-借-1作为输入的时间表单元格数组。

数据类型:双重的|时间表

到期日为OptionEmbeddedFixedBond,指定为逗号分隔的对,由“成熟”和标量日期时间、序列日期号、日期字符向量、日期字符串或NINST-借-1日期时间向量、连续日期号、日期字符向量的单元格数组或日期字符串数组。

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

数据类型:烧焦|细胞|双重的|一串|datetime

调用计划,指定为逗号分隔的对,由“通话时间表”以及通话日期和罢工的时间表。

如果为该时间表中的日期使用日期字符向量或日期字符串,则格式必须是可识别的datetime因为通话时间表属性存储为日期时间。

请注意

OptionEmbeddedFixedBond仪器支持金宝app通话时间表CallExerciseStylePutSchedulePutExerciseStyle,但不是两者都有。

如果您正在创建一个或多个OptionEmbeddedFixedBond仪器和使用时间表,时间表规范适用于所有OptionEmbeddedFixedBond仪器。通话时间表不接受NINST-借-1作为输入的时间表单元格数组。

数据类型:时间表

放置调度,指定为逗号分隔对组成“计划表”以及通话日期和罢工的时间表。

如果在此时间表中使用日期字符向量或日期字符串,则格式必须是可识别的datetime因为PutSchedule属性存储为日期时间。

请注意

OptionEmbeddedFixedBond仪器支持金宝app通话时间表CallExerciseStylePutSchedulePutExerciseStyle,但不是两者都有。

如果您正在创建一个或多个OptionEmbeddedFixedBond仪器和使用时间表,时间表规范适用于所有OptionEmbeddedFixedBond仪器。PutSchedule不接受NINST-借-1作为输入的时间表单元格数组。

数据类型:时间表

可选OptionEmbeddedFixedBond名称-值对的观点

全部展开

每年的付款频率,指定为逗号分隔对,包括“期间”和标量整数或NINST-借-1整数向量。价值观时期是:123.46,12

数据类型:双重的

看涨期权行使方式,指定为用逗号分隔对组成“CallExerciseStyle”和标量字符串或字符向量或NINST-借-1字符向量或字符串数组的单元格数组。

请注意

通话时间表是一个通话日期和罢工的时间表。如果不指定aCallExerciseStyle,然后基于通话时间表,默认值为CallExerciseStyle分配如下:

  • 如果有一个练习日期通话时间表,然后CallExerciseStyle是一个“欧洲”

  • 如果有两个练习日期通话时间表,然后CallExerciseStyle是一个“美国人”有起始日期和到期日。

  • 如果有两个以上的练习日期通话时间表,然后CallExerciseStyle是一个“百慕大”

如果你定义aCallExerciseStyle这与您在通话时间表,您将收到一条错误消息。

数据类型:一串|细胞|烧焦

看跌期权作业式,指定为逗号分隔对组成“PutExerciseStyle”和标量字符串或字符向量或NINST-借-1字符向量或字符串数组的单元格数组。

请注意

PutSchedule是一个通话日期和罢工的时间表。如果不指定aPutExerciseStyle,然后基于PutSchedule,默认值为PutExerciseStyle分配如下:

  • 如果有一个练习日期PutSchedule,然后PutExerciseStyle是一个“欧洲”

  • 如果有两个练习日期PutSchedule,然后PutExerciseStyle是一个“美国人”有起始日期和到期日。

  • 如果有两个以上的练习日期PutSchedule,然后PutExerciseStyle是一个“百慕大”

如果你定义aPutExerciseStyle这与您在PutSchedule,您将收到一条错误消息。

数据类型:一串|细胞|烧焦

日计数的基础,指定为逗号分隔的对,由“基础”和一个标量整数NINST-借-1使用以下值的整数向量:

  • 0-实际/实际

  • 1-30/360(新航)

  • 2-实际值/360

  • 3-实际/365

  • 4 - 30/360 (psa)

  • 5 - 30/360 (isda)

  • 6 - 30/360(欧洲)

  • 7 -实际/365(日文)

  • 8 - actual/actual (ICMA)

  • 9-实际/360(ICMA)

  • 10 -实际/365 (ICMA)

  • 11-30/360E(ICMA)

  • 12-实际/365(ISDA)

  • 13 -总线/ 252

有关更多信息,请参见基础

数据类型:双重的

名义本金金额或本金价值表,指定为逗号分隔的对,由“校长”和一个标量数字或NINST-借-1数字向量或时间表。

最重要的接受一个时间表,其中第一列是日期,第二列是相关的名义主值。日期表示主值有效的最后一天。

请注意

如果您正在创建一个或多个OptionEmbeddedFixedBond仪器和使用时间表,时间表规范适用于所有OptionEmbeddedFixedBond仪器。最重要的不接受NINST-借-1作为输入的时间表单元格数组。

数据类型:双重的|时间表

指示现金流量是否根据天数约定调整的标志,指定为逗号分隔的对,由“DayCountAdjusted现金流”和标量逻辑或NINST-借-1值为的逻辑向量真正的

数据类型:逻辑

工作日约定,指定为逗号分隔对,由“BusinessDayConvention”和标量字符串或字符向量或NINST-借-1字符向量或字符串数组的单元格数组。工作日惯例的选择决定了如何对待非工作日。非营业日定义为周末加上任何其他不营业的日期(例如,法定假日)。值:

  • “实际的”-非工作时间实际上被忽略了。在非营业日的现金流量被假定在实际日进行分配。

  • “跟随”-假定在一个非营业日的现金流将在下一个营业日分配。

  • “修改如下”-假定在一个非营业日的现金流将在下一个营业日分配。但是,如果下一个营业日在不同的月份,则以上一个营业日为准。

  • “以前”-假定在非营业日的现金流是在前一个营业日分配的。

  • “修改前”-假定在非营业日的现金流是在前一个营业日分配的。但如前一个营业日在不同的月份,则以下一个营业日为准。

数据类型:烧焦|细胞|一串

用于计算工作日的假日,指定为逗号分隔的对,由“假日”使用NINST-借-1日期时间向量、序列日期数字、日期字符向量的单元格数组或日期字符串数组。例如:

H =假期(datetime(今天),datetime(2025、12、15));OptionEmbeddedFixedBondObj = fininstrument(“OptionEmbeddedFixedBond”、“CouponRate”,0.34,“成熟”,datetime(2025、12、15),…“CallSchedule”,时间表,“CallExerciseStyle”、“美国”、“假日”,H)

数据类型:双重的|细胞|datetime|一串

用于在以下情况下生成日期的月末规则标志:成熟一个月只有30天或更少的月末日期,指定为逗号分隔对,由“EndMonthRule”和标量逻辑或NINST-借-1值为的逻辑向量真正的

  • 如果你设置EndMonthRule在美国,该软件忽略了这一规则,也就是说,付款日期总是同一个数字日期。

  • 如果你设置EndMonthRule真正的在美国,该软件会设定规则,这意味着付款日期总是当月的最后一天。

数据类型:逻辑

债券发行日期,指定为逗号分隔对,由“发布日期”和标量日期时间、序列日期号、日期字符向量、日期字符串或NINST-借-1日期时间向量、连续日期号、日期字符向量的单元格数组或日期字符串数组。

如果使用日期字符向量或日期字符串,则格式必须可由用户识别datetime因为签发日期属性存储为日期时间。

数据类型:双重的|烧焦|细胞|一串|datetime

不规则的第一个优惠券日期,指定为逗号分隔的对,由“FirstCouponDate”和标量日期时间、序列日期号、日期字符向量、日期字符串或NINST-借-1日期时间向量、连续日期号、日期字符向量的单元格数组或日期字符串数组。

什么时候FirstCouponDateLastCouponDate都是指定的,FirstCouponDate优先确定息票支付结构。如果没有指定FirstCouponDate,现金流支付日期根据其他输入确定。

如果使用日期字符向量或日期字符串,则格式必须可由用户识别datetime因为FirstCouponDate属性存储为日期时间。

数据类型:双重的|烧焦|细胞|一串|datetime

不规则的最后息票日期,指定为逗号分隔对,由“LastCouponDate”和标量日期时间、序列日期号、日期字符向量、日期字符串或NINST-借-1日期时间向量、连续日期号、日期字符向量的单元格数组或日期字符串数组。

如果您指定LastCouponDate但不是FirstCouponDateLastCouponDate决定债券的息票结构。债券的息票结构在LastCouponDate,不管它落在哪里,后面只跟随着债券的到期日现金流。如果没有指定LastCouponDate,现金流支付日期根据其他输入确定。

如果使用日期字符向量或日期字符串,则格式必须可由用户识别datetime因为LastCouponDate属性存储为日期时间。

数据类型:双重的|烧焦|细胞|一串|datetime

预付款的开始日期,指定为逗号分隔对组成StartDate可以的和标量日期时间、序列日期号、日期字符向量、日期字符串或NINST-借-1日期时间向量、连续日期号、日期字符向量的单元格数组或日期字符串数组。

如果使用日期字符向量或日期字符串,则格式必须可由用户识别datetime因为起始日期属性存储为日期时间。

数据类型:烧焦|细胞|双重的|一串|datetime

仪器的用户定义名称,指定为逗号分隔对,包括“名字”和标量字符串或字符向量或NINST-借-1字符向量或字符串数组的单元格数组。

数据类型:烧焦|细胞|一串

性质

全部展开

票面年率,以标量小数或NINST-借-1小数向量或时间表。

数据类型:双重的|时间表

到期日,以标量datetime或NINST-借-1向量的日期时间。

数据类型:datetime

呼叫时间表,作为时间表返回。

数据类型:datetime

把时间表,作为时间表返回。

数据类型:datetime

每年的优惠券,以标量整数或NINST-借-1向量的整数。

数据类型:双重的

以天计数为基础,以标量整数或NINST-借-1向量的整数。

数据类型:双重的

作为标量数字或标量值返回的名义本金数量或本金值表NINST-借-1数字向量或时间表。

数据类型:时间表|双重的

指示现金流量是否按日计约定调整的标志,返回为标量逻辑或NINST-借-1值为的逻辑向量真正的

数据类型:逻辑

工作日约定,作为字符串或NINST-借-1字符串数组。

数据类型:一串

用于计算工作日的假期,作为NINST-借-1向量的日期时间。

数据类型:datetime

用于在以下情况下生成日期的月末规则标志:成熟一个月只有30天或更少的月末日期是否作为标量逻辑或NINST-借-1逻辑值的向量。

数据类型:逻辑

债券发行日期,返回标量日期时间或NINST-借-1向量的日期时间。

数据类型:datetime

不规则的第一个优惠券日期,返回标量日期时间或NINST-借-1向量的日期时间。

数据类型:datetime

不规则的最后息票日期,以标量日期时间或NINST-借-1向量的日期时间。

数据类型:datetime

付款的远期开始日期,以标量datetime或NINST-借-1向量的日期时间。

数据类型:datetime

此属性是只读的。

调用选项练习样式,以标量字符串或NINST-借-1值为的字符串数组“欧洲”“美国人”“百慕大”

数据类型:一串

此属性是只读的。

看跌期权练习样式,以标量字符串或NINST-借-1值为的字符串数组“欧洲”“美国人”“百慕大”

数据类型:一串

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

数据类型:一串

对象的功能

setCallExercisePolicy 设置的呼叫练习策略OptionEmbeddedFixedBondOptionEmbeddedFloatBondConvertibleBond仪器
setPutExercisePolicy 制定锻炼政策OptionEmbeddedFixedBondOptionEmbeddedFloatBondConvertibleBond仪器

例子

全部折叠

这个示例展示了为三种可调用的美式、欧式和百慕大式锻炼样式定价的工作流OptionEmbeddedFixedBond当你使用绿白色模型和IRTree定价方法。

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

解决= 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]';zeroates = Settle + ZeroTimes;复合= 1;ZeroCurve = ratecurve (“零”、结算、ZeroDates ZeroRates,“复利”、复合);

创建OptionEmbeddedFixedBond仪的对象

使用精密仪器创建三个OptionEmbeddedFixedBond乐器对象具有不同的练习风格。

到期日=日期时间(2024,1,1);期权嵌入债券(百慕大可赎回债券)罢工=[100;100];演习日期=[日期时间(2020,1,1);日期时间(2024,1,1)];周期=1;CallSchedule=时间表(练习日期、罢工、,“变化无常”,{“罢工时间表”});CallableBondBermudan = fininstrument (“OptionEmbeddedFixedBond”“成熟”成熟,...“CouponRate”,0.025,“期间”期,...“通话时间表”CallSchedule,“CallExerciseStyle”“百慕大”
CallableBondBermudan = OptionEmbeddedFixedBond with properties: CouponRate: 0.0250 Period: 1 Basis: 0 EndMonthRule: 1 Principal: 100 DaycountAdjustedCashFlow: 0 BusinessDayConvention:“实际”假期:NaT IssueDate: NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT Maturity: 01-Jan-2024 CallDates: [2x1 datetime] PutDates:[0x1 datetime] CallSchedule: [2x1时刻表]PutSchedule: [0x0时刻表]callexercisstyle: " bermuan " putexercisstyle: [0x0 string] Name: ""
期权嵌入债券(美国可赎回债券)罢工=100;练习日期=日期时间(2024,1,1);CallSchedule=时间表(练习日期、罢工、,“变化无常”,{“罢工时间表”});时间= 1;CallableBondAmerican = fininstrument (“OptionEmbeddedFixedBond”“成熟”成熟,...“CouponRate”,0.025,“期间”期,...“通话时间表”CallSchedule,“CallExerciseStyle”“美国人”
CallableBondAmerican=OptionEmbeddedFixedBond with properties:CouponRate:0.0250期间:1基础:0月底规则:1本金:100天计数调整现金流:0营业日约定:“实际”假日:NaT发行日期:NaT FirstCouponDate:NaT LastCouponDate:NaT起始日期:NaT到期日期:2024年1月1日CallDates:01-Jan-2024计算日期:[0x1日期]CallSchedule:[1x1时间表]PutSchedule:[0x0时间表]CallExerciseStyle:“美国”PutExerciseStyle:[0x0字符串]名称:“
%期权嵌入债券(欧洲可赎回债券)罢工=100;练习日期=日期时间(2024,1,1);CallSchedule=时间表(练习日期、罢工、,“变化无常”,{“罢工时间表”});时间= 1;CallableBondEuropean = fininstrument (“OptionEmbeddedFixedBond”“成熟”成熟,...“CouponRate”,0.025,“期间”期,...“通话时间表”CallSchedule)
callablebon欧洲= OptionEmbeddedFixedBond属性:CouponRate: 0.0250 Period: 1 Basis: 0 EndMonthRule: 1 Principal: 100 DaycountAdjustedCashFlow: 0 BusinessDayConvention:“实际”假期:NaT IssueDate: NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT Maturity: 01-Jan-2024 CallDates: 01-Jan-2024 PutDates:[0x1 datetime] CallSchedule: [1x1时刻表]PutSchedule: [0x0时刻表]callexercisstyle: "european" putexercisstyle: [0x0 string] Name: ""

创建绿白色模型对象

使用finmodel创建绿白色模型对象。

VolCurve = 0.01;AlphaCurve = 0.1;HWModel = finmodel (“HullWhite”“α”AlphaCurve,“σ”, VolCurve);

创建IRTree定价的人对象

使用芬普瑟创建IRTree对象,并使用ratecurve对象“折扣曲线”名称-值对的论点。

HWTreePricer = finpricer (“IRTree”“模型”,HW型号,“折扣曲线”ZeroCurve,“树人”,零日期)
HWTreePricer = HWBKTree with properties: Tree: [1x1 struct] TreeDates: [10x1 datetime] Model: [1x1 finmodel. HWTreePricer = HWBKTree折现曲线:[1x1率曲线]

价格OptionEmbeddedFixedBond仪器

使用价格计算三者的价格和敏感性OptionEmbeddedFixedBond仪器。

[Price, outPR] = Price (HWTreePricer, callablebondbermuan,[价格,outPR] =价格)“所有”])
价格=103.2729
outPR=priceresult,带属性:结果:[1x4表]价格数据:[1x1结构]
输出结果
ans=1×4表价格织女星伽马三角洲103.27-148.28 1375.9-290.33
[Price, outPR] = Price (HWTreePricer,CallableBondAmerican,[“所有”])
价格= 100
outPR=priceresult,带属性:结果:[1x4表]价格数据:[1x1结构]
输出结果
ans=1×4表价格织女星γδ  _____ ____ _____ _____ 100 0 0 0
[Price, outPR] = Price (HWTreePricer, callablebon欧洲,[“所有”])
价格=107.7023
outPR=priceresult,带属性:结果:[1x4表]价格数据:[1x1结构]
输出结果
ans=1×4表价格织女星γδ  _____ ____ ______ _______ 107.7 0 4086.4 - -602.56

这个例子展示了给多个可调用对象定价的工作流OptionEmbeddedFixedBond当你使用一种绿白色模型和IRTree定价方法。

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

解决= 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]';zeroates = Settle + ZeroTimes;复合= 1;ZeroCurve = ratecurve (“零”、结算、ZeroDates ZeroRates,“复利”、复合);

创建OptionEmbeddedFixedBond仪的对象

使用精密仪器创建OptionEmbeddedFixedBond三种期权嵌入固定债券工具的工具对象。

到期= datetime([2025,1,1;2026、1、1;2027年,1,1);期权嵌入债券(百慕大可赎回债券)Strike = [100;200;300);ExerciseDates = datetime([2022,1,1;2023、1、1;2024年,1,1);CallSchedule =时间表(ExerciseDates,罢工,“变化无常”,{“罢工时间表”});时间= 1;CallableBondBermudan = fininstrument (“OptionEmbeddedFixedBond”“成熟”成熟,...“CouponRate”,0.025,“期间”期,...“通话时间表”CallSchedule,“CallExerciseStyle”“百慕大”
CallableBondBermudan =3×1对象3x1 optionembeddeddifxedbond数组,具有以下属性:耦合利率期间基准月底规则本金日数调整现金流业务日会议假期发布日期FirstCouponDate LastCouponDate开始日期到期日调用日期调用日期调用计划调用执行样式PutExecuteStyle名称

当你创建多个OptionEmbeddedFixedBond仪器和使用一个时间表通话时间表,时间表规范适用于所有的OptionEmbeddedFixedBond仪器。这个通话时间表输入参数不接受NINST-借-1作为输入的时间表单元格数组。

创建绿白色模型对象

使用finmodel创建绿白色模型对象。

VolCurve = 0.01;AlphaCurve = 0.1;HWModel = finmodel (“HullWhite”“α”AlphaCurve,“σ”, VolCurve);

创建IRTree定价的人对象

使用芬普瑟创建IRTree对象,并使用ratecurve对象“折扣曲线”名称-值对的论点。

HWTreePricer = finpricer (“IRTree”“模型”,HW型号,“折扣曲线”ZeroCurve,“树人”,零日期)
HWTreePricer = HWBKTree with properties: Tree: [1x1 struct] TreeDates: [10x1 datetime] Model: [1x1 finmodel. HWTreePricer = HWBKTree折现曲线:[1x1率曲线]

价格OptionEmbeddedFixedBond仪器

使用价格来计算价格和敏感度OptionEmbeddedFixedBond仪器。

[Price, outPR] = Price (HWTreePricer, callablebondbermuan,[价格,outPR] =价格)“所有”])
价格=3×1104.5001 102.0649 97.6664
outPR =3×1对象3x1带有属性的pricerresult数组
输出结果
ans=1×4表价格织女星γδ  _____ _______ ______ _______ 104.5 -166.73 4134.2 -584.34
ans=1×4表价格织女星伽马三角洲102.06-201.07 4850.3-621.72
ans=1×4表价格织女星γδ  ______ _______ ______ _______ 97.666 -84.933 6857.7 -743.76

这个例子展示了定价的工作流程OptionEmbeddedFixedBondOption仪器在使用时绿白色模型和IRMonteCarlo定价方法。

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

结算=日期时间(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]';zeroates = Settle + ZeroTimes;myRC = ratecurve (“零”、结算、ZeroDates ZeroRates)
myRC = ratecurve with properties: Type: "zero" compound: -1 Basis: 0 date: [10x1 datetime] Rates: [10x1 double] Settle: 01-Jan-2019 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"

创建OptionEmbeddedFixedBondOption仪对象

使用精密仪器创建OptionEmbeddedFixedBondOption仪对象。

%期权嵌入债券(欧洲可赎回债券)成熟= datetime(2022、9、15);罢工= 100;ExerciseDates = datetime(2024、1、1);CallSchedule =时间表(datetime(2020,3,15), 50);时间= 1;CallableBondEuropean = fininstrument (“OptionEmbeddedFixedBond”“成熟”成熟,...“CouponRate”,0.025,“期间”期,...“通话时间表”CallSchedule)
callablebon欧洲= OptionEmbeddedFixedBond with properties: CouponRate: 0.0250 Period: 1 Basis: 0 EndMonthRule: 1 Principal: 100 DaycountAdjustedCashFlow: 0 BusinessDayConvention:“实际”假期:NaT issueddate: NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT Maturity: 15- september -2022 CallDates: 15-Mar-2020 PutDates:[0x1 datetime] CallSchedule: [1x1时刻表]PutSchedule: [0x0时刻表]callexercisstyle: "european" putexercisstyle: [0x0 string] Name: ""

创建绿白色模型对象

使用finmodel创建绿白色模型对象。

HullWhiteModel = finmodel (“HullWhite”“α”,0.32,“西格玛”,0.49)
HullWhiteModel=具有以下特性的HullWhite:α:0.3200西格玛:0.4900

创建IRMonteCarlo定价的人对象

使用芬普瑟创建IRMonteCarlo对象,并使用ratecurve对象“折扣曲线”名称-值对的论点。

outPricer = finpricer (“IRMonteCarlo”“模型”HullWhiteModel,“折扣曲线”,myRC,“SimulationDates”datetime (2019 3 15) + calmonths(0:6:48)”)
outPricer=HWMontarlo,属性:NumTrials:1000随机数:[折扣曲线:[1x1费率曲线]模拟日期:[2019年3月15日-2019年9月15日-2020年3月15日…]模型:[1x1 finmodel.HullWhite]

价格OptionEmbeddedFixedBondOption仪器

使用价格计算产品的价格和敏感度OptionEmbeddedFixedBondOption仪器

(价格、outPR) =价格(outPricer, CallableBondEuropean“所有”])
价格= 58.1882
outPR=priceresult,带属性:结果:[1x4表]价格数据:[1x1结构]
输出结果
ans=1×4表价格三角洲伽马织女星  ______ _______ ______ _____ 58.188 -125.43 356.04 18.24

此示例显示了为可调用服务定价的工作流OptionEmbeddedFixedBond当您使用BlackKarasinski模型和IRTree定价方法。

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

set = datetime(2018, 1,1);ZeroTimes = calyears(1:4)”;ZeroRates = (0.035;0.042147;0.047345;0.052707);zeroates = Settle + ZeroTimes;复合= 1;ZeroCurve = ratecurve (“零”、结算、ZeroDates ZeroRates,“复利”复合)
ZeroCurve=具有属性的利率曲线:类型:“零”复利:1基础:0日期:[4x1日期时间]利率:[4x1双倍]结算:2018年1月1日InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“上一个”

创建OptionEmbeddedFixedBond仪对象

使用精密仪器创建OptionEmbeddedFixedBond器械对象采用美式运动风格。

CouponRate=0.0425;Strike=[95;98];ExerciseDates=datetime(2021,1,1);datetime(2022,1,1)];到期日=datetime(2022,1,1);期间=1;CallSchedule=时间表(ExerciseDates,Strike,“变化无常”,{“罢工时间表”});CallableBond = fininstrument (“OptionEmbeddedFixedBond”“成熟”成熟,...“CouponRate”,耦合率,“期间”期,...“通话时间表”CallSchedule,...“CallExerciseStyle”“美国人”...“名字”“我的可赎回债券”
CallableBond = OptionEmbeddedFixedBond with properties: CouponRate: 0.0425 Period: 1 Basis: 0 EndMonthRule: 1 Principal: 100 DaycountAdjustedCashFlow: 0 BusinessDayConvention:“实际”假期:NaT IssueDate: NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT Maturity: 01-Jan-2022 CallDates: [2x1 datetime] PutDates:[0x1 datetime] CallSchedule: [2x1时刻表]PutSchedule: [0x0时刻表]callexercisstyle: "american" putexercisstyle: [0x0 string] Name: "MyCallableBond"

创建BlackKarasinski模型对象

使用finmodel创建BlackKarasinski模型对象。

VolCurve = 0.01;AlphaCurve = 0.1;BKModel = finmodel (“BlackKarasinski”“α”AlphaCurve,“σ”VolCurve)
BKModel = BlackKarasinski属性:Alpha: 0.1000 Sigma: 0.0100

创建IRTree定价的人对象

使用芬普瑟创建IRTree对象,并使用ratecurve对象“折扣曲线”名称-值对的论点。

BKTreePricer=finpricer(“IRTree”“模型”,BKModel,“折扣曲线”ZeroCurve,“树人”,零日期)
BKTreePricer=HWBKTree,具有以下属性:Tree:[1x1 struct]TreeDates:[4x1 datetime]Model:[1x1 finmodel.BlackKarasinski]折扣曲线:[1x1 ratecurve]

价格OptionEmbeddedFixedBond仪器

使用价格计算产品的价格和敏感度OptionEmbeddedFixedBond仪器

[价格,价格结果]=价格(BKTREPRICER,可赎回债券)
价格= 92.5235
pricerresults = pricerresult with properties: Results: [1x1 table]

检查输出PriceResults.PricerData.PriceTree.ExTree,其中包含练习指示符数组。在单元格数组中,a1表示已行使期权和0表示未执行的选项。

PriceResults.PricerData.PriceTree.ExTree {5}
ans =1 x7逻辑阵列1 1 1 1 1 1 1

没有期权被执行。

PriceResults.PricerData.PriceTree.ExTree {4}
ans =1 x7逻辑阵列0 0 0 0 0 0

仪器在所有节点上运行。

PriceResults.PricerData.PriceTree.ExTree{3}
ans =1x5逻辑阵列0 0 0 0

没有期权被执行。

PriceResults.PricerData.PriceTree.ExTree{2}
ans =1 x3逻辑阵列0 0 0

没有期权被执行。

使用。查看从根节点到达每个节点的概率PriceResults.PricerData.PriceTree.ProbTree

PriceResults.PricerData.PriceTree.ProbTree{2}
ans =1×30.1667 0.6667 0.1667
PriceResults.PricerData.PriceTree.ProbTree{3}
ans =1×50.0203 0.2206 0.5183 0.2206 0.0203
PriceResults.PricerData.PriceTree.ProbTree{4}
ans =1×70.0018 0.0395 0.2370 0.4433 0.2370 0.0395 0.0018
PriceResults.PricerData.PriceTree.ProbTree{5}
ans =1×70.0018 0.0395 0.2370 0.4433 0.2370 0.0395 0.0018

使用查看练习概率PriceResults.PricerData.PriceTree.ExProbTreePriceResults.PricerData.PriceTree.ExProbTree包含练习概率。单元格数组中的每个元素都是一个包含0是指没有锻炼的地方,或者是到达锻炼发生地点的概率。

PriceResults.PricerData.PriceTree.ExProbTree {5}
ans =1×70.0018 0.0395 0.2370 0.4433 0.2370 0.0395 0.0018
PriceResults.PricerData.PriceTree.ExProbTree {4}
ans =1×70 0 0 0 0 0
PriceResults.PricerData.PriceTree.ExProbTree {3}
ans =1×50 0 0 0
PriceResults.PricerData.PriceTree.ExProbTree {2}
ans =1×30 0 0

使用。查看每个树级别的练习概率PriceResults.PricerData.PriceTree.ExProbsByTreeLevelPriceResults.PricerData.PriceTree.ExProbsByTreeLevel是一个数组,其中每一行保存给定选项在每个树观察时间的执行概率。

PriceResults.PricerData.PriceTree.ExProbsByTreeLevel
ans =1×5000 1.0000

更多关于

全部展开

提示

在创建OptionEmbeddedFixedBond对象,则可以修改通话时间表CallExerciseStyle使用setCallExercisePolicy. 或者,您可以修改PutSchedulePutExerciseStyle值使用setPutExercisePolicy

介绍了R2020a