热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【金融/交易】基于CEP的量化交易平台建设

转自:http:www.finesys.com.cnnewshtml?453.html1前言1.1招商证券量化交易平台概述量化交易是将投资策略用数量化模型固化,并运用计算机程序

转自: 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   总结

建设一个功能强大、支撑有力、应用灵活的量化 交易平台是一个长期复杂的系统工程,需要整合公司 量化投资策略设计、交易系统开发以及量化投资实践 等各方面的资源,量化交易平台建设的初始资金及人 力投入比较大,而且后续需要持续不断的资源投入。 招商证券量化交易平台虽已投入实际生产,但平台 本身尚有许多需要不断改进完善的地方,如在行情数 据中心中增加新的数据类型,建设更加灵活的行情计 算服务子系统等。




推荐阅读
  • MongoDB核心概念详解
    本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • 本文介绍了如何使用Postman构建和发送HTTP请求,包括四个主要部分:方法(Method)、URL、头部(Headers)和主体(Body)。特别强调了Body部分的重要性,并详细说明了不同类型的请求体。 ... [详细]
  • 如何解决TS1219:实验性装饰器功能可能在未来版本中更改的问题
    本文介绍了两种方法来解决TS1219错误:通过VSCode设置启用实验性装饰器,或在项目根目录下创建配置文件(jsconfig.json或tsconfig.json)。 ... [详细]
  • 本文详细介绍如何使用Netzob工具逆向未知通信协议,涵盖从基本安装到高级模糊测试的全过程。通过实例演示,帮助读者掌握Netzob的核心功能。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • 本文介绍了如何通过安装 rpm 包来使用 resize2fs 和 ext2online 工具进行系统文件的扩容。提供了详细的步骤和注意事项。 ... [详细]
  • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • 在C++程序中,文档A的每一行包含一个结构体数据,其中某些字段可能包含不同数量的数字。需要将这些结构体数据逐行读取并存储到向量中,随后不仅在控制台上显示,还要输出到新创建的文档B中。希望得到指导,感谢! ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • Nginx 反向代理配置与应用指南
    本文详细介绍了 Nginx 反向代理的配置与应用方法。首先,用户可以从官方下载页面(http://nginx.org/en/download.html)获取最新稳定版 Nginx,推荐使用 1.14.2 版本。下载并解压后,通过双击 `nginx.exe` 文件启动 Nginx 服务。文章进一步探讨了反向代理的基本原理及其在实际应用场景中的配置技巧,包括负载均衡、缓存管理和安全设置等,为用户提供了一套全面的实践指南。 ... [详细]
author-avatar
wInnIe小店
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有