发布于vn.py社区公众号【vnpy-community】

 

原文作者:用Python的交易员 | 发布时间:2020-08-27

 

感谢大家的支持,全新的《30天解锁Python量化开发》课程订阅量已达82份,8折优惠名额还剩最后18位,感兴趣的同学请欲购从速~~课程大纲详情戳我

 

这两周被催更了,先说明下这个技术架构的系列一共会有4篇文章和8个项目,分别对应:

  • 语言选择:Matlab
  • 系统设计:AlgoTrader
  • 标准接口:CTP API
  • CTA策略:MultiCharts
  • 价差交易:TT X_Trader
  • 期权交易:Horizon
  • 用户社区:Quantopian
  • 教学讲解:QuantStart

相比较于CTA策略,国内做价差交易(套利交易)和期权交易(波动率交易)的人数会少很多。所以相比于前面文章中的项目,可能大部分同学都完全没听说过这方面的平台,比如海飞鼠、ATP、飞豹、风软OptKingdom等等。

本篇文章中要讲的两个平台,分别是对启发了vn.py项目中SpreadTrading模块的的TT X_Trader平台,以及启发了OptionMaster模块的Horizon平台。

 

TT X_Trader

 

官网:www.tradingtechnologies.com

类型:商业软件

国家:美国

语言:C++

启发:价差交易

目前全世界的期货交易所,有许多已经在交易所系统内直接提供了丰富的价差合约(比如大商所的豆粕跨期组合),方便交易员直接进行价差交易。

但这类价差合约正因为交易太过方便导致竞争非常激烈,获利的空间也相对较小。许多情况下,交易员需要根据自己的经验和模型构建的非标准价差组合,才能找到更多的获利机会。

TT X_Trader是一款由Trading Technologies(缩写TT)公司推出,专门针对复杂价差交易的专业系统。在Google上搜索最常看到的就是类似下面的截图:

description

上图中从右到左一共三个OrderBook盘口信息,显示的分别是CME迷你标普期货、CME迷你纳指期货以及由这两个期货合成的价差组合。

交易员可以直接对价差组合发出买卖委托,由X_Trader内部的价差执行引擎AutoSpreader来完成具体各条价差腿上的交易执行,基于主动腿成交后被动腿瞬时对冲的模式,来最小化价差交易中的瘸腿风险。

description

其中价差组合的盘口价格信息,会根据如上图中用户自定义的价格乘数、交易乘数、主动被动腿等参数,由X_Trader内部的价差数据引擎来实时高速计算,并驱动价差执行算法来自动完成交易任务。

除了能将复杂的价差组合交易简化得接近单一期货合约的买卖,X_Trader还提供了ADL(Algo Design Lab)模块给交易员,来开发针对价差组合的量化交易策略。

最神奇的一点在于:使用ADL开发策略时用户完全用不着写代码!只需要通过类似下图中的界面,拖动和连接各种代表交易策略逻辑功能的图形块,就能完成整个量化策略的开发。

description

vn.py的SpreadTrading价差交易模块,在设计上采用了接近X_Trader的业务逻辑分层:

  • LegData负责跟踪和记录最底层各原始合约的数据(价格、持仓);
  • SpreadData维护价差组合的自定义参数,以及和LegData的映射;
  • SpreadDataEngine自动实时计算价差的盘口和持仓状态数据;
  • SpreadAlgoEngine执行用户下达的价差交易算法指令(手动、策略);
  • SpreadStrategyEngine则负责运行用户开发的价差量化策略。

目前vn.py在交易层面可以说基本实现了接近X_Trader的功能,但在UI界面上还有挺大的距离,尤其是这个ADL模块,从一个交易员的角度来看真是非常非常眼馋。

 

Horizon

 

官网:www.hsoftware.com

类型:商业软件

国家:法国(不确定)

语言:Java

启发:期权波动率交易

Horizon应该是最早进入中国市场的期权做市量化平台之一,另外还有后来被Bloomberg收购了的RTS(ORC当时还没进来),创始团队来自一家法国投行的做市部门(Societe Generale还是BNP Paribas的不记得了)。

对于期权方面的量化策略(做市、波动率交易、套利等),Horizon提供了相当完备的功能支持,首先基于市场价格来实时计算隐含波动率曲面,并进行定价波动率的拟合设置,如下图所示:

description

有了定好的定价波动率(Pricing Volatility或叫Reference Volatility)后,就可以基于标的物的实时价格来计算期权理论参考价值,再结合报价价差、报单数量、持仓调整系数等参数,挂出双边买卖委托来进行做市交易

做市算法的管理界面有点类似常见的T型报价,但是有更多用于调整算法参数的表格列,同时一定要有如下图中所示的表格高亮(防止交易员眼花):

description

成交后的期权持仓风险管理,除了最基本的Delta自动对冲功能外,对于其他希腊值也需要实时跟踪计算,方便交易员随时根据市场情况来执行相应的对冲调仓操作。

同时Horizon也内置了事件驱动引擎(Esper),对于更加个性化的套利交易策略,允许交易员自行使用Scala语言(关于这个语言的选择我倒是挺想吐槽)来快速开发策略程序,当然策略监控的界面就比较简单了,只有数字和开关按钮:

description

参考Horizon的交易业务流程,vn.py内面向期权波动率交易的OptionMaster模块,把底层数据分为了4个层次

  • 标的物:UnderlyingData
  • 期权:OptionData
  • 期权链:ChainData
  • 交易组合:PorfolioData

通过更紧密的数据结构优化,以及Cython化的定价模型组件,来解决纯Python程序在期权波动率交易这种追求低延时策略上的性能问题。

对于国内ETF期权上独有的合成期货长期贴水,OptionMaster模块内也额外添加了升贴水自动拟合算法,来保证系统内Call和Put隐含波动率计算的平衡性,避免出现许多平台上的两者对不齐的现象。

考虑到大部分用户并没有做市商牌照,无法使用CTP等柜台提供的ReqQuoteInsert双边报价函数,因此OptionMaster自带的电子眼交易算法ElectronicEyeAlgo只支持见价主动成交。当然,对于有做市需求的机构用户也可以自行修改后实现双边报价的做市功能。

 

同样,有什么想问的问题或者分享的内容,欢迎在文章下方留言。本期我们将会随机抽取一位留言者赠送《vn.py全实战进阶 - 深入期权定价模型》课程的5折优惠券一张。