量化交易系统

您所在的位置:网站首页 量化数据管理 量化交易系统

量化交易系统

2024-06-22 07:07| 来源: 网络整理| 查看: 265

1 系统介绍

1.1用于处理与数据库交互的相关操作,包括如下业务功能:

数据字典业务,例如货币信息,交易所所信息,币对信息等。资金账户业务,例如账户资金、持仓、委托及成交查询等。客户端交互业务,例如登入、回话管理、订阅等管理。策略管理业务,例如策略查询、创建、持仓查询等。用户管理业务,例如用户创建、创建、权限管理等。工作流管理业务,例如指令创建,指令报单等。数据库表修改变更监控。系统启定时扫描配置文件中定义的表的字段,如果数据发生变更,会广播消息通知系统。

1.2 数据管理的消息定义

区间段为:200000-300000,具体消息定义设计参见:mbus_def_db_mgr.h文件另外特别为广播消息定义区间段:210000开始,广播消息定义格式:MSG_ID_BROADCAST_XXXXXX

2 体系结构

2.1 逻辑架构

2.2 功能模块

数据管理系统有如下模块组成:

(1)数据库访问模块(db-api)负责数据库的连接,连接池的管理,以及数据库访问操作以及接口返回。

(2)业务处理管理模块,负责消息分发处理。

各个业务处理器插件模块,负责调用数据访问模块接口,进行各个业务消息的业务处理。

(3)基础通讯模块,负责与客户端接网关与总线通信,接收消息,转发业务处理模块进行处理。

(4)数据库管理运行主体模块

负责数据库表数据变更监控运行环境初始化。

3 数据库访问模块

3.1 功能说明

数据存储接口API定义,主要为业务处理模块提供通用访问接口。MySQL数据库连接管理,主要包括数据库的心跳及重连等。MySQL数据库访问对接接口实现。数据库语句创建工具函数实现。

3.2 结构图

静态结构图

3.3 接口

4 插件管理模块

4.1 功能说明

负责插件的加载与卸载管理。负责插件启动停止管理。

4.2 结构图

4.3 插件接口

typedef ITaskHandlerImp* (*tagGetHandlerImpInstance)();

typedef ITaskHandlerImp* (*tagGetHandlerImpInstance)();

struct tagHandlerImpInstance {

    boost::dll::shared_library shared_dll_lib;    

    std::string plugin_name;                           //插件名称

    std::string plugin_dir;                            //插件存放路径

    tagGetHandlerImpInstance pfn_handler_imp_instance; //业务处理器创建接口

    ITaskHandlerImp* task_handler_imp;                 //业务处理器实例

    void* instance_handle;                             // so文件实例句柄

};

//每个插件暴露的接口

ITaskHandlerImp* API_GetTaskHandlerImp();

5 业务分发处理模块

5.1 功能说明

主要是对业务请求分发管理及处理,包括如下功能:

业务请求队列管理。业务线程及线程管理。数据库表修改变更监控及变更消息广播。总线业务及接入网关请求处理。

5.2 流程设计

5.3 接口设计

消息处理函数接口定义

using MsgHandlerCB = std::function;

using MsgHandlerCBMap = std::map ;

#define ON_MSG_CALLBACK(msg_id, cb) \

msg_id_cb_map_[msg_id] = std::bind(&cb, this, std::placeholders::_1)

每个消息注册一个消息处理函数。

(1)客户端消息请求处理器

(2)消息总线消息应答处理

5.4 其他

数据库配置信息

插件配置信息

表数据变更监控信息



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3