算法交易概要设计
1 模块结构设计
2 StgAlgoSrv设计
2.1功能定义
(1)负责管理算法交易实例,包括算法实例的创建、算法交易线程的启动、停止等。
(2)负责将应答响应消息路由到指定算法交易实例。
(3)负责由算法交易报单order_id与算法交易实例管理
2.2 结构设计
2.3接口设计
3 StgAlgoOrderMgr设计
3.1功能定义
(1)负责管理算法报单ID与交易报单order_id之间的对应关系。
(2)负责管理算法报单ID与策略实例ID的对应关系。
(3)负责算法交易状态持久化及状态恢复-暂时不做-考虑使用Redis。
3.2结构设计
(1)order_id_to_instance_ptr_map_
交易报单order_id与算法交易实例的关系
(2)algo_order_id_to_order_id_map_
算法报单ID与交易报单order_id的关系
(3)algo_order_id_to_instance_ptr_map_
算法报单ID与策略实例的关系
3 StgAlgoBase设计
3.1功能定义
(1)负责管理算法报单状态
(2)负责处理各种消息应答处理
(3)负责算法报单优先级处理
(4)负责算法报单策略线程实现
3.2结构设计
(1)AlgoOrderTask
- 负责记录算法报单的信息及订单状态
- 责算法报单的状态更新
(a)挂单价格是否在有效区间
(b)算法报单生命周期管理
(c)撤单、拆单和追单等
(2) active_algo_order_task_list_
记录当前有效算法报单
(3)cache_algo_order_task_list_
(4)算法报单优先级的管理
3.3接口设计
4.外部接口定义
(1)接口间参数传递采用json格式
(2)算法交易与交易引擎通过StgAlgoApi.h文件定义接口通讯
5.业务流程
5.1算法报单流程
后续补充时序图
5.2算法撤单流程
后续补充时序图
5.3算法报单状态更新流程
后续补充时序图
6测试工具
6.1模拟Tick行情客户端
6.2 模拟算法下单策略
后面会提供给策略研发人员做参考
7 代码架构
- 新建stg-algo模块。
- stg-base,stg-api,stg-eng新建一个algo-dev分支,所有开发在这个分支上进行
8其他
任务 | 子任务项 | 备注 |
系统设计 | 概要设计文档 | |
前期准备 | Git代码库及分支建立 | |
测试环境准备 | ||
测试工具开发 | ||
整体框架搭建 | 外部接口定义 | |
主要类接口定义 | ||
接口与引擎对接 | ||
StgAlgoMgr实现 | 算法交易实例创建及线程启停等 | |
算法交易报单order_id与算法交易实例管理 | ||
实现应答响应消息路由到指定算法交易实例 | ||
算法交易报单order_id与算法交易实例管理 | ||
负责管理算法报单ID与交易报单order_id之间的对应关系 | ||
负责管理算法报单ID与策略实例ID的对应关系 | ||
算法交易状态持久化及状态恢复 | 已有redis-api接口库 | |
UrgencePrice实现 | UrgencePrice计算逻辑 | 基本完成 |
DepthL1Price更新及管理 | 基本完成 | |
单元测试 | ||
StgAlgoBase实现 | 基础接口定义 | |
应答类消息处理 | ||
算法报单信息管理 | ||
有效算法报单 | ||
缓存管理 | TODO-下阶段优化 | |
StgAlgoTWAP实现 | 实现算法报单的状态更新(撤单、拆单和追单) | |
StgAlgoBestBidAsk实现 | 实现算法报单的状态更新 | |
StgAlgoPairTrading实现 | 实现算法报单的状态更新(撤单、拆单和追单) | |
StgAlgoSmartOrder实现 | 实现算法报单的状态更新 | |
测试工具 | 模拟Tick行情客户端 | 后面会提供给策略研发人员做参考 |
模拟算法下单策略 | ||
系统联调 | 系统联调 | |
工具函数库实现 | 工具库函数实现 |