对于期货公司、证券公司等金融机构而言,期权投研软件是开拓期权市场必不可少的武器之一,机构研究人员通过投研平台主要满足两个需求,其一为实现实时行情数据和历史数据的接入,其二为通过编程快速实现交易策略。 针对上述需求,国内目前可使用的投研软件或平台有Bloomberg彭博数据终端,盈佳CTP-COM,Wind万得金融终端,EXCEL,R,Matlab,Python等,由于期权投研体系往往会大量运用各种建模技术,本文将按照投研数据软件和投研分析平台的分类进行独立评测,力图客观展现各家平台的优点和不足所在。 投研数据软件: Bloomberg彭博数据终端 关键词:国际期权市场、期权分析工具 API:Excel、Matlab、Perl、Python、C++、.Net、Java Bloomberg彭博数据终端作为国外主流的金融分析软件,除了能够提供国内外绝大部分交易所的行情数据外(该软件已经接入了国内期权仿真行情),还内置了诸多期权分析工具,如期权波动率曲面分析、期权投资组合情景分析和极端事件分析等。 其在期权投研方面最大的意义在于可以通过国外期权市场的数据对国内市场进行类比分析,例如:白糖期货内外盘价格有着一定的联动性,因此通过分析ICE交易所白糖期货期权的波动率曲面,可以判断国内目前的期权价格是否存在潜在套利空间。最后,Bloomberg的API接口强大,几乎可以对接所有主流的金融编程工具。 盈佳CTP-COM 关键词:直连CTP柜台 API:COM(所有支持ActiveX的编程工具) 盈佳CTP-COM接口通过ActiveX控件的方式对CTP本身的C++ API接口进行了封装,具有非常高的用户友好性,在大大简化了编程难度的同时使得用户可以方便的在Excel、Matlab、Python等软件中接入实时期权价格数据。尽管该接口仅能提供实时行情数据,但由于其数据直接通过期货公司的CTP柜台获得,相比较于Wind和Bloomberg数据的二次转发在时效性上要高得多,更适合于日内期权分析方面的开发。同时CTP-COM接口也支持直连柜台下单功能,使得在投研平台中实现整合下单成为了可能。 Wind 万得资讯金融终端 关键词:期权历史数据 API:Excel、Matlab、R、Python、C++、C# 万得终端提供的数据行情包括中金所股指期权、大商所豆粕期权、上交所个股期权和港交所期权。除了最新交易数据外,万得还提供了期权历史时间序列数据,可以用于期权交易策略的历史回测。其API接口也相当全面,除了主流的数据分析软件外也能对接C++和C#这两种适合生产环境开发的编程语言,并且API的功能除去导出数据外也能连接柜台系统下单。 但是作为全新的期权业务,万得除去数据行情外尚未推出任何具体的分析功能,用户需要完全基于自己的需求进行开发。 投研分析平台: Excel 关键词:常用软件、简单有效 Excel作为全球金融机构最常用的量化分析工具之一,其易用性及灵活性得到了长期的检验。通过数据软件的API接口导入 期权行情数据后,配合简单的表格公式编程和VBA编程,用户可以在很短的时间内完成价差分析、波动率分析等常规模型的构建,并且非常便于每日盘中随时对模型和策略进行微调。 Excel的弱点在于VBA的计算性能较低,不适合执行运算密集型的任务,如实时计算期权希腊值或波动率曲面。有这方面需求的用户可以通过使用高性能计算语言如C和C++等编写相应的计算功能并通过EXCEL进行调用,在不损失EXCEL易用性的同时也能保证计算的效率。同时,Excel强大的表格显示功能使得其非常适合用于作为整个投研平台的前端图形接口,国外不乏大型金融机构的交易部门完全使用EXCEL来执行订单管理、仓位管理、报价窗口管理等等相关工作。 Matlab 关键词:算法引擎、高级工具箱 同样作为国内外金融机构常用的量化分析平台之一,Matlab的核心功能主要是针对大规模数据进行量化分析以及算法开发,配合丰富的工具箱,非常适合于进行机器学习之类的高端算法开发:如小波分析、人工神经网络、遗传算法等。 在期权投研方面,Matlab更多应用于盘后的数据分析应用:如交易策略回溯测试、持仓情景压力测试等。 Matlab主要缺点在于其GUI开发功能较弱,同时由于并非为实时连续运算设计,该软件本身并不适合用于日内实时行情的研究工作,但是目前国内也已经有许多大牛通过各种细节方面的改造,完全使用Matlab作为核心引擎架设量化交易系统并取得了非常好的效果。 R 关键词:算法引擎、开源软件 R-Project,常被称为R语言或R,是一个能够自由有效地用于统计计算和绘图的语言和环境,它提供了强大的统计分析和绘图技术。R常被和Matlab放在一起进行比较,一方面两者同为业界广泛运用的数量分析工具,另一方面在国内外商学院的金融工程专业课程中,通常学生必学的一门数量编程工具不是R就是Matlab。 R作为开源软件,用户可以免费使用同时,也能够根据自身需求自由修改源代码来实现一些特殊功能。在期权投研上,R几乎可以用于实现所有Matlab能实现的模型和策略, 仅仅在一些细微之处有所区别,两者之间的选择更多是一个仁者见仁智者见智的问题。 Python 关键词:胶水语言、瑞士军刀 Python作为一门完整的编程语言,和前面提到的分析平台最大的不同点在于Python可以如同瑞士军刀一般实现从研究到生产的全部过程。通过numpy、scipy和matplolib等数量分析插件,Python可以实现绝大部分Matlab的数据分析和算法开发功能,同时结合cython和numba等工具包,可以将Python中的程序运行速度提升到接近C的水平,这意味着用户的研究成果可以直接接入到交易环境中,而无需像Matlab和R一样需要在算法开发完成后二次编写为C++或Java的代码。 Python又被称为胶水语言,当其本身的软件包无法满足用户需求时,用户可以非常方便的连接到C++、Matlab、Excel等工具,甚至对不同软件中的功能进行整合来完成特定的任务(如使用Python作为核心、使用Matlab作为算法引擎、使用Excel作为GUI输出界面构建量化交易系统)。 |