基于火币接口构建高性能量化交易系统

总体泳道图

分层泳道图

封装火币API为gRPC服务定义RPC接口使用火币API开发RESTful和WebSocket接口编写gRPC服务的Proto文件生成Rust代码包实现gRPC接口中定义的RPC方法使用火币API生成RESTful请求或WebSocket连接打包请求到的数据并返回编写gRPC客户端通过RPC方法获取到火币API服务的数据将获取到的数据存储到InfluxDB中将数据推送给指标计算层实现将获取到的数据存储到InfluxDB中的功能实现将获取到的数据推送给指标计算层的功能使用gRPC客户端从火币API服务中获取数据实时将获取到的数据存储到InfluxDB中将数据推送给指标计算层使用Flink的DataStream API编写Flink的DataStream算子实现指标计算算法将每个品种的数据流进行分区将数据流通过算子进行指标计算根据指标计算结果和交易规则生成每个品种的买入/卖出信号将信号推送给执行层实现每个品种的交易规则将指标计算结果和交易规则应用到数据流上实现生成每个品种的买入/卖出信号将买入/卖出信号进行汇总使用RabbitMQ等消息队列/S双向流模式进行数据推送根据收到的买入/卖出信号执行交易操作实现执行交易操作的功能向火币API服务提交订单、撤销订单、查询成交订单等实现交易数据的持久化存储功能将交易操作的结果存储到Redis或数据库中如果需要将交易数据持久化存储,可以使用Redis定义基于gRPC的API接口使用Rust中提供的gRPC库,定义查询指标、获取信号、执行交易等API接口实现处理查询指标、获取信号、执行交易等请求的功能将gRPC方法的请求和响应命令与其他各层之间的数据传递协议进行转化数据获取层流计算层执行层API层