聚宽信号中转站
默认蓝
主题色
明暗
选择会记在本机浏览器,下次打开保持。
登录 免费注册
← 返回知识库
上手教程 2026-09-25 142 次阅读

上手 ③:信号中转站配置及测试教程

建通道、取接入代码与跟单包、配好服务端风控,并用四层测试确认链路与权限都正常。

这一篇解决什么

在中转站上建好一条通道,拿到两样东西:给聚宽用的接入代码、给 QMT 用的跟单包。然后确认这条通道真的能通。

中转站为什么要存在

因为聚宽和你的 QMT 之间没有直连通道。

聚宽在云的这头,你的 QMT 在你自己的电脑上。聚宽推完信号就不管了(它也不知道你的电脑开没开机),而你的电脑在 NAT / 防火墙后面,聚宽也没法主动连过来。

所以中间必须站一个双方都能访问到的固定地址:

聚宽策略 ──①推送信号──▶ 中转站(排队、校验、留存)
                            ▲
                            │②主动来领
                            │③回报结果
                            │④心跳
                        QMT 策略(在你自己电脑上)

关键在方向:QMT 是主动「去领」的那一方。它只发出站请求,不开端口、不需要多线程。这个设计不是随便定的 —— QMT 自带的 Python 不支持多线程和多进程,所有策略共享同一个线程;如果反过来让 QMT 开个端口等人连,负责接收连接的代码永远拿不到调度,症状是「端口开着、TCP 握手成功、但客户端等 5 秒后 Read timed out」,极难定位。

中转站顺带还解决三件事:

  • 排队:QMT 没开机,信号也不会丢,等你开机再领。
  • 幂等:每条信号带唯一 ID,重复推送只执行一次。
  • 风控:金额、股数、时段、价格偏离、日内亏损都能在这里先卡一道。

第 1 步:注册并登录

打开中转站首页 → 右上角「用户中心」→ 注册。

建议用常用邮箱注册并记好密码 —— 后面找回密码、接收通知都靠它。部分站点开启了邮箱验证,按提示收信激活即可。


第 2 步:开通权益(拿到建通道的额度)

通道不是随便建的,需要先有权益。开通路径:

  1. 导航栏进 「官网策略」,挑一个策略,先看它的逻辑、适用环境、回测资料与风险说明。
  2. 在策略详情页选择 手动版 或 QMT 自动版,用积分开通。
  3. 只有「QMT 自动版」才会给你通道额度 —— 它对应「信号自动投递到你的 QMT」;手动版是给你看信号、自己下单。

积分从哪来:用户中心 →「积分钱包」→「充值积分」,用兑换码充值。如果站点已开通在线支付,也可以直接扫码充值。

权益到期会怎样:通道停止接收新信号,续费后自动恢复。历史数据不会删。


第 3 步:创建通道

用户中心 →「我的服务」→ 通道概览 → 创建通道(或「管理通道」)。

填一个好认的名字。这个名字就是你这条链路的 ID,后面会出现在:

  • 工作台信号列表
  • QMT 参数面板里的「QMT 策略名」
  • 下载的跟单包文件名

建议命名格式:策略名-用途,例如 双均线ETF-实盘、小市值轮动-测试。 服务端会把非法字符清洗掉再作为文件名,所以中文、空格都能用,但不要用纯符号。

一条通道 = 一套完整链路。 一个策略一条通道,不要两个策略共用一条 —— 共用会让工作台分不清信号是谁发的,还会触发「N 个客户端」的告警(多个 QMT 进程抢同一串令牌)。

创建后会得到一个 通道 ID 和 通道令牌(Token)。


第 4 步:从通道工作台拿走两样东西

点进通道 → 进入通道工作台。你要从这里取走:

要拿的东西给谁用在哪儿拿
聚宽接入代码粘贴到聚宽策略最前面「复制聚宽代码」区 → 一键复制聚宽代码
QMT 跟单包解压后放进 QMT「下载QMT跟单包」→ 下载

两样都已经按你的通道预填好了地址和令牌,不需要手工改任何内容。

接入代码里也带一个「复制自检代码」按钮 —— 那是给聚宽研究环境做三段式测试用的,见第 ② 篇。

工作台的「接入信息」区会一直显示这几个值,随时可以核对:

字段说明
中转站地址就是 base_url,不要以斜杠结尾
信号接口聚宽推送的目标地址
通道 ID通道的内部编号
通道 Token你的钥匙,不要截图外发
QMT 资金账号你填的,心跳上来后会被 QMT 的真实账号覆盖
QMT 策略名QMT 侧策略的名字
下单价格类型当前生效的报价方式

第 5 步:在工作台把「执行参数」配好

这是服务端这一层的风控与行为参数。改完点「保存执行参数」,下一次心跳(≤30 秒)自动生效,QMT 机器上的文件一个字都不用动。

参数作用建议
QMT 资金账号你 QMT 登录的资金账号必须与 QMT 当前登录的账号一致,填错的表现是「信号在领、单下不出去」
QMT 策略名QMT 侧策略名与跟单包文件名保持一致
下单价格类型报价方式默认对手价;盘口薄的标的可考虑限价
价格笼子比例最终限价被夹在最新价 ±该比例内默认 2%。这是防打飞的关键参数,不要放大到 10% 以上
单笔金额上限超过直接拒单按你的资金量先设小,跑顺了再放宽
日委托笔数上限当日委托笔数上限与你在券商报备的「单日最高申报笔数」口径保持一致
单票集中度单只标的持仓占比上限默认按资金量设
总仓位上限总持仓占比上限同上
日内亏损熔断当日亏损超过该值停止开仓强烈建议设置,这是程序化交易最后一道保险
价格偏离校验信号价偏离市价超该比例就拒防止错价打飞
持仓同步让 QMT 上报持仓与权益打开,工作台的持仓与权益曲线才有数据

两层风控是互补的,不是重复的: 服务端管「这条信号该不该发」;QMT 侧的参数面板管「以我现在的持仓和资金,这单到底下多少」。 两边都要设,不要指望一层兜住。


第 6 步:四层测试(从松到紧,全部打通再上实盘)

工作台上有四个「测试」入口,用途完全不同。别只做第一个就以为通了。

入口会真实报单吗任何时间可点验的是什么
发送测试信号不会是「中转站 → QMT」这一段
一键全链路测试不会是完整三跳「聚宽 → 中转站 → QMT」
买卖预检不会是「以 QMT 现在的持仓和资金,这一单能不能下」
实盘下单(100股)会否,需带精确价格passorder 那一段到底通不通

第 1 层:发送测试信号

点「发送测试信号」。这是链路探针 —— QMT 收到后会直接回报,不取价、不调 passorder(),所以收盘后 / 周末 / 节假日点都一样有效,不用先开测试模式。

回显按三态着色:

颜色含义该做什么
绿已收到,通道可用继续下一层
红没收到(会带原因)看原因,多半是 QMT 策略没在运行
琥珀还在等检查 QMT 侧策略是否点了【运行】

⚠ 这一层只验了「中转站 → QMT」 —— 探针是从中转站内部注入的,压根没经过聚宽。 第一跳「聚宽 → 中转站」是另一件事,用第 2 层补验。

第 2 层:一键全链路测试

点「一键全链路测试」→ 点 「复制自检代码」 → 粘到聚宽「研究环境」里运行。

它会打完完整三跳并逐跳打印结果,结果也会同步回工作台,不用手抄:

 1 聚宽 → 中转站          [OK]   已入库 23:45:01
 2 中转站 → QMT           [OK]   (+3.1s)
 3 QMT 回报               [OK]   (+3.2s)
 结论:全链路通,三跳全部走通。

三跳全 [OK] 才叫链路真的通了。

第 3 层:买卖预检(下单前先问一句「能不能下」)

点 「卖单预检(不下单)」 或「预检·买入」。

它会让 QMT 侧先检查一遍(持仓够不够、可用资金够不够、有没有被冻结、有没有超上限),把结论回报上来,但不真的下单。

回报会翻译成人话,例如:

预检·卖出 159981.SZ | 时段 盘中 | 价格 1.6800 | 数量 5700 股
 | 持仓 合计5700 / 可用5700 | 可用资金 15077 | 结论 可执行
 | 执行端 v3.0.8 / 账户 31709472

几个关键结论要学会读:

结论真实含义
可执行这一单能下
可执行(数量会被压到 N 股)能下,但数量会被限额或整手取整压缩
会被拒 · 无该标的持仓账户读取正常,只是没有这只票
会被拒 · 本机一条持仓都读不到账户数据不可读(未登录 / 账号不对),不是真的没持仓 —— 这两种是完全不同的故障
会被拒 · 有持仓但可用为 0T+1 未解冻,或被在途委托占用
会被拒 · 资金不足一手钱不够
会被拒 · 超过 MAX_ORDER_AMOUNT撞到 QMT 侧的单笔股数上限

预检的结论只说明「闸门会放行」。如果服务端的紧急制动(dry_run)开着,真实信号仍然只会被 ack、不会下单 —— 预检回报里会专门提这一句。

第 4 层:实盘下单(100 股)

这是唯一会真实报单的测试。 会以固定 100 股、走完整风控链路下一笔真实委托。

⚠ 必须手动填一个大于 0 的精确价格,这是强制的,不带价的下单请求会被直接拒收。 填得离谱的价会被柜台做成废单(低于跌停 / 高于涨停),而废单不会出现在有效委托列表里 —— 表现就是「工作台说已提交,QMT 委托列表里什么都没有」。服务端会在入口就拦下出界的价格并提示「超出当日涨跌停区间」。

下单后去 QMT 的委托列表核对方向、价格、数量,核对完自行撤单。


第 7 步:认识「最近策略信号」这张表

这是你日常盯得最多的一张表。每条信号的状态会沿着这条路径推进:

待领取 ──▶ 已领取 ──▶ 已完成
   │            │
   │            └──▶ 执行失败(回报里带原因)
   └──▶ 已拒绝(风控拦截,带具体规则)

几个高频状态的含义:

现象含义
一直「待领取」不动QMT 策略没在运行,或通道令牌不一致
「已领取」但迟迟不推进QMT 领走了但没回报,多半是策略卡住或电脑断网;租约到期会自动放回「待领取」
「已完成」但委托列表没单QMT 侧空跑模式还开着(只写日志不报单)
重复推送只出现一条幂等生效,这是正确行为

租约机制值得单独说:QMT 领走信号时会写一个租约(lease_id + lease_until),到期没回报就自动放回「待领取」。所以中途关掉 QMT 不会丢信号,重开后会把没回报的继续领走。


第 8 步:安全与日常运维

令牌泄露怎么办

工作台 → 更换 Token。换完后:

  1. 重新下载跟单包,把 .py 和 .xml 两个文件在 QMT 里重新放一次;
  2. 重新复制聚宽接入代码,在聚宽策略里整段替换。

换令牌不会影响历史信号和订单记录。

三条安全红线

  1. 通道令牌等同于钥匙 —— 它在 QMT 参数面板和策略文件里都是明文,不要截图外发。
  2. 只连你自己配置的中转站地址,不要用来路不明的地址。
  3. 保持「单笔金额上限」和「单笔股数上限」为有限值 —— 它们是跟单链路上最后一道闸。填 0 表示不限制,别填。

服务端的紧急制动

服务端有一个 RELAY_DRY_RUN 开关。打开后,它会在每一条下发的信号上盖一个 dry_run=true 的标记,跟单策略收到后只回报、不调 passorder() —— 等效于「远程把每台 QMT 的空跑模式打开」。

出问题时的第一动作就是打开它,比一台台跑去关 QMT 快得多。恢复正常:把开关关掉,QMT 侧不用重启,下一拍心跳会在日志里打 server brake OFF。

两个前提要记住: ① 跟单包必须是 v3.0.1 或更高。老包不认这个字段,服务端盖了章它照样下单。版本可以在 QMT 参数面板或工作台通道页看到。 ② 制动只拦下单,不拦撤单 —— 一键停机的同一时刻,你还得能把挂出去的仓位收回来。


常见问题

Q:工作台显示「离线」,但 QMT 明明开着? A:心跳没打出去。检查中转站地址是否公网可达、令牌对不对;重开 QMT 后看日志里有没有连接失败的行。

Q:出现「⚠ N 个客户端」的黄牌? A:同一个通道令牌被多个 QMT 进程同时拉取。最常见的是同一个策略文件被加载成了两条同名模型,或旧进程没杀干净。多出来的那个若跑在回测 / 模拟模式,会把信号抢走并给出「已提交」的假象,实际不产生任何委托。 处理:去 QMT「模型交易」数一数同名策略有几条,只保留一条实盘实例;停掉后回来看黄牌是否消失(约 35 秒后刷新)。

Q:信号被拦截,原因写「信号未携带价格」? A:服务端强制要求真实下单必须带精确价格。聚宽接入代码取不到该标的行情(停牌 / 冷门 LOF / 非交易时段)时就会这样。重新复制一次最新的聚宽接入代码,并确认标的当时有行情。

Q:提示权益已到期? A:去「积分钱包 / 权益兑换」续费即可,续费后通道自动恢复,历史数据不删。

Q:能改通道名字吗? A:能。工作台「修改通道名称」。但注意:已经下载出去的跟单包里,策略名是旧的 —— 改名后要重新下载跟单包并重新放文件,否则 QMT 里还是老名字。

Q:能删通道吗? A:能。但关联的历史信号和订单记录会一起处理掉,且不可恢复。确认不再使用再删。

Q:中转站必须上 HTTPS 吗? A:对公网暴露就必须要。 通道令牌是明文传输的,HTTP 等于把钥匙挂在网上。自己用的内网环境可以例外,但只要有公网入口就必须上 TLS。

Q:服务器时间不准会怎样? A:信号带 created_at 时间戳,跟单策略按它判断是否过期(默认 120 秒)。服务器时间偏了,信号会被批量误判为过期或永不过期。给服务器配好 NTP 时间同步。


本篇检查单

  • [ ] 已注册并登录中转站
  • [ ] 已开通「QMT 自动版」策略权益(拿到了通道额度)
  • [ ] 已创建通道,名字好认
  • [ ] 已从工作台复制聚宽接入代码
  • [ ] 已从工作台下载 QMT 跟单包
  • [ ] 工作台「执行参数」已按资金量设好单笔金额上限 / 日委托笔数上限 / 日内亏损熔断
  • [ ] 「发送测试信号」回显变绿
  • [ ] 「一键全链路测试」三跳全 [OK]
  • [ ] (可选)「买卖预检」结论符合预期
  • [ ] (可选)「实盘下单」真实下过一笔,并在 QMT 委托列表核对无误
  • [ ] 中转站地址是 HTTPS
  • [ ] 服务器时间已同步(date 命令核对)

下一篇:④ QMT 侧配置及测试教程 —— 把跟单包放进 QMT,让它真的把单子发出去。

想直接看策略?

官网策略的手动版与 QMT 自动版,都可以先了解逻辑与回测再决定。

浏览官网策略
?帮助 ◎知识库
帮助