主要内容

地板上

地板上仪对象

描述

创建和定价地板上使用此工作流的更多地板仪器之一的仪器对象:

  1. 使用fininstrument创建一个地板上仪器对象为更多的地板仪器之一。

  2. 使用finmodel指定一个HullWhiteBlackkarasinski.黑色的正常的BraceGatarekMusielasabrbracegatarekmusiela.,或LinearGaussian2F模型为地板上仪对象。

  3. 选择定价方法。

    • 使用时HullWhiteBlackkarasinski.黑色的,或正常的模型,使用finpricer指定一个正常的黑色的HullWhite,或IRTree一个或多个的定价方法地板上仪器。

    • 使用时HullWhiteBraceGatarekMusielasabrbracegatarekmusiela.,或LinearGaussian2F模型,使用finpricer指定一个Irmontecarlo.一个或多个的定价方法地板上仪器。

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

欲了解更多关于a的可用模型和定价方法的信息地板上仪器,看选择仪器、型号和定价

创建

描述

例子

FloorOpt= fininstrument(InstrumentType,'罢工',strike_value,'成熟”,maturity_date)创建一个地板上通过指定提供更多楼层仪器的对象InstrumentType并设置属性对于所需的名称值对参数罢工成熟

地板上仪器支持香草和摊销地板金宝app。

例子

FloorOpt= fininstrument(___名称,值设置可选属性除了前面语法中要求的参数外,还使用了其他的名称-值对。例如,FloorOpt = fininstrument(“地板”,“罢工”,100年,“成熟”,datetime(2019, 30),“重置”,4,“校长”,100年,“ResetOffset”,1,“基础”,4,“DaycountAdjustedCashFlow”,的确,“BusinessDayConvention”、“关注”、“ProjectionCurve”,ratecurve_object,“名字”,“floor_option”)创建一个地板上到期日为100,到期日期为2019年1月30日的票据。可以指定多个名称-值对参数。

输入参数

全部展开

仪器类型,指定为具有值的字符串“地面”的字符向量'地面', 一个NINST——- - - - - -1字符串数组与值“地面”,或者一个NINST——- - - - - -1值为的字符向量单元格数组'地面'

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

地板上名称-值对的观点

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

例子:FloorOpt = fininstrument(“地板”,“罢工”,100年,“成熟”,datetime(2019, 30),“重置”,4,“校长”,100年,“ResetOffset”,1,“基础”,4,“DaycountAdjustedCashFlow”,的确,“BusinessDayConvention”、“关注”、“ProjectionCurve”,ratecurve_object,“名字”,“floor_option”)
要求地板上名称-值对的观点

全部展开

选项罢工价格值,指定为逗号分隔对“罢工”一个标量非负小数NINST——- - - - - -1非负小数的向量。

数据类型:

CAP成熟日期,指定为逗号分隔对组成“ExerciseDate”和标量日期时间、串行日期号、日期字符向量、日期字符串或NINST——- - - - - -1日期时间向量、连续日期号、日期字符向量的单元格数组或日期字符串数组。

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

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

可选的地板上名称-值对的观点

全部展开

每年重置频率支付,指定为逗号分隔对组成“重置”和一个标量数字或一个NINST——- - - - - -1数值向量。

数据类型:

日计数基础,指定为逗号分隔对组成“基础”和一个标量整数NINST——- - - - - -1与以下值的整数矢量:

  • 0 -实际/实际

  • 1 - 30/360 (sia)

  • 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数字向量或时间表。

主要接受A.时间表,第一列是日期,第二列是其相关主值。日期表示主值有效的最后一天。

笔记

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

数据类型:|时间表

滞后于速率设置,指定为逗号分隔对组成“ResetOffset”和一个标量数字或一个NINST——- - - - - -1数值向量。

数据类型:

标记以根据实际期间日计数调整现金流量,指定为逗号分隔的对,由“DaycountAdjustedCashFlow”一个标量逻辑或NINST——- - - - - -1值为的逻辑向量真正的

数据类型:逻辑

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

  • “实际”- 非商业日子有效忽略。假设在实际日期分发非工作日的现金流量。

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

  • “modifiedfollow”-假定在一个非营业日的现金流将在下一个营业日分配。但是,如果下一个营业日在不同的月份,则采用前一个营业日。

  • “以前”- 假设落在非商业日的现金流量在以前的工作日分发。

  • “modifiedprevious”- 假设落在非商业日的现金流量在以前的工作日分发。但是,如果以前的工作日在不同的月份,则采用以下工作日。

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

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

H =假期(datetime(今天),datetime(2025、12、15));FloorOpt = fininstrument(“地板”,“罢工”,100年,“成熟”,datetime(2025、12、15),“假期”,H)

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

用于预测未来现金流量的利率曲线,指定为逗号分隔的对,由'投影诊断'和一个标量ratecurve对象或一个NINST——- - - - - -1向量的ratecurve对象。此对象是使用ratecurve.如果远期曲线与贴现曲线不同,请使用此可选输入。

数据类型:目的

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

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

属性

全部展开

选项罢工价格值,作为标量非负数字或一个NINST——- - - - - -1非负值向量。

数据类型:

下限到期日期,作为标量日期时间或NINST——- - - - - -1向量的日期时间。

数据类型:datetime

重置每年的频率支付,返回为标量数字或NINST——- - - - - -1数值向量。

数据类型:

日计数的基础,作为一个标量整数或NINST——- - - - - -1整数矢量。

数据类型:

本金金额或主值计划,作为标量数字或一个NINST——- - - - - -1数字矢量的本金数额或一个时间表的本金价值时间表。

数据类型:|时间表

速率设置滞后,以标量数字或NINST——- - - - - -1数值向量。

数据类型:

标志,以根据实际期间日计数调整现金流,返回为标量逻辑或NINST——- - - - - -1逻辑价值矢量与价值观真正的

数据类型:逻辑

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

数据类型:字符串

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

数据类型:datetime

用于预测未来现金流量的利率曲线,以标量返回ratecurve对象或一个NINST——- - - - - -1向量的ratecurve对象。

数据类型:目的

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

数据类型:字符串

例子

全部折叠

这个例子展示了给香草定价的工作流程地板上当你使用黑色的模型和黑色的定价方法。

创建ratecurve对象

创建一个ratecurve物体使用ratecurve用于潜在的利率曲线地板上乐器。

解决= datetime(2018、9、15);类型=“零”;Zerotimes = [Calmonths(6)Calyears([1 2 3 4 5 7 10 20 30])]';氮酸盐= [0.0052 0.0055 0.0061 0.0073 0.02222 0.022]'zeroates = Settle + ZeroTimes;myrc = ratecurve(“零”、结算、ZeroDates ZeroRates)
myRC = ratecurve with properties: Type: "zero" compound: -1 Basis: 0 date: [10x1 datetime] Rates: [10x1 double] Settle: 15- september -2018 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"

创建地板上仪对象

使用fininstrument创建一个地板上仪对象。

FloorOpt = fininstrument (“地面”'到期'datetime(2022、9、15),“罢工”, 0.03,'投影诊断'myRC)
Flooropt =地板具有属性:罢工:0.0300成熟:15-SEP-2022 ResetOffset:0重置:1基础:0校长:100个投影诊断:[1x1误会] DaycountAdjustedCashflow:0 BusinessDayConvention:“实际”假期:NAT名称:“”

创建黑色的模型对象

使用finmodel创建一个黑色的模型对象。

BlackModel = finmodel (“黑色”“波动”,0.2)
BlackModel =带有属性的黑色:波动性:0.2000位移:0

创建黑色的Pricer对象

使用finpricer创建一个黑色的Pricer对象并使用ratecurve对象的“DiscountCurve”名称值对参数。

outPricer = finpricer (“分析”“DiscountCurve”myRC,“模型”BlackModel)
outPricer =黑色的属性:模型:[1x1 finmodel。黑色]折扣曲线:[1x1率曲线]

价格地板上仪器

使用价格来计算价格地板上乐器。

[Price, outPR] = Price (outPricer,FloorOpt)
价格= 8.0878
outPR = pricerresult with properties: Results: [1x1 table]

这个例子展示了给多个香草定价的工作流程地板上使用时的仪器黑色的模型和黑色的定价方法。

创建ratecurve对象

创建一个ratecurve物体使用ratecurve用于潜在的利率曲线地板上乐器。

解决= datetime(2018、9、15);类型=“零”;Zerotimes = [Calmonths(6)Calyears([1 2 3 4 5 7 10 20 30])]';氮酸盐= [0.0052 0.0055 0.0061 0.0073 0.02222 0.022]'zeroates = Settle + ZeroTimes;myrc = ratecurve(“零”、结算、ZeroDates ZeroRates)
myRC = ratecurve with properties: Type: "zero" compound: -1 Basis: 0 date: [10x1 datetime] Rates: [10x1 double] Settle: 15- september -2018 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"

创建地板上仪对象

使用fininstrument创建一个地板上三个FLORT仪器的仪器对象。

FloorOpt = fininstrument (“地面”'到期'datetime([2022、9、15;2022、9、15;2022、9、15]),“罢工”,[0.03;0.04;0.05],'投影诊断'myRC)
Flooropt =.3×1对象3x1具有属性的地板数组:Strike到期重置offset重置基础本金投影曲线DaycountAdjustedCashFlow营业日惯例假日名称

创建黑色的模型对象

使用finmodel创建一个黑色的模型对象。

BlackModel = finmodel (“黑色”“波动”,0.2)
BlackModel =带有属性的黑色:波动性:0.2000位移:0

创建黑色的Pricer对象

使用finpricer创建一个黑色的Pricer对象并使用ratecurve对象的“DiscountCurve”名称值对参数。

outPricer = finpricer (“分析”“DiscountCurve”myRC,“模型”BlackModel)
outPricer =黑色的属性:模型:[1x1 finmodel。黑色]折扣曲线:[1x1率曲线]

价格地板上仪器

使用价格来计算价格地板上仪器。

[Price, outPR] = Price (outPricer,FloorOpt)
价格=3×18.0878 12.0033 15.9263
开采=3×1对象3x1带有属性的pricerresult数组

这个例子展示了给香草定价的工作流程地板上当你使用HullWhite模型和HullWhite定价方法。

创建地板上仪对象

使用fininstrument创建一个地板上仪对象。

FloorOpt = fininstrument (“地面”“罢工”, 0.039,'到期'datetime (2019 1 30),“重置”,4,'主要的',100,“基础”12'姓名'“floor_option”
Flooropt =地板属性:罢工:0.0390成熟:2019年1月30日resetOffset:0重置:4基础:12校长:100个投影诊断:[0x0误会] DaycountAdjustedCashflow:0 BusinessDaysVention:“实际”假期:NAT名称:“Floor_Option”

创建HullWhite模型对象

使用finmodel创建一个HullWhite模型对象。

HullWhiteModel = finmodel (“hullwhite”“α”, 0.032,“σ”, 0.04)
HullWhiteModel = HullWhite属性:Alpha: 0.0320 Sigma: 0.0400

创建ratecurve对象

创建一个ratecurve物体使用ratecurve

解决= datetime(2018、9、15);类型=“零”;Zerotimes = [Calmonths(6)Calyears([1 2 3 4 5 7 10 20 30])]';氮酸盐= [0.0052 0.0055 0.0061 0.0073 0.02222 0.022]'zeroates = Settle + ZeroTimes;myrc = ratecurve(“零”、结算、ZeroDates ZeroRates)
myRC = ratecurve with properties: Type: "zero" compound: -1 Basis: 0 date: [10x1 datetime] Rates: [10x1 double] Settle: 15- september -2018 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"

创建HullWhitePricer对象

使用finpricer创建一个HullWhitePricer对象并使用ratecurve对象的“DiscountCurve”名称值对参数。

outPricer = finpricer (“分析”“模型”HullWhiteModel,“DiscountCurve”myRC)
outPricer = HullWhite with properties: DiscountCurve: [1x1 ratecurve] Model: [1x1 finmodel. outPricer = HullWhite with properties:HullWhite]

价格地板上仪器

使用价格来计算价格地板上乐器。

价格=价格(超额,楼层)
价格= 1.2676

这个例子展示了为摊销定价的工作流程地板上当你使用黑色的模型和黑色的定价方法。

创建地板上仪对象

使用fininstrument创造摊销地板上仪对象。

CADates = datetime([2020,9,1;2023、9、1]);CAPrincipal = [100;85);校长=时间表(CADates CAPrincipal);FloorOpt = fininstrument (“地面”'到期'datetime (2023 9 1),“罢工”, 0.015,'主要的'校长,'姓名'“floor_amortizing_option”
FloorOpt =地板属性:Strike: 0.0150到期:01- 9 -2023重置:0重置:1基础:0本金:[2x1时间表]ProjectionCurve: [0x0 ratecurve] DaycountAdjustedCashFlow: 0 BusinessDayConvention:“实际的”假期:NaT名称:“floor_amortizing_option”

创建黑色的模型对象

使用finmodel创建一个黑色的模型对象。

BlackModel = finmodel (“黑色”“波动”,0.2)
BlackModel =带有属性的黑色:波动性:0.2000位移:0

创建ratecurve对象

创建一个ratecurve物体使用ratecurve

解决= datetime (2018 9, 1);类型=“零”;= [calyears([1 2 3 4 5 7 10])]';ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168]';zeroates = Settle + ZeroTimes;myrc = ratecurve(“零”、结算、ZeroDates ZeroRates);

创建黑色的Pricer对象

使用finpricer创建一个黑色的Pricer对象并使用ratecurve对象的“DiscountCurve”名称值对参数。

outPricer = finpricer (“分析”“模型”BlackModel,“DiscountCurve”myRC)
outPricer =黑色的属性:模型:[1x1 finmodel。黑色]折扣曲线:[1x1率曲线]

价格地板上仪器

使用价格来计算价格地板上乐器。

价格=价格(超额,楼层)
价格= 3.0030

这个例子展示了给香草定价的工作流程地板上仪器使用时HullWhite模型和一个IRTree定价方法。

创建地板上仪对象

使用fininstrument创建一个地板上仪对象。

FloorOpt = fininstrument (“地面”“罢工”, 0.03,'到期'datetime (2020 1 30),“重置”,4,'主要的',100,“基础”,8,'姓名'“floor_option”
FloorOpt =地板属性:Strike: 0.0300到期:30- 1 -2020重置:0重置:4基础:8本金:100 ProjectionCurve: [0x0 ratecurve] DaycountAdjustedCashFlow: 0 BusinessDayConvention:“实际的”假期:NaT名称:“floor_option”

创建HullWhite模型对象

使用finmodel创建一个HullWhite模型对象。

HullWhiteModel = finmodel (“hullwhite”“α”, 0.01,“σ”, 0.10)
HullWhiteModel =具有属性的Hullwhite:Alpha:0.0100 Sigma:0.1000

创建ratecurve对象

创建一个ratecurve物体使用ratecurve

解决= datetime(2018、9、15);类型=“零”;Zerotimes = [Calmonths(6)Calyears([1 2 3 4 5 7 10 20 30])]';氮酸盐= [0.0052 0.0055 0.0061 0.0073 0.02222 0.022]'zeroates = Settle + ZeroTimes;myrc = ratecurve(“零”、结算、ZeroDates ZeroRates)
myRC = ratecurve with properties: Type: "zero" compound: -1 Basis: 0 date: [10x1 datetime] Rates: [10x1 double] Settle: 15- september -2018 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"

创建IRTreePricer对象

使用finpricer创建一个IRTreePricer对象并使用ratecurve对象的“DiscountCurve”名称值对参数。

CFdates = CFdates(结算,FloorOpt。成熟,FloorOpt。重置那FloorOpt。基础);outPricer = finpricer (“irtree”“模型”HullWhiteModel,“DiscountCurve”myRC,“TreeDates”, CFdates ')
OutPricer = HWBKTree具有属性:树:[1x1结构]三次:[6x1 DateTime]型号:[1x1 finmodel.hullwhite]折扣:[1x1误会]

价格地板上仪器

使用价格来计算价格和敏感度地板上乐器。

[Price, outPR] = Price (outPricer,FloorOpt,[“所有”])
价格= 5.7821
outPR = pricerresult with properties: Results: [1x4 table]
outPR。R.E.sults
ans =1×4表价格VEGA Gamma Delta ______ ______ _____________ 5.7821 31.821 141.45 -110.54

这个例子展示了定价a的工作流程地板上仪器使用时BraceGatarekMusiela模型和一个Irmontecarlo.定价方法。

创建地面工具对象

使用fininstrument创建一个地板上仪对象。

FloorOpt = fininstrument (“地面”“成熟”datetime(2022、9、15),“罢工”, 0.05,“重置”,1,'姓名'“floor_option”
FloorOpt =地板属性:Strike: 0.0500到期:15- 9 -2022重置:0重置:1基础:0本金:100 ProjectionCurve: [0x0 ratecurve] DaycountAdjustedCashFlow: 0 BusinessDayConvention:“实际的”假期:NaT名称:“floor_option”

创建BraceGatarekMusiela模型对象

使用finmodel创建一个BraceGatarekMusiela模型对象。

bgmvolfunc = @(a,t)(a(1)* t + a(2))。* exp(-a(3)* t)+ a(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));correlation = corrfunc(meshgrid(1:numrates-1)',meshgrid(1:numrates-1),beta);BGM = FinModel(“BraceGatarekMusiela”“波动”volfunc,'相关性',相关性,“时间”1);

创建ratecurve对象

创建一个ratecurve物体使用ratecurve

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

创建Irmontecarlo.Pricer对象

使用finpricer创建一个Irmontecarlo.Pricer对象并使用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]

价格地板上仪器

使用价格来计算价格和敏感度地板上乐器。

(价格、outPR) =价格(outPricer, FloorOpt“所有”])
价格= 14.7882
Outpr = PricEresult属性:结果:[1x3表] PricerData:[1x1 struct]
outPR。R.E.sults
ans =1×3表价格三角洲伽玛______ ______ ______14.788 -400.4 1280.7

更多关于

全部展开

介绍了R2020a