主要内容

基于SABR模型和分析定价器的交换定价

这个例子展示了如何使用SABR模型。首先,你通过校准市场波动来构建一个掉期波动面SABR模型参数分别为每个交换成熟度使用SABR分析定价的人。然后你计算掉期价格通过表面上隐含的黑色波动率SABR分析定价的人。

步骤1。负载市场掉期波动数据。

加载零曲线和市场隐含的互换黑色波动率数据。

set = datetime(2013, 6, 14);zeroates = Settle + [calmonths([1 3 6]) calyears([1 2 3 4 5 6 7 8 9 10 12 15 20])]';ZeroRates = [0.22 0.31 0.45 0.73 0.54 0.72 1.22 1.54 1.83 1.92 ....2.16 2.32 2.52 2.93 3.36]'/100;ZeroCurve = ratecurve (“零”、结算、ZeroDates ZeroRates,“复合”1);= Settle + [calmonths(3) calyears([1 2 3 4 5 7 10])]';YearsToExercise = yearfrac(解决ExerciseDates 1);NumMaturities =长度(YearsToExercise);MarketVolatilities = [...56.5 52.7 49.1 44.9 43.5 40.5 34.8 32.2 45.8 46.2 44.2 41.1 39.1 36.1 33.2 31.3 34.7 38.8 39.0 37.2 36.8 33.2 30.1 28.1 33.9 35.9 36.9 35.8 34.2 30.5 29.0 27.0 40.8 41.2 38.6 37.0 35.3 32.0 29.5 26.5 45.1 42.8 41.2 38.3 37.2 33.2 30.3 27.2 50.2 45.4 43.2 - 39.9 38.0 - 34.1 31.5 - 28.3) / 100;MarketStrikes = [...1.02 1.31 1.78 2.08 2.21 2.34 2.60 2.69;1.52 1.81 2.28 2.58 2.71 2.84 3.10 3.19;2.02 2.31 2.78 3.08 3.21 3.34 3.60 3.69;2.52 2.81 3.28 3.58 3.71 3.84 4.10 4.19;3.02 3.31 3.78 4.08 4.21 4.34 4.60 4.69;3.52 3.81 4.28 4.58 4.71 4.84 5.10 5.19;4.02 4.31 4.78 5.08 5.21 5.34 5.60 5.69]/100;: CurrentForwardValues = MarketStrikes(4日)
CurrentForwardValues =1×80.0252 0.0281 0.0328 0.0358 0.0371 0.0384 0.0410 0.0419
: ATMVolatilities = MarketVolatilities(4日)
ATMVolatilities =1×80.3390 0.3590 0.3690 0.3580 0.3420 0.3050 0.2900 0.2700

在这两个矩阵的第四行中,代表了八个掉期的当前潜在远期利率和相应的现价波动。

步骤2。为每个互换期限校准SABR模型参数。

当你使用静态SABR模型中,假设模型参数相对于时间是常数,参数分别针对a中的每个互换期限(执行年份)进行校准循环使用SABR分析定价的人。为了更好地反映市场的货币价格波动,α参数值由市场的现价波动暗示(详见方法2)使用分析定价器校准SABR模型).

%定义预定的Beta,校准SABR模型参数为每个%交换成熟度,并在表格中显示已校准的参数。β= 0.5;Beta = repmat(Beta, nummaturity, 1);alpha = 0 (nummaturity, 1);ros = 0 (NumMaturities, 1);Nus = 0 (nummaturity, 1);选择= optimoptions (“lsqnonlin”“显示”“没有”);k = 1: NumMaturities这个函数解决SABR的货币波动率方程%的多项式。= @(Rho,Nu)...(1 - Beta)^2*YearsToExercise(k)/24/CurrentForwardValues(k)^(2 - 2*Beta)...ρ*β*ν* YearsToExercise (k) / 4 / CurrentForwardValues (k) ^(1 -β)...(1 + (2 - 3*Rho²)*Nu^2*YearsToExercise(k)/24)...-ATMVolatilities (k) * CurrentForwardValues (k) ^(1 -β)]);这个函数通过选择,将价格波动率转换为最小正实数根。atmVol2SabrAlpha = @(Rho,Nu) min(real(arrayfun(@(x))...x * (x > 0) +最大浮点数* (x < 0 | | abs(图像放大(x)) > 1 e-6), alpharoots(ρ,ν))));%拟合Rho和Nu(将价格波动率转换为α)。objFun = @(X)市场波动(:,k) -...波动(finpricer (“分析”“模型”finmodel (“SABR”...“α”atmVol2SabrAlpha (X (1), (2)),“β”,β,的ρX (1),“怒”X (2)),...“DiscountCurve”, zercurve), ExerciseDates(k), CurrentForwardValues(k), MarketStrikes(:,k));X = lsqnonlin(objFun, [0 0.5], [-1 0], [1 Inf], options);ρ= X (1);ν= X (2);从校准参数中得到最终的Alpha值。Alpha = atmVol2SabrAlpha(Rho, Nu);阿尔法(k) =α;罗斯(k) =ρ;新加坡国立大学(k) =ν;结束CalibratedParameters = array2table([alpha Betas rors Nus],...“VariableNames”,{“α”“β”的ρ“怒”},...“RowNames”,{“3 m 10 y '“1到10 y”...“2 y 10 y”' 3到10 y '“4到10 y”...“5到10 y”“7到10 y”“10到10 y”})
CalibratedParameters =8×4表αβρν  ________ ____ ________ _______ 3米到10 0.051895 0.5 0.40869 1.4054 - 1 y为0.054381 0.5 0.28066 1.1234 - 2 y成10 0.057325 0.5 0.2166 0.97407 3 y 10 0.057243 0.5 0.19837 0.82932 4 y为0.053387 0.5 0.17304 0.81441 5 y成10 0.04673 0.5 0.11618 0.80138 7 y 10 0.046986 0.5 0.1554 0.63377 10 y为y0.04443 0.5 0.080169 0.52515

步骤3。构建一个波动面。

使用校准SABR模型,以计算在任何打击值的新波动率,以产生一个平滑的微笑,对给定的成熟度。这可以在每个成熟度中重复,以形成一个波动面。

使用每个成熟度的校准模型计算波动率,并绘制波动率面。

PlottingStrikes = (0.95:0.1:5.8) / 100;ComputedVols = zero (length(PlottingStrikes), NumMaturities);k = 1: nummaturity SABRModel = finmodel“SABR”...“α”阿尔法(k),“β”贝塔风险系数(k),的ρ罗斯(k),“怒”新加坡国立大学(k));ComputedVols (:, k) =波动(finpricer (“分析”...“模型”SABRModel,“DiscountCurve”ZeroCurve),...ExerciseDates (k), CurrentForwardValues (k), PlottingStrikes);结束图;冲浪(YearsToExercise PlottingStrikes ComputedVols);xlim ([0 10]);ylim ([0.0095 - 0.06]);zlim ([0.2 - 0.8]);视图(113年,32);集(gca),“位置”, [0.13 0.11 0.775 0.815],...“PlotBoxAspectRatioMode”“手动”);包含(“年锻炼”“Fontweight”“大胆”);ylabel (“罢工”“Fontweight”“大胆”);zlabel (“黑色隐含波动率”“Fontweight”“大胆”);

图中包含一个轴对象。axis对象包含一个类型为surface的对象。

请注意,在这个波动面中,较长互换期限(执行时间为几年)的投资者的笑容趋于平缓。这与Nu参数值随换期到期而趋于减小的趋势一致,如表所示CalibratedParameters

步骤4。使用SABR分析价格为交换定价。

使用SABR分析价格对五年到期的掉期进行定价。首先,从五年后开始创建标的10年期掉期工具,并创建掉期期权这个潜在的工具交换.然后创建SABR该模型将在5年内到期,用于创建SABR分析定价的人。

%创建标的10年期掉期,5年后开始。MaturityIdx = 6;SwapStartDate = ExerciseDates (MaturityIdx);SwapMaturity = SwapStartDate + calyears(10);交换= fininstrument (“交换”“成熟”SwapMaturity,...“LegRate”[0 0],“LegType”,[“固定”“浮动”],...“ProjectionCurve”ZeroCurve,“StartDate可以”SwapStartDate)
交换=交换与属性:LegRate: [0 0] LegType:[“固定”“浮动”]重置:[2 2]基础:[0 0]名义:100 LatestFloatingRate:[南南]ResetOffset: [0 0] DaycountAdjustedCashFlow: [0 0] ProjectionCurve: [1 x2 ratecurve] BusinessDayConvention:(“实际”“实际”)假期:NaT EndMonthRule: [1] StartDate可以:14 - 2018年6月——成熟:14 - 2028年6月-名称:"
%创建5年期掉期(标的10年期掉期)%年。SwaptionExerciseDate = SwapStartDate;重置= 1;OptSpec =“电话”;罢工= 0.0272;掉期期权= fininstrument (“掉期期权”“罢工”罢工,...“ExerciseDate”SwaptionExerciseDate,“交换”交换,“OptionType”OptSpec)
Swap = Swap with properties: OptionType: "call" exercisstyle: "european" exercisdate: 14- june -2018 Strike: 0.0272 Swap: [1x1 fininstrument。交换)名称:"
%为五年到期的互换创建SABR模型。SABRModel = finmodel (“SABR”...“α”阿尔法(MaturityIdx),“β”贝塔(MaturityIdx),...的ρ罗斯(MaturityIdx),“怒”新加坡国立大学(MaturityIdx))
SABR model = SABR with properties: Alpha: 0.0467 Beta: 0.5000 Rho: 0.1162 Nu: 0.8014 Shift: 0
创建SABR分析价格。SABRPricer = finpricer (“分析”“模型”SABRModel,“DiscountCurve”ZeroCurve)
DiscountCurve: [1x1 ratecurve] Model: [1x1 finmodel。SABR]

为了形象化SABR隐含黑色波动率用于为掉期定价,首先使用parswaprate函数。

ZeroCurve CurrentForwardSwapRate = parswaprate(交换)
CurrentForwardSwapRate = 0.0384

接下来,计算SABR隐含的黑色波动率掉期期权通过使用波动函数,并在底部的图中用红色箭头标记。

SABRBlackVolatility =波动(SABRPricer,...SwaptionExerciseDate CurrentForwardSwapRate,罢工)
SABRBlackVolatility = 0.3665
text (YearsToExercise(MaturityIdx)), Strike, SABRBlackVolatility,...“\ leftarrow”“颜色”“r”“FontWeight”“大胆”“字形大小”、22);

图中包含一个轴对象。axis对象包含两个类型为surface和text的对象。

最后,用价格的函数SABR分析定价的人。

SwaptionPrice = price(SABRPricer, swap)
SwaptionPrice = 13.0141

参考文献

Hagan, Patrick S., Deep Kumar, Andrew S. Lesniewski, Diana E. Woodward。“管理微笑的风险。”维尔莫特杂志(2002年1月):84 - 108。

[2]西方,格雷姆。非流动性市场中SABR模型的校准应用数学金融学.12,没有。4(2005年12月):371-385。