前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >根据期权价格估算风险中性密度

根据期权价格估算风险中性密度

作者头像
量化投资与机器学习微信公众号
发布2018-05-28 14:12:11
1.1K0
发布2018-05-28 14:12:11
举报
作者:Andrea Barletta 和 Paolo Santucci de Magistris,Aarhus 大学

由于场外期权合约的买卖在交易双方间私下进行而非通过公开市场,因而可能很难确定合约的价格有利于买方还是卖方。为对这些合约进行定价,金融分析师往往依据看涨期权或看跌期权价格估算出风险中性密度 (RND)值。常规做法是根据历史数据来确定定价模型的参数值,进而 估算RND值。

根据参数定价模型估算 RND 有几个缺点,如处理时间较长而且可能存在误差。简单模型可快速完成调试,但很可能会与金融数据的一些历史经验特征不一致,生成的结果误差较大;复杂模型能够提供更精确的结果,但所需调试时间较长 — 如果没有闭式解(解析解),通常需要长达数小时。即使复杂的模型能够提供看似合理的结果,也可能由于没有应用有效的数值分析技术而存在偏差。此外,由于定价模型主要依据历史数据,由建模人员自行决定需要采纳的历史数据量 — 这种主观决定会影响结果。

Aarhus大学的研究团队开发了一款非结构化无模型 RND 估算方法,不依赖参数化模型,而是完全由数据自身决定。这种方法利用当前数据(而非历史数据)通过正交多项式展开式估算 RND 和期权敏感度指标(Greeks),这样能够比应用模型的方法更快得到结果 — 通常仅需几秒钟来估算 RND。

为演示我们的方法,便于学生、分析师和研究人员进行应用,我们将它封装为 MATLAB® 应用程序(图 1)。我们在两篇文章中对该方法进行了详述 (A Non-Structural Investigation of VIX Risk Neutral Density(估算 RND)和 It Only Takes a Few Moments to Hedge(估算敏感度指标)),并用Risk-Neutral Density Fitting Tool 应用程序具体实现了该方法。

2篇论文、1个工具的链接如下: 1、https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2943964 2、https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3086538 3、https://abarletta.github.io/rndfittool/

图 1Risk-Neutral Density Fitting Tool 应用程序

我们为什么选择 MATLAB

我们决定创建 MATLAB 应用程序估算 RND,因为我们希望研究成果得到广泛应用,而不是仅限于在量化经济学领域或是熟悉 MATLAB 编程的金融研究人员使用。

我们发现,MATLAB 大大加快了了开发进度。我们在两到三个月内完成了大部分开发工作 — 据估算,使用传统编译语言大约需要两年时间。 MATLAB 是一种解释型语言并基于 JIT 编译器运行,这令我们避免了繁琐的“编辑-编译-测试”周期;相反,我们采用交互形式开发方法,调用 MATLAB 中的函数并反复检查结果。不依靠第三方库,也无需自行编写线性回归、主成分分析及其他功能算法,而是利用Curve Fitting Toolbox™、Financial Toolbox™、Optimization Toolbox™ 和 Statistics and Machine Learning Toolbox™ 等工具包中经过验证的函数。使用解释型语言时,运算性能是我们关注的问题。但是,通过采用 MATLAB 中的向量化运算和优化的函数,其性能与编译语言基本接近。

除了加快实施我们的 RND 方法之外,MATLAB 还可以轻松构建界面并将其与底层代码封装成为一款应用程序。我们使用 MATLAB 应用程序开发工具设计窗口、按钮及界面中的其他控件。然后,将完整应用程序封装为单一安装程序文件,并发布到项目的 GitHub 页面供用户下载。https://abarletta.github.io/rndfittool/

通过应用程序估算 RND 并查找敏感度指标

下载并安装应用程序后,通常先从 OptionMetrics 或 Chicago Board Options Exchange (Cboe)等数据源加载期权价格数据(MATLAB应用程序支持直接调用这两个数据源)。然后用户检查输入数据对应的价格曲线并根据需要调整行权价格的上下限(看跌或看涨期权最低和最高行权价格)。之后用户选择核、展开式阶数以及用于估算展开系数的方法(例如,主成分分析)。核指定概率分布,为 RND提供一个初始值;而展开式阶数则定义正交多项式数量,“校正”核来估算 RND。

此应用程序包含多个内置核,包括 beta gamma、广义逆高斯、广义 Weibull 和对数正态,而且用户可以通过自己编写 MATLAB 函数来对内置核进行扩展。展开式阶数越高,展开式就越精确,但估算所需的时间也会更长(图 2)。

图2隐含波动曲线及使用广义 Weibull 核、主成分分析和 17阶 展开式估算出的 RND值。图示中使用的数据集包含 2011 年 12 月 21 日在 Cboe Volatility Index® (VIX®) 上的 1 月期看涨期权和看跌期权。

最后,计算敏感性指标 delta、gamma 和 vega,用户只需单击应用程序的“查找敏感度指标”按钮。界面中会显示这三个指标图(图 3)。

图 3敏感度指标图:看涨期权 delta、 gamma 和 vega。

所有图均可另存为 MATLAB 图像或者 PNG、PDF 或 EPS 文件,所有结果均可导出并保存以便进一步分析。

将来升级的功能

从我们收到的反馈来看,用户对于该应用程序予以了肯定。基于这些反馈,我们将进一步改进应用程序并规划对其的升级。例如,我们考虑在分析中添加时间点和到期日,我们将研究使用多变量密度,并应用期权价格的历史数据来预测整个密度曲线,而非仅在某一个时间点的曲线。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量化投资与机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档