用go语言开发简易量化框架(二)--框架概要设计

用go语言开发简易量化框架(二)--框架概要设计

  • 一、模块划分
  • 二、模块通信
  • 三、技术选型
  • 四、注意事项

一、模块划分

本系统概要设计如下,分为四大模块:

模块 说明
Web Server 接受用户输入,展示系统状态
Market Center 行情中心,根据web server发来的命令,收集交易所行情
Strategy Manager 策略管理器,管理策略的运行
Analyzer 统计分析模块,主要是策略统计,报表等

四大模块分别为独立的进程,必要时可做横向扩容,下图为模块概要设计图:
用go语言开发简易量化框架(二)--框架概要设计_第1张图片

二、模块通信

模块间通信,采用GRPC,需要通信的模块如下

客户模块 服务模块 说明
Web Server Market Center 下发行情收集命令
Web Server Strategy Manager 启动/停止策略,查询策略执行状况
Strategy Runner Strategy Manager 上报策略执行状态给策略管理器
Web Server Analyzer 按要求统计分析策略执行结果

三、技术选型

子模块 说明
web前端 web前端使用vue-admin-template后台模板
web服务器 web服务器框架使用gin
数据库orm 使用gorm,支持mysql和sqlite,可选择切换
kv缓存 封装基本kv缓存功能,支持redis和boltdb,可切换
配置文件 配置文件使用viper,支持toml,yaml,json,ini
日志文件 使用uber的zap
模块通信 内部通信使用grpc
指标库 支持talib库,所有指标
js解析器 使用otto
绘图库 go目前没发现比较好用的绘图库,暂定gosl吧

四、注意事项

1 数据库支持sqlite和boltdb,是想搞一个单机版,不需要依赖其他软件
2 模块暂时不考虑微服务,定位个人量化系统,先不要复杂化了
3 边学边练,整个系统不求一步到位,先搞一个出来,后面再优化重构

你可能感兴趣的:(量化开发)