• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go_real_md: golang 接收CTP实时行情

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

go_real_md

开源软件地址:

https://gitee.com/haifengat/go_real_md

开源软件介绍:

go_real_md

介绍

golang 接收CTP实时行情

软件架构

  1. 采用goctp接口订阅行情
  2. 接收后合成分钟数据落入redis
  3. 以md.{instrumentid}发布分钟数据,应用端可订阅后接收分钟数据。
  4. 收盘后分钟数据保存至postgres数据库中

分钟处理

  • 只处理处于可交易状态的品种(会过滤掉开/收时的tick)
  • 处理actionDay
    • tradingday前一交易日为actionDay
    • actionDay下一自然日为actionDayNight
    • hour>=17 取 actionDay
    • hour<=3 取 actionDayNight
    • hour其他 取 tradingDay
  • 分钟Volume
    • preVol前一分钟最后tick的Volume
    • 当前分钟的Volume = tick.Volume-preVol

使用说明

环境变量

变量默认值说明
tradeFronttcp://180.168.146.187:10130ctp交易前置
quoteFronttcp://180.168.146.187:10131ctp行情前置
loginInfo9999/008107/1/simnow_client_test/0000000000000000登录配置格式 broker/investor/pwd/appid/authcode
redisAddr127.0.0.1:6379redis库配置host:port
pgMin127.0.0.1:5432分钟pg库配置

生成镜像

# 先编码再做镜像(要用centos基础镜像)go build -o realmddocker build -t haifengat/go_real_md:`date +%Y%m%d` .# hub.docker.comdocker push haifengat/go_real_md:`date +%Y%m%d`

行情订阅后收不到ontick响应

原因:交易所状态处理问题处理:已修复

接口断开重连,收不到login响应

原因:猜测为匿名函数被回收解决:实际函数替代匿名函数

收盘时间的tick仍被处理

双tick仍无法避免,即15:00:00时收到2两个tick。例:y2105 20201214解决:3tick

concurrent map read and map write

原因是mapMin变量用map[string]interface{}保存分钟数据,在lastInstMin读取时冲突解决:改为Bar{}

pq: duplicate key value violates unique constraint "future_min_datetime_instrument

ticks改用bar.ticks处理分钟是否更新用 > 判断,防止小于当前分钟的数据生成


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap