量化交易平台设计浅谈

“买入前10只现价创一年新高的股票,合计10万元平均分配,限价下单”,这是一个交易策略;运行该交易策略所需要的实时行情、历史行情、事件处理、风控、下单接口、回测统计等模块,就是交易系统平台。

从投资机构的角度考虑,下面简单介绍供量化交易员/宽客(Quant)们使用的交易平台如何设计。

一、交易系统平台架构设计

从输入和输出两端来说,任何交易系统都是通过两条路径和交易所发生交互:

1、接收交易所公布的市场数据

2、发送买卖订单并接收交易所应答

系统从交易所或者行情提供商获取最新的行情报价,包含信息有当前成交价格、成交量和委托订单队列。

通常,交易员还需要参考历史行情数据、其它数据例如基本面信息等做出决定。所以交易系统一般有历史数据库来存储非实时市场数据,也方便金融工具使用数据库。交易系统的分析回测还将涉及交易员的历史交易,所以系统需要数据库用以存储交易决策。

二、整个交易系统可以分解成:

* 交易所 / 柜台

* 服务端

- 实时行情数据分发器

- 非实时数据库

- 事件处理引擎和策略池

- 订单管理、风控模块

*应用端

- 系统设置和运行监控

- 账户管理、资金管理等

如下图所示:

三、事件处理引擎(Complex Event Processing System,CEP)

一个复杂事件可以看作一组收到的事件,包括股票走势、市场波动和时事新闻。复杂事件处理即在短时间内对复杂事件进行计算分析,包含检测复杂模式、分析事件之间的相关性、时序关系和因果关系。

事件处理引擎实时处理事件,这是交易系统的主要特点之一。事件的处理速度越快,系统的性能越好。举个例子,如果交易系统设计用于检测事件发生后一秒钟内的获利机会,但系统的处理时长却超过了该阈值,结果将无法获利。

四、宽客的工作主要集中在事件处理模块

他们将大部分时间用于制定交易策略,执行严格的回测、策略优化和资金管理。这么做是为了确保交易策略可在真实市场环境中执行。但没有策略可以保证一直获利,所以宽客们必须定期制定新的策略以保持市场优势。

五、自动交易系统中的订单管理

算法交易系统生成的信号可以手动执行也可以自动执行。

当信号以自动方式执行时,我们将整个系统称为"自动交易系统(Automated Trading System)"。 订单的自动化执行由"订单管理(Order Management)"模块完成。

订单管理模块包括不同的执行策略,这些策略基于预先定义的算法逻辑来执行目标买卖订单。

六、自动交易系统的风险管理

因为自动交易系统无需任何人工干预,所以需要借助风险检查来确保交易系统不出差错。风险检查过程的缺失或风险管理失当将对量化交易公司造成无法挽回的损失。因此,风险管理系统(Risk Management System,RMS) 是所有自动化交易系统的重要组成部分。风险管理在算法交易系统的两个部分中发挥着作用︰

1. 应用端—— 确保交易员经手的参数不会出错。风险管理会帮助系统排除异常值和交易员的手误。

2. 订单管理系统生成订单之前 —— 在订单离开系统之前,确保订单已通过风险管理系统的检验。这一步的风险管理检验十分关键。

七、举例

还是以前文的例子来说明:

“买入前10只现价创一年新高的股票,合计10万元平均分配,限价下单”

系统流程如下:

- 量化工程师编写策略程序,该程序在开盘前首先从历史数据库读取过去A股市场所有股票过去一年的日线,计算出每只股票的最高价并保存。

- 开盘后,程序订阅实时行情报价器,如果是使用3秒快照,程序每3秒收到一次价格,经过事件处理引擎的逻辑处理,陆续发现10只股票创价格新高。

- 经过预设的风控条件剔除,程序对订单管理模块发出订单:每只按现价购买1万元。

- 订单管理模块经过风控模块过滤,认为可以执行,于是向柜台发出订单;

- 交易所返回成交结果,系统记录,并修改账户

推荐阅读:

1.一个量化策略师的自白(好文强烈推荐)

2.股票期货经典的量化交易策略都在这里了!(源码)

3.期货/股票数据大全查询(历史/实时/Tick/财务等)

4.三分钟弄明白为什么贝叶斯是量化工作者最常用的工具

5.学习Python有哪些书籍?这里有一份书单送给你

6.江湖中常说的“网格交易法”到底是什么?

7.10种经典的日内交易策略模型思路

8.干货 | 量化选股策略模型大全

9.量化金融经典理论、重要模型、发展简史大全