技术文章

使用 MATLAB 应用程序根据期权价格估算风险中性密度 (risk-neutral density, RND)

作者 Andrea Barletta and Paolo Santucci de Magistris, Aarhus University


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

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

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

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

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

图 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 页面供用户下载。

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

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

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

图 2隐含波动曲线及使用广义 Weibull 核、主成分分析和 17阶 展开式估算出的 RND值。

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

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

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

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

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

未来升级

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

致谢

作为研究项目 The Invisible Risks of Derivatives Valuation Models (DFF – 6109-00056) 的一部分,此应用程序的开发获得了 Danish Council for Independent Research 的资助。

Aarhus University 以及全球近 1000 所其他大学均可在校园范围内使用 MATLAB and Simulink®。研究人员、老师和学生可通过 Total Academic Headcount (TAH) License 使用最新版本产品的常用功能,随时随地进行使用 — 无论在教室、家中、实验室还是项目现场均可使用。

关于作者

Andrea Barletta 是 Aarhus University 经济与商业经济学系的一名博士后研究员。

Paolo Santucci de Magistris 是 Aarhus University LUISS 副教授兼 CREATES 成员。

2018年发布

查看文章,了解相关行业