转自: http://www.finesys.com.cn/news/html/?453.html
1 前言
1.1 招商证券量化交易平台概述
量化交易是将投资策略用数量化模型固化,并运 用计算机程序实现,捕捉市场机会进行交易的投资方 式。量化交易主要分为以降低交易执行成本的交易执 行策略——被动型算法和以获取Alpha为目的的交易 决策——主动型算法两种类型。主动型算法即通过计 算机程序实现并执行特定的基本面或技术分析型的交 易策略,由算法决定交易下单的时机、价格乃至下单 的数量与笔数等 ;被动型算法的核心是提高特定交易 订单的执行效率,降低交易成本。算法通常会将大额 的交易分解为若干笔小额的交易,以便更好地管理市 场冲击成本、机会成本和风险、提高交易的时效性。
经过 20 多年的快速发展 , 中国证券市场已具备实 施量化交易的市场环境和技术条件。尤其是最近几年, 大量的金融创新产品,如权证、ETF 基金、融资融券、 股指期货、跨境 ETF,催生了大量的量化交易需求。对 于一家业内领先的全能型券商来说,迫切需要搭建一 套能满足高端零售客户、机构客户、自营、资产管理 等业务的量化交易平台。因此,招商证券在进行量化 交易平台建设时考虑的是建设一套企业级的量化交易 平台。
目前成熟的企业级量化交易平台,主要是基于 CEP(Complex Event Processing)引擎解决方案,能提供完整的开发工具,可以方便地开发并部署新算法 和策略,数据处理能力强劲,延迟极短,支持金融行 业各类交易业务。代表产品有 Software AG的 Apama 平台、 SAP/Sybase Aleri 平台、Streambase SPE 平台等。
我司选择了Apama CEP 平台作为量化交易平台的 支持系统。
1.2 量化交易平台整体建设思路
招商证券立志于打造一个全方位服务于零售经纪、 自营、资产管理等各业务的量化交易服务平台。该平台将为交易策略的研究论证、实现、仿真回测、执行、 结果评估等各环节提供强大的技术支撑。
1)策略研究论证。运用常用的量化策略研究设计分析的工具,诸如 R、 SAS、Matlab等,在量化交易平台提供的量化数据中 心、行情计算服务的基础上,进行量化策略的研究设计、 论证。
2)策略实现。对于策略研究论证阶段形成的量化策略,进入到量 化策略实现阶段,量化策略实现阶段依照 Apama CEP 定义的开发架构体系,完成对量化策略的开发实现。
3)策略仿真回测。对开发完毕的量化策略,部署到统一的量化策略测 试仿真环境中,使用量化数据中心的数据、测试柜台 系统、高仿真模拟撮合系统进行策略的仿真回测。并 根据仿真测试的执行结果决定是否需要对研究论证及 实现阶段的工作进行修正。
4)策略执行。对于经仿真回测阶段验证的量化策略,如达到预期 效果,则可放入量化交易平台生产环境进行实盘验证。 投入生产的量化交易策略,量化交易平台提供相应的 操作及监控客户端,操作客户端程序供实际使用的客 户启动、暂停、修改 ( 运行参数 )、撤销量化策略,而 监控客户端程序则提供了对运行在量化交易平台上策 略运行状态的监控。
5)策略结果评估。量化策略执行完毕后形成的交易数据 ( 含委托明细 及成交回报明细等),会被“落地”进行持久化存储, 便于日后对量化策略的实盘执行效果进行各个维度的 分析评估。量化交易平台整合了常用的执行结果评估 方法 ( 比如冲击成本估算,实际收益率计算等 ),并提 供可视化的界面展示及报表输出功能。
2 基于Apama CEP 的量化交易平台建设
2.1 系统架构
我司量化交易平台总共有以下四大部分构成 :
1) 量化交易执行系统
负责量化交易策略的执行,完成交易选股、交易 择时及套利时机捕捉等功能。
◆ Apama CEP 引擎Correlator:Apama 的核心组件 CEP 引擎 Correlator,负责装 载各量化策略实现的算法描述文件 (scenarios、blocks 等 )、monitor scripts 脚本、第三方 libraries 等,侦听 来自各IAF 适配器的外部事件,并根据各量化策略定 义的事件侦听模式进行匹配,驱动量化策略的运行。
◆ 快速交易系统适配器:完成对 Apama 委托指令事件 (Apama 格式 ) 至快 速交易系统委托订单数据包的转换,并维持与快速交 易系统之间的网络连接、客户登录认证及异常状况处理等功能。
◆ 系统运行状态适配器:收集量化执行系统核心CEP 引擎Apama Correlator 及各适配器的运行状态,并将各模块的运行 状态反馈至“系统运行维护及监控客户端”程序。便 于运维人员在发现系统运行状态出现异常时进行必要 的人工干预。
◆ 策略执行状态适配器:根据查询请求,获取量化策略运行的内部状态 ( 金 融产品成分、持仓比率,交易执行进度,交易成本等 ), 发送至“量化策略运行控制及监控客户端”程序。并 接收“量化策略运行控制及监控客户端”对运行中量 化交易策略的输入参数修改及控制指令 ( 启停、取消等 操作 )。
◆ 成交回报适配器:将收到的来自成交回报推送系统的成交回报消息 转化为Apama内部定义的成交回报事件,发送给核 心 CEP 引擎 Apama Correlator。除此之外成交回报适配器还需要维持与成交回报推送系统之间的网络连接、 处理来自 Apama Correlator 的成交回报推送订阅 ( 取 消订阅 ) 请求。
◆ 实时行情适配器:将来自行情数据源(Level2数据源、传统DBF数 据源等 ) 的实时行情数据转换为 Apama 内部定义的行 情数据事件格式,发送给 Apama Correlator。除此之 外该适配器还处理来自 Apama Correlator 的行情订阅 ( 取消订阅 ) 请求。
◆ 数据库适配器:负责维护链接至内存数据库及关系型数据库的数 据库连接池,将来自 Apama 内部的“落地”及查询请 求转化为实际的数据库操作,并负责在系统启动时的 全局配置数据装载等功能。
◆ 行情计算服务适配器:负责Apama 行情计算内部事件与行情计算服务平 台数据包之间的协议转换,并维持至行情计算服务之 间的网络连接。
◆ 仿真回放适配器:负责读取行情数据中心生成的回测数据,并生成 回测仿真事件驱动位于 Apama CEP 引擎 Correlator 上 量化交易策略的运行。
◆ 内存数据库:负责保存量化策略计算的中间结果及委托明细数 据,成交回报明细数据及各策略之间需共享存储的其他数据。
◆ 关系型数据库:数据库适配器将位于内存数据库中的委托明细数 据,成交回报明细数据,策略执行的其他数据异步写入 关系型数据库中,便于后续离线评估策略的执行效果。 同时关系型数据库中还保存系统启动的全部配置数据。
2) 行情计算服务
行情计算服务实现对实时高频行情数据、历史高频 行情数据等的计算加工,生成相应的加工计算结果后, 发送给 Apama CEP 引擎 Correlator 驱动量化交易策略 内部逻辑运行。如计算某只股票的日内1分钟K线数据。
3) 行情数据中心
行情数据中心为全司统一的量化交易行情数据中心,使用内存数据库、某开源NoSQL文档型数据库、 传统关系型数据库主要存储以下三类数据 :
◆ 内存数据库数据:主要用来存储全市场行情镜像数据 ( 某一时刻全市 场金融产品的行情数据 ),行情计算的中间结果数据等。
◆ NoSQL 文档型数据库:主要用来存储高频的历史行情数据(TBT数据), 最近一段时间分钟粒度的K线数据等数据量较大的数 据。
◆ 传统关系型数据库:将第三方数据平台提供的宏观面数据、公司财报 数据、分析数据经过结构化规整后,放入传统的关系 型数据库存储。
4) 外围系统
主要包括以下各控制监视、仿真回放、策略执行 效果评估子系统 :
◆ 系统运行维护及监控客户端:负责监控量化交易执行系统各模块的工作状态,在 系统运行出现异常时发出告警,运维人员确认告警后, 进行手工处理。
◆ 量化策略执行控制及监控客户端:负责监控量化策略的执行状态,执行进度,交易成 本等执行输出参数。在策略执行出现异常时发出告警, 触发交易员进行人工干预。
◆ 仿真回放:按照策略仿真回放的要求抽取行情数据中心中的 数据,并按照策略执行的逻辑,将抽取的行情数据发 送给 Apama 核心 CEP 引擎 Correlator,驱动量化交易 策略的执行。
◆ 策略执行结果评估:在量化交易策略执行完毕后,基于存放在关系型数 据库中的策略执行中间输出数据、委托明细数据、成交 明细数据等,评估量化策略的交易成本、市场冲击成本, 收益率等。
2.2 关键技术
1) 复杂事件处理CEP引擎Apama
我司量化交易平台使用 Progress 公司的复杂事件处理平台 Apama 作为核心的中央事件处理服务,完成 对实时行情数据流、历史行情数据流、行情指标计算结果等事件的处理,按照量化交易策略的内部逻辑处 理交易选股、交易择时等。
2) 快速交易系统
快速交易系统与传统交易系统的区别在于 :
◆ 剥离非交易功能:相较于传统交易系统,快速交易系统无账户管理、 集中清算、银证转账等非交易功能,更专注于订单生成、 申报及成交确认处理的高效性。
◆ 基于内存数据库技术:客户的账户信息、资金股份信息、委托明细数据 及成交回报等皆存放在内存中,使得对业务控制逻辑、 委托报盘及成交回报的处理速度都得到了极大的提升。
3) 历史高频数据存储与检索
我司量化交易平台选用某型开源的NoSQL文档 数据库存储高频历史行情数据(自2008年以来历史 逐笔成交数据)。相较于传统的关系型数据库及其他 NoSQL 数据库 ( 如 MemcacheDB 等 ),使用该型开源 的 NoSQL 文档数据库的优势在于 :
◆ 成本优势 相较于使用传统关系型数据库存储高频历史行情 数据,使用该型开源的 NoSQL 数据库可以极大的减少 存储开销。并且该型 NoSQL 数据库本身即支持集群存 储 ( 分片 Sharding) 技术,因而具备良好的存储扩展性。
◆ 读写效率优势 相较于其他NoSQL类型数据库(如MemcacheDB 等),该型开源NoSQL数据库可以实现类似关系数据 库单表查询(使用类似于面向对象的查询语言)的绝 大部分功能,还支持对数据建立索引,而非仅仅提供 Key-Value 形式的数据存储、检索功能。
◆ 存储数据灵活的优势 该型开源 NoSQL 数据库中的集合 ( 类似传统关系 型数据库中的表 ) 是无模式的,因而可以灵活的将多种 不同类型的数据,比如可将日K线数据、5分钟K线 数据等不同类型数据的放入同一集合中。
4) 行情计算服务子系统
为了让CEP引擎Apama专注于处理量化交易策 略内部逻辑,我们设计了行情计算服务子系统,该子系 统实现对实时高频行情数据、历史高频行情数据等的 计算加工能力,生成相应的加工数据后,发送给CEP 引擎 Apama 驱动量化交易策略内部逻辑运行。
2.3 下一步的工作
1) 丰富行情数据类型:目前的行情数据类型仅覆盖实时高频行情 (L1、L2 级别 ),历史高频行情等数据,下一步计划引入宏观政 策类数据、上市公司财报数据等数据类型,提高对量 化交易策略的数据支撑力度。
2) 强化行情计算服务子系统:目前量化交易平台使用的行情计算服务功能还较 为单一,支持的计算种类也较为有限,仅支持日内分 钟粒度的 K 线计算、实时行情镜像等较为简单的功能, 并且计算逻辑的编写不算灵活,作为提供行情计算的 基础服务平台尚有一定距离。
3 总结
建设一个功能强大、支撑有力、应用灵活的量化 交易平台是一个长期复杂的系统工程,需要整合公司 量化投资策略设计、交易系统开发以及量化投资实践 等各方面的资源,量化交易平台建设的初始资金及人 力投入比较大,而且后续需要持续不断的资源投入。 招商证券量化交易平台虽已投入实际生产,但平台 本身尚有许多需要不断改进完善的地方,如在行情数 据中心中增加新的数据类型,建设更加灵活的行情计 算服务子系统等。