主要内容

仪对象

描述

创建并定价一个或多个Cap仪器对象使用此工作流:

  1. 使用fininstrument要创建一个或多个Cap仪器的仪器对象。

  2. 使用finmodel要指定HullWhite,BlackKarasinski,黑色的,正常的,BraceGatarekMusiela,SABRBraceGatarekMusiela,或LinearGaussian2F的模型仪对象。

  3. 选择一种定价方法。

    • 当使用HullWhite,BlackKarasinski,黑色的,或正常的模型,使用finpricer要指定正常的,黑色的,HullWhite,或IRTree一个或多个定价方法仪器。

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

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

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

创建

描述

例子

CapOpt= fininstrument (InstrumentType,'罢工“strike_value,”成熟”,maturity_date)创建一个对象用于一个或多个Cap仪器InstrumentType并设置属性用于所需的名-值对参数罢工成熟

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

例子

CapOpt= fininstrument (___,名称,值设置可选属性在前面的语法中,除了必需的参数之外,还使用其他的名称-值对。例如,CapOpt = fininstrument("Cap",'Strike',0.65,'Maturity',datetime(2019,1,30),'Reset',4,'Principal',100,'ResetOffset',1,'Basis',1,' daycountadjusttedcashflow ',true,'BusinessDayConvention',"follow",'ProjectionCurve',ratecurve_object,'Name',"cap_option")创建一个期权,罢工率为0.65。可以指定多个名称-值对参数。

输入参数

全部展开

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

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

名称-值对参数

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

例子:CapOpt = fininstrument("Cap",'Strike',0.65,'Maturity',datetime(2019,1,30),'Reset',4,'Principal',100,'ResetOffset',1,'Basis',1,' daycountadjusttedcashflow ',true,'BusinessDayConvention',"follow",'ProjectionCurve',ratecurve_object,'Name',"cap_option")
要求名称-值对参数

全部展开

执行价格的上限,由逗号分隔的对组成“罢工”标量非负十进制值或NINST——- - - - - -1非负数值向量。

数据类型:

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

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

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

可选名称-值对参数

全部展开

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

数据类型:

天数计数的基础,指定为逗号分隔对组成“基础”一个标量整数或者NINST——- - - - - -1具有以下值的整数向量:

  • 0 - actual/实际的

  • 1 - 30/360 (sia)

  • 2 -实际/360

  • 3 -实际的/365

  • 4 - 30/360 (psa)

  • 5 - 30/360 (isda)

  • 6 - 30/360(欧洲)

  • 7 -实际/365(日语)

  • 8 -实际/实际(ICMA)

  • 9 -实际/360 (ICMA)

  • 10 -实际/365 (ICMA)

  • 11 - 30/360e (icma)

  • 12 -实际/365 (ISDA)

  • 13 -总线/252

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

数据类型:

主要金额或主要价值表,指定为逗号分隔的对,由“校长”一个标量数字或者NINST——- - - - - -1数字矢量或时间表。

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

请注意

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

数据类型:|时间表

速率设置中的延迟,指定为逗号分隔的对,由“ResetOffset”一个标量数字或者NINST——- - - - - -1数值向量。

数据类型:

标志,以根据实际期间天数计数调整现金流,指定为逗号分隔的对,由“DaycountAdjustedCashFlow”一个标量或者anNINST——- - - - - -1值为真正的

数据类型:逻辑

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

  • “实际”-非业务日被有效地忽略了。非营业日的现金流假定在实际日期进行分配。

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

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

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

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

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

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

H =节假日(datetime('today'),datetime(2025,12,15));CapOpt = fininstrument("Cap",'Strike',100,'Maturity',datetime(205,12,15),'Holidays',H)

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

用于预测未来现金流的利率曲线,由逗号分隔的对组成“ProjectionCurve”一个标量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字符串数组。

数据类型:字符串

例子

全部折叠

这个例子展示了香草定价的工作流仪器在使用HullWhite模型和HullWhite定价方法。

创建仪对象

使用fininstrument要创建仪对象。

CapOpt = fininstrument(“帽子”,“罢工”, 0.02,“成熟”datetime (2019 1 30),“重置”4“校长”, 100,“基础”8“名字”,“cap_option”
CapOpt = Cap with properties: Strike: 0.0200成熟度:30- january -2019 ResetOffset: 0 Reset: 4 Basis: 8 Principal: 100 ProjectionCurve: [0x0 ratecurve] DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT Name: "cap_option"

创建HullWhite模型对象

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

HullWhiteModel = finmodel(“HullWhite”,“α”, 0.62,“σ”, 0.99)
HullWhiteModel = HullWhite属性:阿尔法:0.6200西格玛:0.9900

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

Settle = datetime(2018,9,15);类型=“零”;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]结算:15-Sep-2018 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“前一个”

创建HullWhite定价的人对象

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

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

价格仪器

使用价格来计算的价格乐器。

价格=价格(outprice,CapOpt)
价格= 2.9366

这个例子展示了为多个香草定价的工作流使用HullWhite模型和HullWhite定价方法。

创建仪对象

使用fininstrument要创建仪器对象为三个Cap仪器。

CapOpt = fininstrument(“帽子”,“罢工”, 0.02,“成熟”datetime([2019年,1、30;2019年,2、30;2019年,3、30),“重置”4“校长”, 100;200;300年),“基础”8“名字”,“cap_option”
CapOpt =3×1对象3x1带有属性的上限数组:执行期限重置偏移量重置基础本金投影曲线日计数调整现金流营业日惯例假日名称

创建HullWhite模型对象

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

HullWhiteModel = finmodel(“HullWhite”,“α”, 0.62,“σ”, 0.99)
HullWhiteModel = HullWhite属性:阿尔法:0.6200西格玛:0.9900

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

Settle = datetime(2018,9,15);类型=“零”;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]结算:15-Sep-2018 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“前一个”

创建HullWhite定价的人对象

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

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

价格仪器

使用价格来计算的价格仪器。

价格=价格(outprice,CapOpt)
价格=3×12.9366 7.4694 17.7915

这个例子展示了香草定价的工作流仪器当你使用正常的模型和正常的定价方法。

创建ratecurve对象

创建一个ratecurve对象使用ratecurve对于基本利率曲线乐器。

Settle = datetime(2018,9,15);类型=“零”;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]结算:15-Sep-2018 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“前一个”

创建仪对象

使用fininstrument要创建仪对象。

CapOpt = fininstrument(“帽子”,“成熟”datetime(2022、9、15),“罢工”, 0.04,“ProjectionCurve”myRC)
CapOpt =带有属性的上限:Strike: 0.0400到期日期:15-Sep-2022 ResetOffset: 0重置:1基准:0本金:100投影曲线:[1x1利率曲线]daycountadjusted现金流:0营业日惯例:“实际”假期:NaT名称:""

创建正常的模型对象

使用finmodel要创建正常的模型对象。

NormalModel = finmodel(“正常”,“波动”, 0.01)
NormalModel =正常属性:波动率:0.0100

创建正常的定价的人对象

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

outPricer = finpricer(“分析”,“DiscountCurve”myRC,“模型”NormalModel)
outPricer = Normal with properties: DiscountCurve: [1x1 ratecurve] Shift: 0 Model: [1x1 finmodel.]正常)

价格仪器

使用价格来计算的价格乐器。

[Price, outPR] = Price (outprice, CapOpt)
价格= 0.0701
outPR = priceresult with properties:结果:[1x1表]PricerData: []

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

创建仪对象

使用fininstrument创建一个平摊仪对象。

CADates = [datetime(2020,9,1);datetime (2023 9,1)];capprincipal = [100;85);本金=时间表(CADates,本金);CapOpt = fininstrument(“帽子”,“成熟”datetime (2023 9 1),“罢工”, 0.015,“校长”校长,“名字”,“cap_amortizing_option”
CapOpt = Cap with properties: Strike: 0.0150期限:01-Sep-2023 ResetOffset: 0重置:1 Basis: 0 Principal: [2x1 schedule] ProjectionCurve: [0x0 ratecurve] daycountadjuststedcash flow: 0 BusinessDayConvention: "actual" Holidays: NaT Name: "cap_amortizing_option"

创建黑色的模型对象

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

BlackModel = finmodel(“黑色”,“波动”, 0.2)
BlackModel =黑色属性:波动性:0.2000 Shift: 0

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

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

创建黑色的定价的人对象

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

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

价格仪器

使用价格来计算的价格乐器。

价格=价格(outprice,CapOpt)
价格= 0.3897

这个例子展示了香草定价的工作流仪器在使用HullWhite模型和IRTree定价方法。

创建仪对象

使用fininstrument要创建仪对象。

CapOpt = fininstrument(“帽子”,“罢工”, 0.02,“成熟”datetime (2020 1 30),“重置”4“校长”, 100,“基础”8“名字”,“cap_option”
CapOpt =带有属性的上限:Strike: 0.0200期限:30- january -2020 ResetOffset: 0重置:4 Basis: 8 Principal: 100 ProjectionCurve: [0x0 ratecurve] DaycountAdjustedCashFlow: 0 businessday惯例:“实际”假期:NaT名称:"cap_option"

创建HullWhite模型对象

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

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

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

Settle = datetime(2018,9,15);类型=“零”;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]结算:15-Sep-2018 InterpMethod:“线性”ShortExtrapMethod:“下一个”LongExtrapMethod:“前一个”

创建IRTree定价的人对象

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

CFdates = CFdates(确定,CapOpt。成熟,CapOpt。重置,CapOpt.基础);outPricer = finpricer(“IRTree”,“模型”HullWhiteModel,“DiscountCurve”myRC,“TreeDates”, CFdates ')
outPricer = HWBKTree with properties: Tree: [1x1 struct] TreeDates: [6x1 datetime] Model: [1x1 finmodel。折扣曲线:[1x1率曲线]

价格仪器

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

[Price, outPR] = Price (outprice,CapOpt,[“所有”])
价格= 2.7733
outPR = priceresult with properties:结果:[1x4表]PricerData: [1x1 struct]
outPR。Results
ans =1×4表价格织女星γδ  ______ ______ _______ ______ 2.7733 31.655 -49.227 28.932

这个例子展示了为一个对象定价的工作流仪器在使用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要创建IRMonteCarloprice对象和使用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.2389
outPR = priceresult with properties:结果:[1x4表]PricerData: [1x1 struct]
outPR。Results
ans =1×4表价格三角洲伽马织女星  ______ ______ _____ _________________ 131.63 - -163.71 1.2389 - 132.71 11038

更多关于

全部展开

R2020a中引入