目录
JQ量化跟单系统 使用手册
本手册涵盖从注册账号到实盘跟单的完整流程,以及所有功能参数的详细说明。建议首次使用的用户按顺序阅读。
1 快速开始
按照以下四步,即可完成从注册到实盘跟单的全部配置。
注册账号 / 获取授权
联系管理员开通账号,或在开放注册时自行注册。注册后获得免费体验期(默认30天)。到期后需联系管理员续费充值。
获取 API Token
登录管理后台,右上角可看到你的 API Token,点击复制按钮复制。这是客户端和聚宽端连接服务器的唯一凭证,请妥善保管,不要泄露给他人。
配置聚宽策略
下载 jq_sender.py,在聚宽研究环境中引入,填写服务器地址和 API Token,替换原有下单函数。详见第 2 节。
启动 QMT 客户端
根据你的环境选择大QMT或miniQMT客户端,填入服务器地址和 API Token,启动后客户端会自动长轮询拉取信号并下单。详见第 3 节。
2 聚宽端配置
聚宽端使用 jq_sender.py 模块,通过装饰器拦截策略中的下单函数,将信号发送到服务器,再广播给所有授权用户的 QMT 客户端。
2.1 引入模块
# 在策略文件顶部引入
from jq_sender_stock import wrap_stock
order, order_target, order_value, order_target_value = wrap_stock(
token='你的API Token', name='策略名称',
_order=order, _order_target=order_target,
_order_value=order_value, _order_target_value=order_target_value)
2.2 支持的下单函数
| 函数名 | 说明 |
|---|---|
order(security, amount) | 按数量下单,正数买入,负数卖出 |
order_target(security, amount) | 调整持仓到目标数量 |
order_value(security, value) | 按金额下单 |
order_target_value(security, value) | 调整持仓到目标金额 |
2.3 实盘与回测区分
- 实盘运行:信号标记为
live,QMT 客户端收到后真实下单 - 回测运行:信号标记为
backtest,QMT 客户端收到后不会真实下单,仅归档记录
2.4 多用户广播
一个聚宽账号可以同时广播给多个授权用户。在 JQSender 初始化时传入多个 Token 列表即可,每个用户的信号队列相互独立,互不影响。
3 客户端选择
系统提供两种 QMT 客户端,根据你的使用场景选择合适的版本。
- 代码粘贴到 .rzrk 策略文件,无需安装额外依赖
- 直连 Redis,毫秒级响应,适合服务器部署
- 无界面后台运行,资源占用极低
- 使用迅投内置 passorder 等函数下单
- 可视化操作界面,实时信号监控
- 成交记录、持仓面板一目了然
- 系统托盘,关闭窗口不退出
- 适合个人投资者本地运行
3.1 大QMT 配置步骤
在首页下载 qmt.py,用文本编辑器打开,找到顶部配置区,填写 SERVER_URL(服务器地址)和 API_TOKEN(你的 Token)。
打开迅投 QMT,新建一个 .rzrk 策略文件,将 qmt.py 的全部内容粘贴进去。
点击"运行",策略启动后会自动连接服务器并开始长轮询拉取信号。日志面板会显示连接状态。
3.2 miniQMT 配置步骤
在首页下载 miniQMT 安装包,双击安装,安装完成后桌面会出现快捷方式。
首次启动会弹出登录窗口,填写服务器地址和 API Token,点击"连接"。
连接成功后进入主界面,可在"配置"面板调整跟单参数,在"信号"面板实时查看信号流。
4 跟单参数详解
在管理后台 → 用户管理 → 跟单配置 中可以设置以下参数。所有参数修改后客户端下次拉取配置时自动生效(约 30 秒内)。
4.1 账户设置
| 参数 | 说明 | 示例 |
|---|---|---|
QMT账户号 | 迅投 QMT 的资金账户号,用于下单时指定账户 | 1234567890 |
账户类型 | STOCK(股票账户)或 FUTURES(期货账户) | STOCK |
4.2 跟单比例
跟单比例决定了实际下单数量与信号数量的关系。
| 参数 | 说明 |
|---|---|
跟单比例 | 信号数量 × 比例 = 实际下单数量。例如信号买入 1000 股,比例 0.5 则实际买入 500 股。默认 1.0(1:1 跟单) |
最小下单数量 | 计算后数量低于此值时,该信号被忽略不下单。防止因比例过小产生无效委托 |
最大下单金额 | 单笔委托金额上限(元)。超过此金额时按上限金额折算数量 |
4.3 价格编码(笼子价格)
控制委托价格相对于当前市价的偏移,避免因价格偏差导致委托失败。
| 编码 | 含义 | 适用场景 |
|---|---|---|
0 | 使用信号原始价格 | 信号价格可靠时 |
1 | 买入用卖一价,卖出用买一价(对手价) | 追求快速成交 |
2 | 买入用卖一价 × (1 + 笼子比例),卖出用买一价 × (1 - 笼子比例) | 确保成交,允许一定滑点 |
3 | 市价单(迅投 FIX_PRICE) | 极度追求成交速度 |
| 参数 | 说明 |
|---|---|
买入价格编码 | 买入委托的价格计算方式(0-3) |
卖出价格编码 | 卖出委托的价格计算方式(0-3) |
笼子比例 | 编码 2 时的价格偏移比例,如 0.02 表示 2%。买入价上浮 2%,卖出价下浮 2% |
4.4 黑名单
黑名单中的股票代码,即使收到信号也不会下单。支持两级黑名单:
- 全局黑名单:由管理员在系统设置中配置,对所有用户生效
- 用户黑名单:在跟单配置中配置,仅对当前用户生效
000001、600000,多个代码用英文逗号分隔。5 下单模式
系统提供多种下单模式和辅助功能,满足不同交易场景的需求。
5.1 基础下单模式
| 模式 | 说明 |
|---|---|
| 默认模式 | 按信号数量 × 跟单比例下单,数量取整到 100 股 |
| 固定数量 | 忽略信号数量,每次固定下单指定数量(如每次买入 1000 股) |
| 固定金额 | 忽略信号数量,每次固定下单指定金额(如每次买入 10000 元) |
5.2 撤单重下
委托发出后,若超过设定时间仍未成交,系统会自动撤单并以新价格重新委托,提高成交率。
| 参数 | 说明 |
|---|---|
撤单重下开关 | 是否启用撤单重下功能 |
撤单等待时间 | 委托发出后等待多少秒未成交则撤单(建议 30-60 秒) |
最大重下次数 | 最多重新委托几次,超过后放弃(防止无限循环) |
5.3 漏单补单
客户端重启或网络中断后,系统会检查是否有未消费的信号,并自动补下。
| 参数 | 说明 |
|---|---|
漏单补单开关 | 是否启用漏单补单功能 |
补单时间窗口 | 只补当前时间往前多少分钟内的漏单(超出时间窗口的信号视为过期,不补) |
5.4 抢单模式
在 09:30 开盘时,系统会提前准备委托,开盘瞬间立即下单,争取最优成交价格。
| 参数 | 说明 |
|---|---|
抢单开关 | 是否启用开盘抢单 |
抢单时段 | 默认 09:30:00 ~ 09:31:00,此时段内的信号会触发抢单逻辑 |
5.5 涨停炸板卖出
实时监控持仓中的涨停股,一旦涨停板被打开(炸板),立即以对手价卖出,保护利润。
| 参数 | 说明 |
|---|---|
炸板卖出开关 | 是否启用涨停炸板自动卖出 |
炸板监控时段 | 只在此时段内监控涨停板,默认 09:30 ~ 14:57 |
炸板确认时间 | 涨停板打开后等待多少毫秒确认(防止瞬间假炸板),建议 500ms |
6 高级功能
6.1 集合竞价
开启后,客户端会在 09:15 ~ 09:25 集合竞价阶段处理信号并参与竞价。关闭则只在连续竞价阶段(09:30 后)下单。
6.2 交易时段控制
可以设置客户端只在指定时段内处理信号,超出时段的信号会被忽略(不下单,但仍归档记录)。
| 参数 | 默认值 | 说明 |
|---|---|---|
交易开始时间 | 09:30:00 | 早于此时间的信号不处理 |
交易结束时间 | 14:57:00 | 晚于此时间的信号不处理(留3分钟缓冲防止尾盘委托无法成交) |
6.3 成交回传与盈亏统计
客户端每次成交后会自动将成交结果回传到服务器,服务器计算盈亏并更新统计数据。
- 成交记录包含:成交时间、股票代码、方向、委托价、成交价、数量、金额、手续费
- 盈亏计算:卖出时自动匹配对应买入记录,计算净盈亏(扣除手续费)
- 每日汇总:胜率、最大回撤、夏普比率等绩效指标自动计算
6.4 持仓快照
客户端每 10 秒发送一次心跳,心跳中携带当前持仓快照(股票代码、数量、成本、现价、浮动盈亏)。管理后台 → 持仓快照 可实时查看。
7 分享页使用
分享页是一个公开链接,好友无需注册登录即可实时查看你的信号流和盈亏情况。
7.1 创建分享链接
进入管理后台 → 分享页管理,点击"创建分享链接"。
填写分享标题(显示在分享页顶部),选择是否展示盈亏数据,选择有效期(1/2/3 个月)。
可选:设置访问密码,好友访问时需要输入密码才能查看。
点击"创建",系统生成唯一链接,复制后发给好友即可。
7.2 分享页内容
| 内容 | 说明 |
|---|---|
| 策略名称 / 运行天数 | 分享标题 + 从第一条实盘信号至今的运行天数 |
| 信号统计 | 总信号数、今日信号数 |
| 盈亏曲线 | 仅在"展示盈亏"开启时显示,展示累计净值曲线和每日盈亏柱状图 |
| 实时信号流 | 最新的实盘信号列表(每 5 秒自动刷新),含股票代码、方向、价格、数量 |
7.3 管理分享链接
- 续期:链接到期前可续费延长有效期(1/2/3 个月),费用从账户余额扣除
- 开关:可随时关闭分享链接,关闭后好友访问会提示"分享已关闭"
- 密码:可随时修改或清除访问密码
- 访问统计:可查看分享链接的访问次数
8 管理后台说明
管理后台地址:/admin/login.php,使用注册时的账号密码登录。
8.1 各功能模块
仪表盘
实时展示今日信号数、成交额、盈亏,以及系统健康状态(Redis/MySQL 连接状态)。
信号监控
实时查看信号流,支持按股票代码、方向、状态、时间范围筛选。信号状态:待消费(黄)、已消费(绿)、已过期(灰)、失败(红)。
成交记录
查看成交记录,含委托价、成交价、数量、金额、手续费、盈亏。支持导出 CSV。
盈亏统计
查看净值曲线、每日盈亏柱状图、胜率、最大回撤、夏普比率等绩效指标。支持按时间范围筛选。
持仓快照
实时查看客户端上报的持仓数据,含股票代码、数量、成本、现价、市值、浮动盈亏。数据来自客户端心跳,30 秒无心跳则过期。
8.2 账户余额与充值
创建分享链接、续期等操作会消耗账户余额。余额不足时相关操作会被禁用。
- 余额显示在管理后台右上角用户信息区
- 需要充值请联系客服,充值后余额实时更新
- 系统授权(使用跟单功能)按到期日计算,与余额无关
9 常见问题 FAQ
Q:客户端启动后一直显示"连接中",无法连接服务器?
请检查以下几点:
- 服务器地址是否填写正确(包含
https://前缀) - API Token 是否正确(在管理后台右上角复制)
- 账户是否在有效期内(过期账户无法连接)
- 服务器防火墙是否开放了对应端口(默认 443)
- 本地网络是否能访问服务器(尝试在浏览器打开服务器地址)
Q:聚宽策略发出了信号,但 QMT 没有下单?
可能原因:
- 信号是回测信号(
run_type=backtest),回测信号不触发真实下单 - 股票在黑名单中(全局黑名单或用户黑名单)
- 信号到达时已超出交易时段(如 15:00 后)
- 计算后下单数量低于最小下单数量
- 信号已过期(超过信号过期时间未被消费)
- QMT 账户资金不足
可在管理后台 → 信号监控 中查看信号状态,确认信号是否被正常接收和消费。
Q:仪表盘显示大量回测信号,如何清除?
在仪表盘的"今日信号汇总"表格中,找到对应用户行,点击"清空回测"按钮即可一键清除该用户的所有回测信号。此操作不可恢复,请确认后操作。
Q:如何修改跟单比例?修改后多久生效?
在管理后台 → 用户管理 → 找到对应用户 → 点击"跟单配置",修改跟单比例后保存。客户端每次拉取信号时会同步获取最新配置,通常在 30 秒内生效。
Q:分享页的盈亏曲线数据是实时的吗?
盈亏曲线数据来自成交回传记录,每次成交后客户端会自动回传,通常延迟在 1 分钟以内。信号流每 5 秒自动刷新,基本实时。
Q:一个聚宽账号可以同时跟多个 QMT 账户吗?
可以。在 jq_sender.py 初始化时传入多个用户的 API Token 列表,每个 Token 对应一个独立的信号队列。每个用户可以有不同的跟单比例、黑名单等配置,互不影响。
Q:Redis 连接失败怎么办?
Redis 是信号中转的核心,连接失败会导致信号无法传递。请检查:
- Redis 服务是否正在运行(
systemctl status redis) config.php中的 Redis 地址和端口是否正确- Redis 是否设置了密码,密码是否填写正确
- 服务器防火墙是否允许 Redis 端口(默认 6379)
Q:如何查看系统运行日志?
系统日志按天分割存储在服务器 logs/ 目录下,保留最近 30 天。管理后台 → 操作日志 可查看管理员的操作记录。客户端日志在 miniQMT 的"日志"面板中实时显示,大QMT 日志在迅投策略的日志面板中查看。
Q:账户到期后数据会丢失吗?
不会。账户到期后只是无法连接服务器接收新信号,历史信号、成交记录、盈亏数据等均保留在数据库中。续费后可继续查看所有历史数据。