量化交易系统 |
您所在的位置:网站首页 › 量化数据管理 › 量化交易系统 |
1 系统介绍 1.1用于处理与数据库交互的相关操作,包括如下业务功能: 数据字典业务,例如货币信息,交易所所信息,币对信息等。资金账户业务,例如账户资金、持仓、委托及成交查询等。客户端交互业务,例如登入、回话管理、订阅等管理。策略管理业务,例如策略查询、创建、持仓查询等。用户管理业务,例如用户创建、创建、权限管理等。工作流管理业务,例如指令创建,指令报单等。数据库表修改变更监控。系统启定时扫描配置文件中定义的表的字段,如果数据发生变更,会广播消息通知系统。1.2 数据管理的消息定义 区间段为:200000-300000,具体消息定义设计参见:mbus_def_db_mgr.h文件另外特别为广播消息定义区间段:210000开始,广播消息定义格式:MSG_ID_BROADCAST_XXXXXX2 体系结构 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 |