算法交易概要设计

1 模块结构设计

量化交易 系统架构 量化交易模块_消息路由

 

2 StgAlgoSrv设计

2.1功能定义

(1)负责管理算法交易实例,包括算法实例的创建、算法交易线程的启动、停止等。

(2)负责将应答响应消息路由到指定算法交易实例。

(3)负责由算法交易报单order_id与算法交易实例管理

2.2 结构设计

2.3接口设计

量化交易 系统架构 量化交易模块_时序图_02

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结构设计

量化交易 系统架构 量化交易模块_时序图_03

(1)AlgoOrderTask

  • 负责记录算法报单的信息及订单状态
  • 责算法报单的状态更新

   (a)挂单价格是否在有效区间

     (b)算法报单生命周期管理

     (c)撤单、拆单和追单等

(2) active_algo_order_task_list_

        记录当前有效算法报单

(3)cache_algo_order_task_list_

(4)算法报单优先级的管理

3.3接口设计

量化交易 系统架构 量化交易模块_时序图_04

4.外部接口定义

(1)接口间参数传递采用json格式

(2)算法交易与交易引擎通过StgAlgoApi.h文件定义接口通讯

量化交易 系统架构 量化交易模块_消息路由_05

5.业务流程

5.1算法报单流程

后续补充时序图

5.2算法撤单流程

后续补充时序图

5.3算法报单状态更新流程

后续补充时序图

6测试工具

6.1模拟Tick行情客户端

6.2 模拟算法下单策略

后面会提供给策略研发人员做参考

7 代码架构

  1. 新建stg-algo模块。
  2. 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行情客户端

后面会提供给策略研发人员做参考

模拟算法下单策略

系统联调

系统联调

工具函数库实现

工具库函数实现