粉丝福利-省下5万实盘费,构建支持多策略多账户的聚宽MiniQMT实盘解决方案(附全套源码)

93 阅读5分钟

免责声明: 本账号所有量化策略和量化技术仅作技术交流和量化思路分享, 不构成任何投资建议 , 据此操作 风险自负 ,本人不承担任何直接或间接责任。

**久等了,诸君。**实盘做了四年,最让人头疼的不是策略写不出来,而是“基建”太贵,或者太烂。

你在聚宽(JoinQuant)上跑出了一个夏普3.0的策略,回测曲线美如画,兴奋地搓手准备实盘。结果现实给你泼了一盆冷水:

要么,官方实盘服务贵到劝退(目前,这条路已经堵死);

要么,自己写Socket做桥接。 ** **

网络一抖,信号丢;程序一崩,持仓乱。 实盘之路好难!

我也踩过无数坑,今天不藏私,直接把我自己正在用的一套 基于 聚宽+Redis Stream + MiniQMT + 本地数据库
的实盘框架开源给你们,以后大家可以专心于研究优质策略。

这是我基于社区大佬 蒋老师(@jqz1226 ZUEL) 的框架改造的。蒋老师是领路人,我在此基础上做了一次 “重装升级”

这套代码解决了三个最核心的痛点:

  1. 信号绝对不丢 (Redis Stream 消息队列机制)。
  2. 一个账户跑N个策略 (本地SQLite独立记账)。
  3. 云端与本地的完美隔离 (聚宽只管发信号,本地负责风控和执行)。

先看一眼原理图,逻辑非常清晰:

** **


01 为什么抛弃 Pub/Sub,改用 Redis Stream?

早几年我也用 Redis 的 Pub/Sub (发布订阅)模式,那玩意儿有个致命缺陷: ** 发后即焚 ** 。

如果你的本地接收端正好断网了1秒钟,那个“买入”信号就永远消失在以太网里了。等网络恢复,你的策略还在空仓等待,大盘已经拉了3个点。

这能忍?🤬

在这套框架里,我用了 Redis Stream (核心代码在 redistrade.py )。 它不像微信语音打完就没,它更像一个 永久的记账本 ,把信号持久化存在云端。

  • 本地断网了? 没关系,连上后自动读取未处理的消息。

  • 程序重启了? 没关系,根据 ID 继续接着干。

 # 核心逻辑:使用 xadd 而不是 publish
 # 专业交易员的安全感 🛡️
 rds.xadd(g.strategy, data, maxlen=200)

02 多策略资金管理的“神坑”

很多新手写实盘,直接读取券商账户的 available_cash (可用资金)来下单。

大错特错!❌

想象一下,你同一个账户里跑了两个策略: 策略A 赚了10万,策略B 亏了5万。 如果你只看账户总资金, ** 策略B 就会把 策略A 赚的钱拿去继续亏。 **

结果就是:优秀的策略无法复利,垃圾的策略一直吸血。

必须要分账!

我在 db_manager.py 里写了一套轻量级的 SQLite 管理系统。它就像一个 ** 铁面无私的本地会计 ** :

  1. 给每个策略建一张表。

  2. 记录每个策略独立的“虚拟资金”和“持仓”。

  3. miniQMT下单前,必须先过它这一关

  # db_manager.py 中的关键逻辑
  #为TEST_BT分配资金 10w资金,是多账户多策略的关键
   db_manager.create_strategy_table(strategy_name="TEST_BT", initial_funds=100000)

这才是成熟的多策略管理方案。


03 本地执行端的“风控细节”

代码里的 miniqmt_redis.py 是整个系统的中枢。它不仅是接收信号,更是一道 防火墙

我在代码里加了几个实战中用真金白银换来的教训:

滑点检查 :聚宽发出的价格和现在的实盘价格偏离超过 1%( SlippagePct ),直接废单。防止“追涨杀跌”被埋。

时间戳校验 :如果信号是30分钟前发出的(可能网络卡顿了),现在收到也不执行。防止“过期信号”造成误操作。

断线重连 :MiniQMT 的接口有时候会抽风断开,我在 MyXtTrader 类里写了自动重连逻辑,掉线自动重试。


👇 手把手教学干货,建议先收藏再看。

04 大家最关心的,怎么跑起来?

这套方案最大的优点就是: ** 轻量、便宜、安全。 **

  1. 云端 :提前准备好Python环境,安装好QMT。如果实战不会,后台暗号: 环境配置 获取 ①修改 redistrade.py 将你的redis服务器参数修改好。 ② 将 redistrade.py 上传聚宽的研究环境。 ③策略怎么改?参考蒋老师的 (链接放评论区,也可以看截图)。注:如果想要实时信号,需要开通聚宽会员。

  2. 中间件 :去买个 Redis 云服务或者自己购买云服务器搭(更推荐)【需要将参数填到 redistrade.py 与 miniqmt_redis.py 中 】。 请自行学习,简单,网上教程很多。 有兄弟 实在不知道怎么弄,也可以联系我, 尽量自己解决 。

  3. 本地

    • 打开 db_manager ,设置好你的策略名和初始资金(比如给策略A分5万,策略B分10万)。
    • 打开qmt登录账号密码,选择极简模式。登录。 如需开通低佣qmt可以后台联系我。
    • 修改 miniqmt_redis.py 2处参数,运行开启监听。

搞定!

☕️ 呃... 也不算很简单。操作好像还是有点复杂,后续我可能会出内供版。 先解决没有实盘的兄弟们的急迫再说吧。若对大家有帮助,请多点赞转发。

这样我们的策略+自动化实盘工具,组成了一套完整的实战级量化实盘方案。

代码我已经打包好了。这套框架稍加修改,可以支持同花顺、通达信等其他终端。

量化这行, 唯有实盘见真章 。别让糟糕的基础设施,毁了你优秀的阿尔法。

👇 关注我,后台回复“ autotrade ”获取完整 Python 源码

在这里插入图片描述


(文末闲聊) 最近行情波动大,这种自动化分仓管理的系统,真的能帮你管住手。部署如果遇到问题,可留言或私信。👋