主要内容

CDSBlack

创建CDSBlack定价的人对象CDSOption仪器使用CDSBlack模型

描述

创建和定价CDSOption带有CDSBlack模型和CDSBlack使用此工作流的定价方法:

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

  2. 使用finmodel指定CDSBlack模型CDSOption仪对象。

  3. 使用finpricer指定CDSBlack对象的Pricer对象CDSOption仪对象。

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

欲了解更多有关a的可用工具、模型和定价方法的信息CDSOption仪器,看选择仪器、型号和定价

创建

描述

例子

CDSBlackPricerObj= finpricer (PricerType,'DiscountCurve“ratecurve_obj,”模型,模型,DefaultProbabilityCurve”,defaultprobabilitycurve_obj)创建一个CDSBlack通过指定PricerType和所需的名称-值对参数DiscountCurve模型,DefaultProbabilityCurve设置属性使用名称-值对。例如,CDSBlackPricerObj = finpricer(“分析”、“模型”,CDSBlack DiscountCurve, ratecurve_obj, DefaultProbabilityCurve, defaultprobabilitycurve_obj)创建一个CDSBlack定价的人对象。

输入参数

全部展开

价格类型,指定为值为的字符串“分析”或者是值为的字符向量“分析”

数据类型:字符|字符串

CDSBlack名称-值对的观点

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

例子:CDSBlackPricerObj = finpricer(“分析”、“模型”,CDSBlack DiscountCurve, ratecurve_obj, DefaultProbabilityCurve, defaultprobabilitycurve_obj)
要求CDSBlack名称-值对的观点

全部展开

ratecurve对象,指定为逗号分隔的对,由“DiscountCurve”和先前创建的名称ratecurve对象。

数据类型:对象

模型对象,指定为逗号分隔的对,由“模型”和先前创建的名称CDSBlack模型对象使用finmodel

数据类型:对象

默认概率曲线,指定为逗号分隔对组成“DefaultProbabilityCurve”和之前创建的名字defprobcurve

数据类型:对象

属性

全部展开

ratecurve用于折现现金流的对象,返回为ratecurve对象。

数据类型:对象

模型,返回为CDSBlack模型对象。

数据类型:对象

违约概率曲线,返回为adefprobcurve对象。

数据类型:对象

对象的功能

价格 计算利率,股权,或信用衍生工具的价格分析定价的人

例子

全部折叠

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

创建ratecurve对象

创建一个ratecurve对象使用ratecurve

解决= datetime(2017、9、20);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;ZeroCurve = ratecurve (“零”, Settle, zeroates,ZeroRates)
ZeroCurve =带有属性的比率曲线:类型:" 0 "复利:-1基础:0日期:[10x1 datetime]利率:[10x1 double]定值:2017年9月20日InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"

创建defprobcurve对象

创建一个defprobcurve对象使用defprobcurve

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, defaultprobability)
DefaultProbCurve = defprobcurve with properties: Settle: 20- september 2017 Basis: 2 date: [10x1 datetime] defaultprobability: [10x1 double]

创建cd仪对象

使用fininstrument要创建一个基础的cd仪对象。

ContractSpreadBP = 0;%合同价差以行使日期确定cd = fininstrument (“cd”“成熟”20 datetime (2027 9),“ContractSpread”ContractSpreadBP)
合约价差:0到期日:2027年9月20日期限:4基准:2回收率:0.4000营业日惯例:“实际”假日:NaT PayAccruedPremium: 1概念:10000000名称:“”

创建CDSOption仪对象

使用fininstrument创建一个CDSOption仪对象。

= datetime(2017, 12, 20);罢工= 50;CDSOption = fininstrument (“CDSOption”“罢工”罢工,“ExerciseDate”ExerciseDate,“OptionType”“把”“cd”、cd)
cdsoper = cdsoper with properties: OptionType: "put" Strike: 50 Knockout: 0 AdjustedForwardSpread: NaN exercisdate: 20- 12 -2017 CDS: [1x1 fininstrument.]cd)名称:"

创建CDSBlack模型对象

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

SpreadVolatility = 0.3;CDSOptionModel = finmodel (“CDSBlack”“SpreadVolatility”SpreadVolatility)
CDSOptionModel = CDSBlack,属性:价差波动率:0.3000

创建CDSBlack定价的人对象

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

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

价格CDSOption仪器

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

outPrice =价格(CDSOptionpricer CDSOption)
outPrice = 6.5054

这个例子展示了使用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创建一个CDSOption单名称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
介绍了R2020a