算法交易系统的组成、功能与构建
由ypyu创建,最终由ypyu 被浏览 10 用户
算法交易顾名思义就是采用某些算法让计算机自动进行交易决策、下单以及订单资金管理等一系列操作。算法交易系统和一个基于事件的回测系统组成非常相似,这一点在搭建回测系统系列文章中有所提及。一般来讲,算法交易系统由数据模块、模型模块、执行模块以及算法监测模块这几大部分组成。
- 数据模块
数据模块包含结构化和非结构化两部分的数据。结构化的数据一般包含品种的交易数据以及公司的金融数据;非结构化数据则包括新闻、社交网站等文本数据,这些数据需要一些专门的文本分析挖掘工具来进行处理。
- 模型模块
应用于算法交易的模型主要有这样几类。一类是数学统计类模型,这类模型通常采用概率论的方法去度量风险因子、用随机过程去刻画随机因素。另一类则是数据挖掘的相关模型,如决策树、神经网络以及深度学习模型。
- 执行模块
该模块根据模型算法执行真实的交易,连接经纪商的交易系统进行各种指令的操作。
- 监测模块
由于市场是不断动态变化的,模型很可能在某一天变得毫无作用。监测模块采用sharp ratio等指标对算法交易的效果进行长期监测,并可视化模型效果。
算法交易系统的功能
对于一个算法交易系统,需要通过算法做出交易决出并进行实盘交易,因此系统需要满足以下几个最基本功能:
- 生成投资决策
- 获取市场数据:下载、清洗结构化或非结构化的数据。
- 定义投资策略:明确交易规则和策略,规则包括指标满足的条件,可以通过决策树来对多规则进行定义。
- 分析投资标的:根据策略决定买卖标的的种类和仓位。
- 生成交易指令
- 获取交易信息:获取证券的代码、价格和数量。
- 生成交易指令:明确交易指令类型(long, short等)。
- 管理指令
- 管理未完成的指令:指令生效和确定。
- 提交指令:将指令提交给经纪商。
- 管理已提交指令:追踪指令的状态。
算法交易系统的性能要求
一个良好的、可运行的算法交易系统必须在能够满足交易系统基本功能的情况下具有不错的性能,良好的性能能够减少因为计算机处理问题带来的交易损失,同时减少重复开发和维护成本。
- 可扩展的:若交易品种和数量以及相关数据的增加,系统能方便扩展;
- 高性能的:对市场的快速响应以及高速处理、足够的网络吞吐量;
- 可变更的:容易对策略以及数据处理过程进行修改;
- 可靠的:可靠准确地处理输入,错误容忍机制;
- 互用性:可以方便的与其他系统共同运作,如风控系统、指令管理系统等。
底层服务
为了实现以上功能,需要在交易系统底层搭建基础服务,这些服务可以标准接口供上层调用。
- 数据预处理:数据流处理,数据清洗、过滤,时间数据分割。
- 分布式处理:多个处理单元同步工作、系统性能实时监测、负载均衡、数据复制备份。
- 处理单元:消息队列、复杂事件处理。
- 存储区域网络(SAN):数据聚合、查询,日志。
- 数据恢复:备份SAN和指令。
- 整体化接口:标准API接口。
- 指令管理:被动冗余、指令输入流管理。
- 用户管理:用户功能和权限管理等。
\