免责声明: 本账号所有量化策略和量化技术仅作技术交流和量化思路分享, 不构成任何投资建议 , 据此操作 风险自负 ,本人不承担任何直接或间接责任。
**久等了,诸君。**实盘做了四年,最让人头疼的不是策略写不出来,而是“基建”太贵,或者太烂。
你在聚宽(JoinQuant)上跑出了一个夏普3.0的策略,回测曲线美如画,兴奋地搓手准备实盘。结果现实给你泼了一盆冷水:
要么,官方实盘服务贵到劝退(目前,这条路已经堵死);
要么,自己写Socket做桥接。 ** **
网络一抖,信号丢;程序一崩,持仓乱。 实盘之路好难!
我也踩过无数坑,今天不藏私,直接把我自己正在用的一套 基于 聚宽+Redis Stream + MiniQMT + 本地数据库
的实盘框架开源给你们,以后大家可以专心于研究优质策略。
这是我基于社区大佬 蒋老师(@jqz1226 ZUEL) 的框架改造的。蒋老师是领路人,我在此基础上做了一次 “重装升级” 。
这套代码解决了三个最核心的痛点:
- 信号绝对不丢 (Redis Stream 消息队列机制)。
- 一个账户跑N个策略 (本地SQLite独立记账)。
- 云端与本地的完美隔离 (聚宽只管发信号,本地负责风控和执行)。
先看一眼原理图,逻辑非常清晰:
** **
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 管理系统。它就像一个 ** 铁面无私的本地会计 ** :
-
给每个策略建一张表。
-
记录每个策略独立的“虚拟资金”和“持仓”。
-
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 大家最关心的,怎么跑起来?
这套方案最大的优点就是: ** 轻量、便宜、安全。 **
-
云端 :提前准备好Python环境,安装好QMT。如果实战不会,后台暗号: 环境配置 获取
①修改
redistrade.py将你的redis服务器参数修改好。② 将 redistrade.py 上传聚宽的研究环境。③策略怎么改?参考蒋老师的 (链接放评论区,也可以看截图)。注:如果想要实时信号,需要开通聚宽会员。
-
中间件 :去买个 Redis 云服务或者自己购买云服务器搭(更推荐)【需要将参数填到 redistrade.py 与 miniqmt_redis.py 中 】。 请自行学习,简单,网上教程很多。 有兄弟 实在不知道怎么弄,也可以联系我, 尽量自己解决 。
-
本地 :
- 打开
db_manager,设置好你的策略名和初始资金(比如给策略A分5万,策略B分10万)。 - 打开qmt登录账号密码,选择极简模式。登录。 如需开通低佣qmt可以后台联系我。
- 修改
miniqmt_redis.py2处参数,运行开启监听。
- 打开
搞定!
☕️ 呃... 也不算很简单。操作好像还是有点复杂,后续我可能会出内供版。 先解决没有实盘的兄弟们的急迫再说吧。若对大家有帮助,请多点赞转发。
这样我们的策略+自动化实盘工具,组成了一套完整的实战级量化实盘方案。
代码我已经打包好了。这套框架稍加修改,可以支持同花顺、通达信等其他终端。
量化这行, 唯有实盘见真章 。别让糟糕的基础设施,毁了你优秀的阿尔法。
👇 关注我,后台回复“ autotrade ”获取完整 Python 源码
(文末闲聊) 最近行情波动大,这种自动化分仓管理的系统,真的能帮你管住手。部署如果遇到问题,可留言或私信。👋