Files
big-qmt/docs/xhs-miniqmt-bridge.md

261 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 小红书四页图文MiniQMT 关停后怎么办(桥接 API 方案)
> 素材来源:本仓库 `api/qmt_rest_new.py`REST 桥接服务端)、`docs/api.md`(接口契约)、`py-client/`(外部 Python 策略端)、`py-client/etc/_global.yaml`(配置)。
> 说明全文所有账号、密码、TOKEN 均为占位符,**发布前不要把真实凭据写进图里或正文**。
---
## 一、发布总览
| 项 | 内容 |
| --- | --- |
| 主题 | MiniQMT极简模式/外接 xtquant关停后老策略怎么继续跑 |
| 卖点 | 桥接 API策略代码不搬家大 QMT 只当"下单通道" |
| 页数 | 4 页(图文轮播) |
| 目标动作 | 评论区/私信"关停""桥接"→ 引导私聊 |
| 语气 | 同行分享、干货向,不喊单、不承诺收益 |
---
## 二、四页文案(可直接做图)
### 第 1 页MiniQMT 关停后的几大问题
**主标题(大字)**
> MiniQMT 关停后,你的策略还能跑吗?
**副标题(小字)**
> 4 个坑90% 的人第一个就卡住
**正文(分条,每条一行,配极简图标)**
| 图标 | 痛点 | 一句话讲透 |
| --- | --- | --- |
| 🔌 | **外接 xtquant 通道没了** | `XtQuantTrader` / `xtdata` 那套"独立进程连客户端"的入口关闭;外挂式策略、跟单程序、历史数据下载脚本集体失联 |
| 🐍 | **被迫搬进大 QMT 内置 Python** | 内置端是 Python 3.6 + GBK + 库受限f-string、dataclasses、asyncio、第三方库可能全废代码要重写 |
| 🧵 | **单线程、禁止阻塞** | 内置端所有策略共用一个线程,一个 `time.sleep` 或死循环,能把全部策略一起卡死 |
| ⚠️ | **下单没有返回值** | `passorder` 不回订单号,只能靠"投资备注 + 委托查询"对账;客户端查询还有几十毫秒到数秒延迟,照搬"下单即查"必然漏单、超单 |
| 💻 | **必须围着电脑转** | 客户端要登录、策略要手动点运行、电脑不能睡、断网断电容错全靠自己 |
**页脚金句**
> 关停的不是"量化",是"连接方式"。
**设计**:深色背景 + 红色警示色标题;每条配一个 emoji 大图标;右侧竖排页码 "01/04"。
---
### 第 2 页:桥接 API 的方式(拆解 `qmt_rest_new.py`
**主标题**
> 不用改策略:把大 QMT 变成一台"下单服务器"
**副标题**
> 一个文件14 个 HTTP 接口,老代码继续跑
**核心原理(三句话,配一张数据流图)**
```
你的 Python 策略独立进程、Python 3.14、随便装库)
│ HTTP + X-Token
大 QMT 内置策略进程qmt_rest_new.pyTornado @ 0.0.0.0:10086
│ 只做转发
passorder / get_trade_detail_data / ContextInfoQMT 原生能力)
```
**这张图就是全部价值策略留在外面QMT 只当通道。**
**服务端怎么跑4 步启动流程)**
1. 校验账户与数据目录非空 → `set_account(账号)`
2. 从远端拉股票池 + 合并当前持仓 → 去重
3. `set_universe()` 设置标的池
4. 启动 Tornado 监听 `0.0.0.0:10086`,等待外部调用
**接口清单14 个,按用途分四组)**
| 分组 | 接口 | 用途 |
| --- | --- | --- |
| 上下文 | `GET /api/context/info` | 周期、资金、标的池等策略上下文 |
| 数据 | `GET /api/get/{类型}` | 股票名、上市日、总股本、股息因子、ETF、合约详情、ST 历史等 11 类单票查询 |
| 数据 | `POST /api/data/full_tick` | 实时 tick 行情 |
| 账户 | `GET /api/portfolio` | 资产 + 持仓 + 委托一次拿全 |
| 账户 | `GET /api/portfolio/assets``/positions``/order``/deal``/org/{类型}` | 资产、持仓、委托、成交、原始记录 |
| 交易 | `POST /api/trade/passorder` | 下单 |
| 交易 | `POST /api/trade/cancel_by_id` | 按柜台订单号撤单 |
| 交易 | `POST /api/trade/ipo_data` | 新股/新债发行数据 |
| 系统 | `GET /api/sys/python_version` | 看内置端 Python 版本 |
**怎么调(一行代码的体感)**
```python
# 外部策略端:改 base_url 就能跑
client = Client(base_url="http://127.0.0.1:10086", token="<你的TOKEN>")
client.passorder(op_type=23, stock_code="600000.SH", volume=100, price=10.0)
```
服务端下单请求体也是大白话 JSON
```json
{"opType":23,"orderType":1101,"stockCode":"600000.SH",
"prType":11,"price":10.0,"volume":100,
"quickTrade":2,"strategyName":"trend","orderId":"trend-BUY-001"}
```
**这套方案的 3 个硬优势**
-**策略代码零改动**:老策略、老库、老 Python 版本全部留在外部进程
-**绕开 Python 3.6 / GBK**:内置端只跑一个转发文件,不跑你的业务逻辑
-**一份服务,多端复用**:本机策略、远程脚本、手机查持仓,都走同一个 API
**必须知道的 4 个坑(专业感来源,也是引流钩子)**
- ⚠️ **Token 是唯一门禁**`X-Token` 不对一律拒绝;端口开在 `0.0.0.0`,别直接把 10086 暴露到公网,建议只绑内网或加白名单
- ⚠️ **下单"成功"≠ 成交**`status: success` 只代表底层没抛异常;查询查的是客户端本地缓存,不是柜台实查
- ⚠️ **服务端不做幂等**:超时重发可能变成两单,`orderId` 去重要在自己策略里做
- ⚠️ **首启依赖远端股票池**:远端超时或返回格式不对,服务直接起不来
**页脚金句**
> 关停逼你换的不是策略,是"接口层"。
**设计**:白底科技蓝;上半部分放数据流图(三个方框 + 箭头);下半部分放接口表格,只保留"分组 + 代表接口";右下角放一行代码截图感的小卡片。
---
### 第 3 页:个人 PC 全自动运行(开机 → 登录 → 起服务 → 跑策略)
**主标题**
> 人不在电脑前,策略照样跑
> ——个人 PC 无人值守 5 步搞定
**副标题**
> 断电重启后全自动恢复,早上打开手机就能看持仓
**Step 1开机就启动客户端**
- `Win + R` → 输入 `shell:startup` → 把 QMT 快捷方式复制进去(最简单,免管理员)
- 更稳的做法:任务计划程序 → 勾选"不管用户是否登录都运行" + "使用最高权限" + 延迟 12 分钟启动(等网络和驱动就绪)
- 🚫 **安装路径不要带中文**,例如 `D:\quant\qmt`,中文路径容易让内置 Python 直接崩
**Step 2自动登录关停后最容易翻车的一步**
- 客户端登录界面先勾"记住账号 + 记住密码",能覆盖大部分场景
- 有验证码/弹窗时,记住密码不够用,需要**窗口自动化兜底**
- 交易时段每 10 分钟探活一次(用交易日历排除周末和节假日)
- 没进程就拉起客户端 → 激活登录窗口 → 填密码 → 回车
- 每步都带重试,失败写日志,便于第二天排查
- 关键前提:**策略自身必须配成"客户端启动后自动运行"**,否则软件开了策略还是停的
**Step 3客户端内把"自动"全勾上**
- 模型交易 → 新建策略交易 → 选策略 + 资金账号 → 运行模式选实盘
- 勾选 **"终端启动后自动运行"**,登录延迟设 10 秒左右
- 交易设置里开启 **盘前自动重启**(如 8:30刷新行情连接避免隔夜卡顿
- 多个策略就每条都建一条策略交易、都勾自动运行
**Step 4外部策略进程也得活下去**
- 用任务计划程序托管外部策略:开机启动 / 断线重启 / 最高权限
- 进程内自检:定时 `GET /api/sys/python_version``/api/context/info` 做**心跳**,返回异常就重连并告警
- 日志落盘(绝对路径),关键动作全部留痕:下单、撤单、心跳失败、重连次数
**Step 5把"睡着"这件事彻底掐死**
- 电源设置:屏幕和睡眠都设 **"从不"**;笔记本长期插电
- 设备管理器 → 网卡 → 电源管理 → **取消勾选"允许计算机关闭此设备以节约电源"**
- 高级电源设置:无线适配器改"最高性能",硬盘设为"从不关闭"
- 台式机在 BIOS 里开 **"来电自动开机"**,停电恢复后能自己爬起来
- 兜底:装远程桌面工具,人不在也能看一眼服务是否在跑
**页脚金句**
> 自动化的本质不是"不用管",而是"坏了能自己回来"。
**设计**:浅色底 + 五个编号圆角卡片纵向排列每张卡片左侧一个大数字0105右侧 23 行短句;最后一行放一句金句。
---
### 第 4 页:有问题可以私我
**主标题**
> 卡在哪一步了?
**副标题**
> 关停不可怕,可怕的是自己瞎折腾一整天
**正文(我这边能帮你看)**
- 🧩 **策略迁移评估**:你的老策略能不能桥接?哪些地方必须动?
- 🔌 **桥接服务部署**`qmt_rest_new.py` 怎么落地到你的 QMT接口怎么调通
- 🔁 **订单对账**:下单没返回值、漏单/超单/重复单,怎么用备注 + 委托查询兜住
- 🖥️ **无人值守**:开机自启、自动登录、防休眠、断线重连、告警
- 📩 评论区回 **"桥接"** 或直接私信,说明你的情况(券商 / 策略语言 / 卡在哪一步),我按顺序回
**页脚(合规与免责,必须留)**
> 仅交流技术实现,不构成投资建议,不承诺收益。
> 量化有风险,策略与运维问题请自行验证后再上实盘。
**设计**:与第 1 页呼应的深色底;中间放 4 个圆角标签;底部留大面积"私信我"引导区 + 小字免责声明。
---
## 三、小红书正文(复制即用)
```
MiniQMT 关停,最先崩掉的不是策略,是"连接方式"。
很多人第一反应是:完了,策略要重写。
其实先别急着改代码——
大 QMT 内置 Python 是 3.6 + GBK + 单线程,
把几百行策略硬搬进去f-string、第三方库、定时调度全得重来
还要担心一个 sleep 卡死全部策略。
更省事的思路是:让大 QMT 只当"下单通道"。
做法很简单:
在 QMT 里挂一个桥接文件,开一个本地 HTTP 服务(默认 10086带 Token 鉴权),
把下单、撤单、持仓、资产、委托、成交、tick 行情全部包成接口。
你的 Python 策略继续待在外面,用 http 调用,代码基本不用改。
再配上个人 PC 的无人值守五件套:
开机自启 → 自动登录 → 客户端内"终端启动后自动运行" → 外部策略进程守护 → 防休眠防断网(含 BIOS 来电自启),
断电重启也能自己恢复。
当然有几个坑要提前知道:
· Token 是唯一门禁,端口别暴露公网
· 下单"成功"不等于成交,查询查的是客户端缓存
· 服务端不做幂等,超时重发小心变双单
完整拆解我做了 4 张图,从"关停后几大问题"到"接口清单"再到"无人值守步骤"都在图里 👉 左滑
(仅技术交流,不构成投资建议,不承诺收益)
```
---
## 四、标题备选(挑一个,建议 A/B 两版)
| 序 | 标题 | 风格 |
| --- | --- | --- |
| 1 | MiniQMT 关停后怎么办?完整解决办法 | 结果导向,最推荐 |
| 2 | MiniQMT 停了,但我的策略还在自动下单 | 悬念感 |
| 3 | 关停不是终点:把大 QMT 变成下单服务器 | 技术向 |
| 4 | MiniQMT 关停 + 电脑无人值守4 张图讲透 | 干货合集 |
| 5 | 别急着重写策略,先看这个桥接方案 | 反直觉钩子 |
## 五、话题标签
```
#MiniQMT #QMT #量化交易 #Python量化 #程序化交易 #量化策略 #自动交易 #xtquant #量化新手 #程序员副业 #无人值守 #技术分享
```
---
## 六、发布要点(合规提醒)
1. **不要出现真实账号、密码、TOKEN、IP、端口映射截图**;图里的 Token 一律打码或用占位符。
2. 不写"稳赚""躺赚""保收益";不展示具体收益截图诱导交易。
3. 券商开户/软件权限类话题容易被判定为引流,建议只谈技术实现,把商务信息放私信。
4. 提到"开户""低佣"等内容时务必谨慎,容易触发平台风控。
5. 四页图建议统一比例3:41080×1440第 1 页负责停留,第 2 页负责专业度,第 3 页负责收藏,第 4 页负责转化。
## 七、资料来源
- 桥接服务端实现:`api/qmt_rest_new.py`14 个路由、Token 鉴权、启动流程)
- 接口契约细节:`docs/api.md`(字段、错误码、下单与撤单语义)
- 外部策略端调用方式:`py-client/sdk/client.py``py-client/sdk/trade.py`
- 部署与自启参考:[QMT 本地电脑全自动开机运行全教程](https://licai.cofool.com/user/guide_view_3452029.html)、[国金 QMT 自动登录Python 版)](https://blog.csdn.net/oamayi/article/details/156651767)
- 迁移差异参考:[MiniQMT 策略转大 QMT 内置 Python](https://github.com/Listolany/MiniQMT_2_BigQMT/blob/main/SKILL.md)