量化交易系统-数据管理系统设计-3

1 系统介绍

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

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

1.2 数据管理的消息定义

  1. 区间段为:200000-300000,具体消息定义设计参见:mbus_def_db_mgr.h文件
  2. 另外特别为广播消息定义区间段: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 功能说明

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

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 功能说明

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

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

5.2 流程设计

5.3 接口设计

消息处理函数接口定义

using MsgHandlerCB = std::function<void(net::task_from_cli_sptr& task)>;

using MsgHandlerCBMap = std::map<int, MsgHandlerCB> ;

#define ON_MSG_CALLBACK(msg_id, cb) \

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

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

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

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

5.4 其他

  • 数据库配置信息

  • 插件配置信息

  • 表数据变更监控信息

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Python的个人量化交易系统设计与实现代码主要包括以下几个部分:数据获取、策略制定、交易执行和风险控制。 首先,数据获取是量化交易的基础。我们可以利用Python的库如Pandas、Numpy或者Quandl等获取金融市场的历史数据或者实时数据,包括股票、期货、外汇等各种金融工具的行情数据。 其次,策略制定是量化交易系统的核心。我们可以利用Python编写各种量化交易策略,如均线策略、动量策略、套利策略等。通过Python的数据分析和机器学习库(如Scikit-learn、Tensorflow等),我们可以进行策略的优化和回测,评估策略的盈利能力和风险水平。 接着,交易执行是量化交易系统的重要组成部分。我们可以利用Python的交易API接口,将编写好的交易策略与交易账户连接起来,实现自动化交易。Python的交易API包括各种证券公司的交易接口,如雪球、米筐等。 最后,风险控制是量化交易系统的关键。我们可以利用Python编写各种风险控制模块,包括止损、风险分散等。通过Python的数据分析能力,我们可以对交易策略的风险进行监控和管理,保证交易系统的稳健性和安全性。 综上所述,基于Python的个人量化交易系统设计与实现代码需要充分利用Python的数据分析、机器学习和交易API等功能,完成数据获取、策略制定、交易执行和风险控制等各个环节,从而构建一个完整的量化交易系统

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值