主要内容

CDSOption

CDSOption仪对象

描述

创建和定价CDSOption用于一个或多个CDS Option仪器的instrument对象,使用此工作流:

  1. 使用fininstrument创建一个CDSOption一个或多个CDS期权工具的工具对象。默认情况下,这会创建一个单名称CDS选项。可以通过指定可选的name-value参数来创建CDS索引选项AdjustedForwardSpread

  2. 使用finmodel指定一个CDSBlack模型CDSoption仪对象。

  3. 使用finpricer指定一个CDSBlack一个或多个的定价方法CDSoption仪器。

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

有关可用模型和定价方法的更多信息,请使用CDSoption仪器,看选择仪器、型号和定价

创建

描述

例子

CDSOptionObj= fininstrument (InstrumentType,'ExerciseDate“exercise_date,”罢工“strike_value,”cd”,cds_obj)创建一个CDSOption为一个或多个CDS期权工具指定InstrumentType并设置属性用于指定的名称-值对参数ExerciseDate罢工,cd

例子

CDSOptionObj= fininstrument (___名称,值设置可选属性除了前面语法中要求的参数外,还使用了其他的名称-值对。例如,CDSOptionObj = fininstrument(“CDSoption”、“ExerciseDate”,datetime(2019, 30),“罢工”,500年,“cd”,cds_object,“名字”,“cdsoption_instrument”)创建一个CDSOption单名CDS期权,strike值为500。可以指定多个名称-值对参数。

输入参数

全部展开

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

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

CDSOption名称-值对的观点

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

例子:CDSOptionObj = fininstrument(“CDSoption”、“ExerciseDate”,datetime(2019, 30),“罢工”,500年,“cd”,cds_object,“名字”,“cdsoption_instrument”)
要求CDSOption名称-值对的观点

全部展开

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

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

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

期权执行价格,指定为逗号分隔的对,由“罢工”和一个标量非负的数字或NINST——- - - - - -1非负数值的向量。

数据类型:

cd对象,指定为逗号分隔的对,由“cd”和一个标量cd对象或一个NINST——- - - - - -1向量的cd对象。

数据类型:对象

可选CDSOption名称-值对的观点

全部展开

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

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

指示选项是否为敲除类型的标志,指定为逗号分隔的对,由“敲除”一个标量逻辑或NINST——- - - - - -1逻辑值的向量。

数据类型:逻辑

为CDS指数期权定价的调整远期价差(以基点计),指定为逗号分隔的对,由“AdjustedForwardSpread”和一个标量数字或NINST——- - - - - -1数值向量。,以获取更多使用信息“AdjustedForwardSpread”在为CDS指数期权定价时,请参见价格CDS指数期权使用CDS黑色模型和CDS黑色价格

数据类型:

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

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

属性

全部展开

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

数据类型:datetime

期权执行价格,返回为标量非负数值或NINST——- - - - - -1非负数值的向量。

数据类型:

cd对象,作为标量返回cd对象或一个NINST——- - - - - -1CDS对象的向量。

数据类型:对象

选项的定义,返回为标量字符串或NINST——- - - - - -1值为的字符串数组“电话”“把”

数据类型:字符串

指示选项是否为敲除类型的标志,返回为标量逻辑或NINST——- - - - - -1逻辑值的向量。

数据类型:逻辑

为CDS指数期权定价而调整的远期价差(以基点计),返回为标量数字或NINST——- - - - - -1数值向量。

数据类型:

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

数据类型:字符串

例子

全部折叠

这个例子展示了定价a的工作流程CDSOption当您使用单一名称CDS选项时CDSBlack模型和CDSBlack定价方法。

创建cd仪对象

使用fininstrument要创建底层的cd仪对象。

CDSOpt = fininstrument (“cd”“成熟”datetime(2021、9、15),“ContractSpread”, 150,“名义上”, 100,“名字”“CDS_option”
CDSOpt =具有属性的CDS:合约价差:150到期日:2021年9月15日期间:4基础:2 RecoveryRate: 0.4000 businessday约定:“实际”假期:NaT PayAccruedPremium: 1概念:100名称:“CDS_option”

创建defprobcurve对象

创建一个defprobcurve对象使用defprobcurve

解决= datetime(2020、9、20);DefProbTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])];defaultprobability = [0.005 0.007 0.01 0.015 0.026 0.04 0.077 0.093 0.15 0.20]';ProbDates = Settle + DefProbTimes;DefaultProbCurve = defprobcurve(结算、ProbDates DefaultProbabilities,“基础”5)
DefaultProbCurve = defprobcurve with properties: Settle: 20-Sep-2020 Basis: 5 date: [10x1 datetime] defaultprobability: [10x1 double]

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

解决= datetime(2020、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]';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-Sep-2020 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"

创建CDSOption仪对象

使用fininstrument创建一个CDSOption单个名称CDS选项的instrument对象。

CDSOptionInst = fininstrument (“CDSOption”“ExerciseDate”datetime(2021、8、15)“罢工”, 20岁,“cd”CDSOpt,“OptionType”“把”“敲除”,真的,“名字”“CDSOption_option”
CDSOptionInst = cdsopoption with properties: OptionType: "put" Strike: 20 Knockout: 1 AdjustedForwardSpread: NaN exercisdate: 15-Aug-2021cd)名称:“CDSOption_option”

创建CDSBlack模型对象

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

CDSBlackModel = finmodel (“CDSBlack”“SpreadVolatility”2)
CDSBlackModel = CDSBlack,属性:价差波动率:0.2000

创建CDSBlack定价的人对象

使用finpricer创建一个CDSBlack对象,并使用ratecurve对象的“DiscountCurve”名称-值对的论点。

outPricer = finpricer (“分析”“模型”CDSBlackModel,“DefaultProbabilityCurve”DefaultProbCurve,“DiscountCurve”myRC)
outPricer = CDSBlack与属性:模型:[1x1 finmodel。CDSBlack] DiscountCurve: [1x1 ratecurve] DefaultProbabilityCurve: [1x1 defprobcurve]

价格CDSOption仪器

使用价格来计算价格CDSOption单名称CDS选项的工具。

价格=价格(outPricer CDSOptionInst)
价格= 3.3016 e-04

这个例子展示了定价倍数的工作流程CDSOption当你使用CDSBlack模型和CDSBlack定价方法。

创建cd仪对象

使用fininstrument要创建底层的cd工具对象为三个CDS期权工具。

CDSOpt = fininstrument (“cd”“成熟”datetime([2021、9、15;2021、10、15;2021、11、15]),“ContractSpread”, 150,“名义上”, 10000;20000;30000年),“名字”“CDS_option”
CDSOpt =3×1对象3x1 CDS数组具有以下属性:合约价差、到期日基础、回收率、营业日惯例假日、支付应计保费名义名称

创建defprobcurve对象

创建一个defprobcurve对象使用defprobcurve

解决= datetime(2020、9、20);DefProbTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])];defaultprobability = [0.005 0.007 0.01 0.015 0.026 0.04 0.077 0.093 0.15 0.20]';ProbDates = Settle + DefProbTimes;DefaultProbCurve = defprobcurve(结算、ProbDates DefaultProbabilities,“基础”5)
DefaultProbCurve = defprobcurve with properties: Settle: 20-Sep-2020 Basis: 5 date: [10x1 datetime] defaultprobability: [10x1 double]

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

解决= datetime(2020、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]';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-Sep-2020 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"

创建CDSOption仪对象

使用fininstrument创建一个CDSOption三个单名称CDS选项的工具对象。

CDSOptionInst = fininstrument (“CDSOption”“ExerciseDate”datetime(2021、8、15)“罢工”, 20岁,“cd”CDSOpt,“OptionType”“把”“敲除”,真的,“名字”“CDSOption_option”
CDSOptionInst =3×1对象3x1 CDSOption数组带有属性:OptionType Strike Knockout AdjustedForwardSpread exercisdate CDS名称

创建CDSBlack模型对象

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

CDSBlackModel = finmodel (“CDSBlack”“SpreadVolatility”2)
CDSBlackModel = CDSBlack,属性:价差波动率:0.2000

创建CDSBlack定价的人对象

使用finpricer创建一个CDSBlack对象,并使用ratecurve对象的“DiscountCurve”名称-值对的论点。

outPricer = finpricer (“分析”“模型”CDSBlackModel,“DefaultProbabilityCurve”DefaultProbCurve,“DiscountCurve”myRC)
outPricer = CDSBlack与属性:模型:[1x1 finmodel。CDSBlack] DiscountCurve: [1x1 ratecurve] DefaultProbabilityCurve: [1x1 defprobcurve]

价格CDSOption仪器

使用价格来计算这三个的价格CDSOption仪器。

价格=价格(outPricer CDSOptionInst)
价格=3×10.0003 0.0384 0.5941

这个例子展示了使用CDSOption为CDS指数期权定价的工具CDSBlack模型和CDSBlack定价方法。

建立CDS指数数据

% CDS指数和期权数据复苏=。4;基础= 2;时间= 4;CDSMaturity = datetime(2017, 6, 20);ContractSpread = 100;IndexSpread = 140;BusDayConvention =“跟随”;set = datetime(2012, 4, 13);OptionMaturity = datetime(2012, 6,20);OptionStrike = 140;SpreadVolatility = i;

创建ratecurve对象为零曲线使用irbootstrap

创建ratecurve对象为零曲线使用irbootstrap

%零曲线数据depates = [0.004111 0.00563 0.00757 0.01053]';DepTimes = calmonths([1 2 3 6]');DepDates = set + DepTimes;nDeposits =长度(DepTimes);swap = [0.01387 0.01035 0.01145 0.01318 0.01508 0.01700 0.01868 ....';SwapTimes = calyears([1 2 3 4 5 6 7 8 9 10 12 15 20 30]);SwapDates = set + SwapTimes;nSwaps =长度(SwapTimes);nst = n存款+ n掉期;BootInstruments (nInst, 1) = fininstrument.FinInstrument;ii=1:length(DepDates) bootininstruments (ii) = fininstrument(“存款”“成熟”DepDates (ii),“速度”DepRates (ii));结束ii=1:length(SwapDates) bootininstruments (ii+ ndeposents) = fininstrument(“交换”“成熟”SwapDates (ii),“LegRate”, (SwapRates (ii) 0]);结束ZeroCurve = irbootstrap (BootInstruments解决)
ZeroCurve =带有属性的比率曲线:类型:“零”复利:-1基础:0日期:[18x1 datetime] rate: [18x1 double] Settle: 13- 4 -2012 InterpMethod:“linear”ShortExtrapMethod:“next”LongExtrapMethod:“previous”

Bootstrap默认概率曲线

使用defprobstripbootstrap违约概率曲线假设一个平坦的指数价差。

ProbDates = datemnth (OptionMaturity (0:5 * 12) ');MarketCDSInstruments = fininstrument (“cd”...“ContractSpread”ContractSpread,“成熟”, CDSMaturity);DefaultProbCurve = defprobstrip(zeroccurve, marketcdinstruments, IndexSpread,“ProbDates”ProbDates)
DefaultProbCurve = defprobcurve with properties: Settle: 13- april -2012 Basis: 2 date: [61x1 datetime] defaultprobability: [61x1 double]

计算点和转发RPV01s

计算点和转发rpv01使用cdsrpv01

ProbData = [datenum(DefaultProbCurve.Dates) defaultprobcurve . defaultprobability];% RPV01 (t, t)RPV01_CDSMaturity = cdsrpv01 (CDSMaturity ZeroCurve ProbData,解决)
RPV01_CDSMaturity = 4.7853
% RPV01 (t_E t, t)RPV01_OptionExpiryForward = cdsrpv01 (CDSMaturity ZeroCurve ProbData,解决,...StartDate可以的OptionMaturity)
RPV01_OptionExpiryForward = 4.5972
RPV01(t,t_E) = RPV01(t,t) - RPV01(t,t_E, t)RPV01_OptionExpiry = RPV01_CDSMaturity - RPV01_OptionExpiryForward
RPV01_OptionExpiry = 0.1882

计算现货价差

计算点散布使用cdsspread

% S (t、t_E)Spread_OptionExpiry = cdsspread (OptionMaturity ZeroCurve ProbData,解决,...“时间”期,“基础”的基础上,“BusDayConvention”BusDayConvention,...“PayAccruedPremium”,真的,“recoveryrate”、恢复)
Spread_OptionExpiry = 139.8995
% S (t, t)Spread_CDSMaturity = cdsspread (CDSMaturity ZeroCurve ProbData,解决,...“时间”期,“基础”的基础上,“BusDayConvention”BusDayConvention,...“PayAccruedPremium”,真的,“recoveryrate”、恢复)
Spread_CDSMaturity = 139.9999

计算向前传播

使用spot价差和RPV01s计算forward价差。

% F = S(t,t_E, t)ForwardSpread = (Spread_CDSMaturity。* RPV01_CDSMaturity - Spread_OptionExpiry / RPV01_OptionExpiryForward * RPV01_OptionExpiry)
ForwardSpread = 140.0040

计算前端保护

计算前端保护(FEP)。

聚全氟乙丙烯= 10000 * (1-Recovery) * ZeroCurve.discountfactors (OptionMaturity) * DefaultProbCurve.DefaultProbabilities (1)
聚全氟乙丙烯= 26.3108

计算调整后的前向差价

计算要在创建时使用的调整后的向前扩展CDSOption乐器。

AdjustedForwardSpread = ForwardSpread + FEP./RPV01_OptionExpiryForward
AdjustedForwardSpread = 145.7273

计算远期差价调整后的CDS期权价格

使用fininstrument要创建底层的cd工具对象为两个CDS期权工具。

cd = fininstrument (“cd”“ContractSpread”ContractSpread,“成熟”CDSMaturity)
CDS =具有属性的CDS:合约价差:100到期日:2017年6月20日期限:4基准:2回收率:0.4000营业日惯例:“实际”假日:NaT PayAccruedPremium: 1概念:10000000名称:“”

使用fininstrument创建一个CDSOption两种CDS指数期权工具。

CDSCallOption = fininstrument (“cdsoption”“罢工”OptionStrike,...“ExerciseDate”OptionMaturity,“OptionType”“电话”“cd”、cd、...“敲除”,真的,“AdjustedForwardSpread”AdjustedForwardSpread)
CDSCallOption = cdspoption with properties: OptionType: "call" Strike: 140 Knockout: 1 AdjustedForwardSpread: 145.7273 exercisdate: 20-Jun-2012 CDS: [1x1 fininstrument.]cd)名称:"
CDSPutOption = fininstrument (“cdsoption”“罢工”OptionStrike,...“ExerciseDate”OptionMaturity,“OptionType”“把”“cd”、cd、...“敲除”,真的,“AdjustedForwardSpread”AdjustedForwardSpread)
CDSPutOption = cdspoption with properties: OptionType: "put" Strike: 140 Knockout: 1 AdjustedForwardSpread: 145.7273 exercisdate: 20-Jun-2012 CDS: [1x1 fininstrument.]cd)名称:"

创建CDSBlack模型对象

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

CDSOptionModel = finmodel (“cdsblack”“SpreadVolatility”SpreadVolatility)
CDSOptionModel = CDSBlack,属性:价差波动率:0.6900

创建CDSBlack定价的人对象

使用finpricer创建一个CDSBlack对象,并使用ratecurve对象的零曲线“DiscountCurve”名称-值对的论点。

CDSOptionpricer = finpricer (“分析”“模型”CDSOptionModel,“DiscountCurve”ZeroCurve,“DefaultProbabilityCurve”DefaultProbCurve)
CDSOptionpricer = CDSBlack与属性:模型:[1x1 finmodel。CDSBlack] DiscountCurve: [1x1 ratecurve] DefaultProbabilityCurve: [1x1 defprobcurve]

价格CDS指数期权

使用价格计算两种CDS指数期权的价格。

outPrice = price(CDSOptionpricer, [CDSCallOption;CDSPutOption]);流(付款人:%。0 f接收机:%。0 f \ n 'outPrice (1) outPrice (2));
付款人:92,收款人:66

更多关于

全部展开

参考文献

D。[1]•欧凯恩称单名称和多名称信用衍生品模型。威利,2008,第156-169页。

介绍了R2020a