1文件概览
1.1期权计算函数
文件夹“options_functions_matlab”为自己编写的期权特征参数或估值计算函数汇总,可实现BSM欧式期权估值、欧式期权希腊字母绘图、单个期权持仓盈亏比例曲面绘图、CEV欧式期权估值、jump-diffusion欧式期权估值、Variance-Gamma期权估值、亚式期权数值模拟估值(绘图显示是否收敛)。计算公式与《JohnC. Hull. Options, Futures, and Other Derivatives, 9th Edition, 2014》一致。文件内容见图1。
1.2期权计算程序
文件夹“options_calculation_templates”为计算代码模板,可实现功能如下:各种期权特征参数、欧式期权BSM公式估值、亚式期权MonteCarlo模拟估值、Variance-Gamma过程与几何布朗运动(geometric Brownian motion)过程对比绘图、CEV和jump-diffusion波动率微笑计算、Variance-Gamma波动率微笑计算、资产历史波动率和预测波动率计算、期权隐含波动率计算、波动率锥多项式拟合、上海交易所培训资料列出的所有期权组合盈亏曲面(使用多项式拟合的波动率曲面)、可转换债券Excel表估值、可转换债券数值模拟估值等。另外附上考虑稀释效应的公司流通期权估值模板(Aswath Damodaran课程公开资料)和各种欧式美式期权、奇异期权、零息利率和利率互换估值的DerivaGem400.xls(John C. Hull. Options, Futures,and Other Derivatives课程公开资料)。可转换债券估值程序在沪深市场使用效果良好。文件内容见图2。2期权组合策略计算程序
计算程序不仅包括上海交易所培训资料列出的所有期权组合,还包括盒式价差、序列组合、带式组合等。每个计算程序均绘制到期日组合价值曲线和时间历程下盈亏曲面,给出初始保证金和最大保证金需求、期权市场价与理论值差异、组合收益率等计算结果。在沪深市场用于ETF指数期权实盘投资计算,结果表明市场很有效,计算结果也很准确。已实现组合策略包括:
%conservative trading保守型交易合成权益多头longequity replacement=Long call, K ,T+short put, K, T
%Conservative trading保守型交易策略protectiveput--equity权益保险策略=longstock+long put,K
%conservative trading保守型交易合成权益空头shortequity replacement=short call, K ,T+long put, K, T
%Conservative trading保守型交易策略writinga covered call--equity备兑开仓=longstock+short call,K
%Conservative trading保守型交易策略neckline--equity领口策略=longstock+long put,K1+short call,K2; K1<K2;T
%conservative trading保守型交易策略securitiesborrowing covered call融券保险策略=shortstock+long call,K
%spreads trading价差交易bullishand bearish and calendar diagonal call spreads多种牛熊市或日历对角认购价差
%bullish call spread牛市认购价差=longcall,K1+ short call,K2; K1<K2, T big better
%bearish call spread熊市认购价差=longcall,K1+ short call,K2; K1>K2, T small better
%calendar call spread认购日历价差=LongCall,T1 + Short Call,T2, same K, T1>T2
%diagonal bullish call spread认购对角牛市价差=LongCall,K1, T1 + Short Call, K2, T2;K1<K2, T1>T2
%diagonal bearish call spread认购对角熊市价差=LongCall, K1, T1 + Short Call, K2, T2;K1>K2, T1>T2
%spreads trading价差交易bullishand bearish and calendar diagonal call spreads多种牛熊市或日历对角认购价差
% bull put spread牛市认沽价差longput, Strike K1+short put, Strike K2; K1<K2, T small better
%bear put spread熊市认沽价差longput, Strike K1+short put, Strike K2; K1>K2, T big better
%calendar put spread认沽日历价差Longput,T1 + Short put,T2, same K, T1>T2
%diagonal bullish put spread认沽对角牛市价差Longput, K1, T1 + Short put, K2, T2;K1<K2, T1>T2
%diagonal bearish put spread认沽对角熊市价差Longput, K1, T1 + Short put, K2, T2;K1>K2, T1>T2
%spreads trading价差交易butterflycall spread蝶式认购价差baldeagle call秃鹰式认购策略
% butterfly call spread蝶式认购价差:%Generally, K2 is close to the current stock price
% long call, Strike K1+short call,K2+short call, K3+ long call, Strike K4; K1<K2=K3<K4
%秃鹰式策略=蝶式价差中间两个卖出期权的行权价不同
% long call, K1+short call, K2+shortcall, K3+ long call, Strike K4; K1<K2<K3<K4
%spreads trading价差交易butterflyput spread蝶式认沽价差baldeagle put秃鹰式认沽策略
% butterfly put spread蝶式认沽价差:%Generally, K2 is close to the current stock price
% long put, Strike K1+short put,K2+short put, K3+ long put, Strike K4; K1<K2=K3<K4
%秃鹰式策略=蝶式价差中间两个卖出期权的行权价不同
% long put, K1+short put, K2+short put,K3+ long put, Strike K4; K1<K2<K3<K4
%spreads trading价差交易ironbutterfly铁蝶式ironeagle铁鹰式box spreads盒式价差
% 铁蝶式期权组合=牛市认沽价差+熊市认购价差
% long put, K1+short put, K2, shortcall, K3, long call,K4; K1<K2=K3<K4
% 铁鹰式策略=牛市认沽价差+高行权价熊市认购价差
% long put,K1+short put,K2+ short call,K3+ long call, K4; K1<K2<K3<K4
%% box spreads盒式价差(适用于欧式期权)=牛市认购价差+熊市认沽价差
%% long call,K4+short call,K3+shortput,K2 + long put,K1; K4=K2,K3=K1,K4<K1
%the payoff from a box spread is alwaysK2-K1.
%The value of a box spread is thereforealways the present value of this payoff or (K2-K1)*exp(-rT)
%volatile market trading震荡市场交易买入straddle跨式strangle勒式strip序列strap带式组合
% bottom straddle or straddle purchase跨式组合%Long Put, Strike K, T+Long Call, Strike K, T
% strangle or bottom verticalcombination异跨式/勒式组合%LongPut,Strike K1+Long Call,Strike K2; K1<K2, same T
%strip序列组合onelong call + two long puts, same K, T
%strap带式组合twocalls + one put, same K, T
有些不同组合可以在一个程序中设置参数选项实现,例如程序equity_Europian_option_spreads_butterfly_bald_eagle_call.m可实现蝶式认购价差和秃鹰式策略,程序equity_Europian_option_spreads_bull_bear_calendar_diagonal_call.m可实现牛市认购价差、熊市认购价差、认购日历价差、认购对角牛市价差和认购对角熊市价差,程序中portfolio_id参数取值1~5对应5中策略组合,程序中有详细文字注释,包括参数取值关系和如何优选。程序开头注释内容如图3。
3运行示例
3.1 Variance-Gamma过程与几何布朗运动过程对比
运行Variance_Gamma_process_versus_geometric_Brownian_motion_template.m,结果如图4所示。
3.2资产历史波动率和预测波动率计算
volatility_solution_data_Template_v1.1.xlsx为源数据格式模板,运行volatility_solution_Template_v1_3.m,代码中设置文件路径段落如下:
%%user set
path='D:\desktopdocu\' %工作路径
userpath(path)%
%增加一个文件路径
tempor_path='D:\Financial_analysis\Financial_analysis_templates\options_functions_matlab'
%或增加包括子文件夹的多个文件路径
tempor_path=genpath('D:\Financial_analysis\Financial_analysis_templates');
addpath(tempor_path)
%rmpath(tempor_path) %运行完程序后删除临时工作路径
运行结果如图5所示,Matlab运行窗口中给出年化历史波动率及标准差、偏度、峰度、价格均值、GARCH/EGARCH/GJR条件方差模型预测结果及t检验值,实际交易中选择隐含波动率计算效果比较好,组合策略中就是选用隐含波动率。
3.3期权隐含波动率计算
运行任意组合策略程序后在Matlab运行窗口中显示结果
3.4隐含波动率锥多项式拟合
运行option_Europian_volatility_cone_polynomial_fitting_template.m,结果如图6所示,Matlab运行窗口中显示多项式系数计算结果:
poly_coeff_call = 0.1107 -0.0541 0.1615
poly_coeff_put = 0.7492 -0.4856 0.1986
组合策略程序中使用此结果。3.5波动率微笑计算
已CEV和jump-diffusion方法为例,运行volatility_smile_equity_Europian_call_CEV_and_jump_diffusion_solve_template.m,运行结果如图7所示,就上市公司股权而言,资产价格下跌时波动率比上涨时明显升高,一个主要原因是公司基本面恶化时主体信用评级下降、经营风险升高。
3.6期权特征参数曲线和曲面
运行option_parameters_calculation_equity_Europian_template.m,Matlab运行窗口中显示单个期权估值、希腊参数初始值、当前市场价的隐含波动率、杠杆率、考虑交易佣金和保证金的盈亏平衡点。6个绘图窗口显示希腊参数时间或资产价格历程下动态曲线、到期日资产价格历程下盈亏曲线、时间和资产价格历程下盈亏曲面,图8和图9为其中两个绘图。
3.7牛市认购价差
上交所培训资料中提到,牛熊价差策略如同武侠中降龙十八掌,大道至简,基本功硬实可以应付各种复杂情况。牛市认购价差策略通过买入较低行权价的认购期权,同时卖出较高行权价相同到期日的认购期权来构建,期限较大时较好。掌握牛熊价差策略有利于理解各种组合策略。
小牛市时适宜使用的牛市价差策略、小熊市时的熊市价差策略、不涨不跌的行情下可以用的蝶式价差策略,这些均是在对市场走势有一定预期的情况下,进行收益有限、风险亦有限的投资;跨式组合、勒式组合等策略则是因为预期市场将有较大波动,因此对波动性进行交易。
打开equity_Europian_option_spreads_bull_bear_calendar_diagonal_call.m,设置portfolio_id=1;Matlab运行窗口中显示历史波动率与隐含波动率相对差异、资产价格变动时组合持有或卖出孰优、考虑佣金的盈亏平衡点及对应资产价格、组合成本与资产价格变化较大时保证金。运行结果如图10~12所示。
此程序可实现牛市认购价差、熊市认购价差、认购日历价差、认购对角牛市价差、认购对角熊市价差。
3.8蝶式认购价差
期权策略中的蝶式策略是一种高盈亏比、高杠杆的策略,适用于标的证券价格在一定范围内的波动情况,因为构建的策略到期损益图的形状像一只蝴蝶而得名。认购期权蝶式策略是指同时买入一份实值认购期权、卖出两份平值认购期权、买入一份虚值认购期权(行权价间隔相等,同时到期日一致)组成的策略。它是一种要求较高的策略,能够提供较好的风险收益比(return/risk)。蝶式期权策略的最大收益出现在股票价格行权价附近,风险有限,盈利有限。小规模交易蝶式期权时候,必须要考虑买卖价差和多份佣金,获利空间有限。
蝶式价差中间两个卖出期权的行权价不同时为秃鹰式策略。
打开equity_Europian_option_spreads_bull_bear_calendar_diagonal_call.m,设置portfolio_id=1;Matlab运行绘图结果如图13~14所示。
扫码加好友,拉您进群



收藏
