价格掉期期权使用SABR模型

这个例子显示了如何定价使用SABR模型交换选择权。首先,掉期期权波动率曲面从市场波动构造。这是由单独校准SABR模型参数每个互换期权到期日进行。该互换期权价格然后,通过使用在表面上的隐含波动率黑作为输入到计算swaptionbyblk函数。

步骤1。载入市场波动率数据。

加载掉期期权市场隐含波动黑色数据。

定居=12 - 2013年6月- - - - - -”;ExerciseDates = {'12 -sep-2013';12 - 2014年6月- - - - - -”;12 - 2015年6月- - - - - -”;...12 - 2016年6月- - - - - -”;12 - 2017年6月- - - - - -”;12 - 2018年6月- - - - - -”;'12 -Jun-2020';...12 - 2023年6月- - - - - -”};YearsToExercise = YEARFRAC(沉降,ExerciseDates,1);NumMaturities =长度(YearsToExercise);MarketVolatilities = [...57.6 53.7 49.4 45.6 44.1 41.1 35.2 32.0 46.6 46.9 44.8 41.6 39.8 37.4 33.4 31.0 35.9 39.3 39.6 37.9 37.2 34.7 30.5 28.9 34.1 36.5 37.8 36.6 35.0 31.9 28.1 26.6 41.0 41.3 39.5 37.8 36.0 32.6 29.0 26.0 45.8 43.4 41.9 39.2 36.9 33.2 29.6 26.3 50.3 46.9 44.0 - 40.0 37.5 - 33.8 30.2 - 27.3)/ 100;MarketStrikes = [...1.00 1.68 2.00 2.26 2.41 2.58 2.62;1.50 1.75 2.18 2.50 2.76 2.91 3.08 3.12;2.00 2.25 2.68 3.00 3.26 3.41 3.58 3.62;2.50 2.75 3.18 3.50 3.76 3.91 4.08 4.12;3.00 3.25 3.68 4.00 4.26 4.41 4.58 4.62;3.50 3.75 4.18 4.50 4.76 4.91 5.08 5.12;4.00 4.25 4.68 5.00 5.26 5.41 5.58 5.62]/100;:CurrentForwardValues = MarketStrikes(4日)
CurrentForwardValues =1×80.0250 0.0275 0.0318 0.0350 0.0376 0.0391 0.0408 0.0412
:ATMVolatilities = MarketVolatilities(4日)
ATMVolatilities =1×80.3410 0.3650 0.3780 0.3660 0.3500 0.3190 0.2810 0.2660

在这两个矩阵的第4行中,表示了这8个互换到期日的当前基础远期利率和相应的at-the-money波动率。

步骤2.校准每个互换期权到期SABR模型参数。

使用函数中实现的模型blackvolbysabr,静态SABR模型,其中模型参数被假定为常数相对于时间,参数分别为每个互换期权到期在校准(年到运动)循环。为了更好地反映市场的价格波动,我们用Α参数值是由市场隐含在平价期权引申波幅(请参阅“方法2”校准SABR模型)。

限定预定β,校准SABR模型参数的每一个swaption成熟度和显示表校准参数。

β= 0.5;= repmat(Beta, nummatities, 1);Alphas = 0(数字1);Rhos = 0 (NumMaturities, 1);n = 0(数字1);选择= optimoptions ('lsqnonlin','显示','没有');K = 1:NumMaturities%该功能解决了SABR在平价波动方程为多项式alpharoots = @(ρ,女)根([...(1  - β)^ 2 * YearsToExercise(K)/ 24 / CurrentForwardValues(K)^(2  -  2 *测试版)...的Rho * *贝塔女* YearsToExercise(K)/ 4 / CurrentForwardValues(K)^(1  - β)...(1 +(2  -  3 *的Rho ^ 2)*女^ 2 * YearsToExercise(K)/ 24)...-ATMVolatilities (k) * CurrentForwardValues (k) ^(1 -β)]);此函数通过选取最小正实根atmVol2SabrAlpha = @(ρ,女)分钟(实(arrayfun(@(x)的...X *(X> 0)+ realmax *(x <0的|| ABS(IMAG(X))> 1E-6),alpharoots(RHO中,Nu))));%拟合Rho和Nu(将at-the-money波动性转化为Alpha)objFun = @(X)市场波动率(:,k) -...blackvolbysabr(atmVol2SabrAlpha(X(1),X(2)),...Beta, X(1), X(2), Settle, ExerciseDates(k), CurrentForwardValues(k),...MarketStrikes(:,k))的;X = lsqnonlin(objFun,[0 0.5],[-1 0],[1 Inf文件],选项);的Rho = X(1);NU = X(2);%从校准的参数中得到最终的阿尔法值阿尔法= atmVol2SabrAlpha(ρ,女);阿尔法(K)=阿尔法;RHOS(K)=的Rho;努斯(K)=女;结束CalibratedPrameters = array2table([阿尔法贝塔Rhos酒店努斯]...“VariableNames”{'Α'“β”“卢”“怒江”},...“RowNames”{“3 m 10 y ';“1到10 y”;...'2Y为10Y';'3Y成10Y';'4Y到10Y';...“5到10 y”;'7Y进入10Y';'10Y到10Y'})
CalibratedPrameters =8×4的表α,β的Rho女________ ____ ________ _______ 3M成10Y 0.051947 0.5 0.39572 1.4146 1Y成10Y 0.054697 0.5 0.2955 1.1257 2Y成10Y 0.058433 0.5 0.24175 0.93463 3Y到10Y 0.058484 0.5 0.20568 0.79647 4Y成10Y 0.056054 0.5 0.13685 0.76993 5Y成10Y 0.051072 0.5 0.060285 0.735957Y成10Y 0.04475 0.5 0.083385 0.66341 10Y到10Y 0.044548 0.5 0.02261 0.49487

步骤3.构建波动表面。

使用校准后的模型来计算任何执行值的新波动率,以对给定的成熟度产生一个平滑的微笑。这可以在每个到期时重复,以形成一个波动面

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

PlottingStrikes = (0.95:0.1:5.8) / 100;ComputedVols = 0(长度(绘图罢工),数字);k = 1:计算的数值vols (:,k) = blackvolbysabr(Alphas(k), Betas(k), Rhos(k), Nus(k), Settle,...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设置',“大胆”);

请注意,在这个波动率曲面,微笑往往会得到更平坦的较长期限掉期期权(年运动)。这是一致的怒江参数值趋于与互换期权到期降低,如前面表中显示的用于CalibratedPrameters.

步骤4.使用swaptionbyblk给一个交换定价。

利用波动面来对5年后到期的互换进行定价。定义一个在5年内到期的掉期(10年期掉期),并在掉期时使用利率期限结构解决日期定义RateSpec.使用RateSpec使用来计算当前远期掉期利率swapbyzero函数。使用。计算该swaption的SABR隐含黑波动率blackvolbysabr功能(和它被标记在下面的图中的红色箭头)。价格使用SABR的掉期期权隐含波动率黑色作为输入swaptionbyblk函数。

%定义互换期权SwaptionSettle =12 - 2013年6月- - - - - -”;SwaptionExerciseDate =12 - 2018年6月- - - - - -”;SwapMaturity =12 - 2028年6月- - - - - -”;重置= 1;OptSpec ='呼叫';罢工= 0.0263;%定义RateSpecValuationDate =12 - 2013年6月- - - - - -”;EndDates = {'12 -Jul-2013';'12 -sep-2013';'12  - 癸2013';12 - 2014年6月- - - - - -”;...12 - 2015年6月- - - - - -”;12 - 2016年6月- - - - - -”;12 - 2017年6月- - - - - -”;12 - 2018年6月- - - - - -”;...'12 -Jun-2019';'12 -Jun-2020';'12 -Jun-2021';'12 -Jun-2022';...12 - 2023年6月- - - - - -”;12 - 2025年6月- - - - - -”;12 - 2028年6月- - - - - -”;'12 -Jun-2033'};率= [0.2 0.3 0.4 0.7 0.5 0.7 1.0 1.4 1.7 1.9...2.1 2.3 2.5 2.8 3.1 3.3]'/ 100;配混= 1;RateSpec = intenvset('ValuationDate'ValuationDate,'StartDates'ValuationDate,...'EndDates',EndDates,“价格”,价格,“复利”,复利)
RateSpec =同场的结构:FinObj: 'RateSpec' 配混:1张光盘:[16X1双]价格:[16X1双] EndTimes:[16X1双] StartTimes:[16X1双] EndDates:[16X1双] StartDates:735397 ValuationDate:735397基础:0 EndMonthRule:1
%使用swapbyzeroLegRate = [NaN的0];%要计算远期掉期利率,请将息票利率设置为NaN。[~, CurrentForwardSwapRate] = swapbyzero(RateSpec, le, SwaptionSettle, SwapMaturity,)...StartDate可以的,SwaptionExerciseDate);%使用blackvolbysabrSABRBlackVolatility = blackvolbysabr(阿尔法(6),贝塔(6),Rhos酒店(6),努斯(6),SwaptionSettle,...SwaptionExerciseDate CurrentForwardSwapRate,罢工)
SABRBlackVolatility = 0.3932
文本(YearsToExercise(6),打击,SABRBlackVolatility,“\ leftarrow”,...'颜色',“r”,“FontWeight”,“大胆”,'字体大小'、22);

%使用swaptionbyblk价格= swaptionbyblk(RateSpec,OptSpec,罢工,SwaptionSettle,SwaptionExerciseDate,...SwapMaturity SABRBlackVolatility,'重启'重置)
价格= 14.2403

“管理微笑风险”,《威尔默特杂志》,2002年。

[2]西,G.“的SABR模型中流动市场的校准,”应用数学金融学, 12(4),页371-385,2004。

另请参阅

||

相关话题