From 5bfde82f2bf4eecfde7ba032e8ebb484a77a7f0b Mon Sep 17 00:00:00 2001 From: claude_dev Date: Tue, 8 Sep 2026 13:26:01 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=BF=81=E7=A7=BB=E8=AF=84=E4=BC=B0?= =?UTF-8?q?=C2=A76=E2=80=94=E2=80=94P1~P3=E5=AE=9E=E6=96=BD=E8=AE=B0?= =?UTF-8?q?=E5=BD=95+VPS=E6=89=8B=E5=B7=A5=E9=83=A8=E7=BD=B2=E4=BD=8D?= =?UTF-8?q?=E6=B8=85=E5=8D=95+09-08=E6=96=B0=E5=9D=91+=E8=87=AA=E6=84=88?= =?UTF-8?q?=E9=93=BE=E8=AE=BE=E8=AE=A1+=E5=89=A9=E4=BD=99=E5=B7=A5?= =?UTF-8?q?=E5=BA=8F=20[nas]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7-miniqmt-shutdown-migration-assessment.md | 69 +++++++++++++++++-- 1 file changed, 63 insertions(+), 6 deletions(-) diff --git a/docs/design/2026-09-07-miniqmt-shutdown-migration-assessment.md b/docs/design/2026-09-07-miniqmt-shutdown-migration-assessment.md index d342dc9..f1322ee 100644 --- a/docs/design/2026-09-07-miniqmt-shutdown-migration-assessment.md +++ b/docs/design/2026-09-07-miniqmt-shutdown-migration-assessment.md @@ -75,9 +75,66 @@ | 回退 | 至 09-17 | miniQMT 在 09-18 前天然是回退路径(保留不卸载,env 切回即回退) | — | ## 五、开放项(按优先级,09-07 用户澄清 R2 后更新) -1. **R1 验证:模拟账号+完整版QMT+运行模式实盘 的下单/回报闭环**(阻塞一切,用户 RDP 登录后即可测) -2. **双开共存验证:完整版 QMT 与 XtMiniQmt.exe 同机同装并存**(迁移期 16 引擎还在 mini 上,双开是常态) -3. **账号规划(09-07 新增)**:券商另发了一个 1000w 虚拟资金的模拟账号 → 定位=P1~P3 试验田(server 只读验证/R1 实测/冒烟下单零污染)。待确认:**66639661 能否用完整版 QMT 登录**——能则终态切回(账本/持仓/remark 指纹连续,最优);不能则引擎落新账号=切换日持仓重建+恒等式对账重新起算。新账号 id 待用户提供(server 端 BIGQMT_ACCOUNT_TYPE/RPC channel 按账号派生) -4. R4 四个 xtdata 接口验证清单 -5. 策略 session 参与:P5 实盘切换涉及策略代码/调度,需策略 session 联合(三向一致性检查按项目 CLAUDE.md 流程走 Gitea Issue) -6. xt_eod 若断供,数据 session 找替代源(独立工作流,不阻塞交易迁移) +1. ~~**R1 验证:模拟账号+完整版QMT+运行模式实盘 的下单/回报闭环**~~ ✅ **09-08 关闭**:国金版没有「运行模式」控件(README 作者券商版才有);模拟账号下单天然走模拟柜台(第十套),实弹直测即通,P3 全绿 +2. ~~双开共存验证~~ ✅ 09-07 双进程整夜共存实证(mini PID 17488 / XtItClient / miniquote 同 bin.x64) +3. **账号规划**:66639661 已确认完整版可登录(09-07 用户实测)→ 终态沿用,账本/remark 指纹连续;1000w 新模拟账号备用未启用 +4. ~~R4 四个 xtdata 接口验证清单~~ ✅ 09-07 深夜数据 session 三发实测全绿(get_stock_list_in_sector / download_history_data2 北交920 / get_market_data_ex 268根含当日bar) +5. 策略 session 参与:P4 影子试水 + P5 全量切换涉及策略代码/调度,需策略 session 联合(三向一致性检查按项目 CLAUDE.md 流程走 Gitea Issue) +6. ~~xt_eod 断供~~ ✅ 桥可全替无一项换源(README 能力表 + R4 实测);连接层代码切换(`from xtquant import` → compat configure())= 数据 session 工序 + +--- + +## 六、09-08 P1~P3 实施记录(VPS 手工部署位,**不在 git,升级/重装必读**) + +> 本节是活文档:桥的 VPS 侧部署全部为手工操作,git 里没有。任何「重装/升级上游版本」都要对照本节重打。 + +### 6.1 部署位全清单(VPS `49.232.102.198`) + +| 路径 | 内容 | 说明 | +|------|------|------| +| `C:\sanguo_bigqmt\` | 暂存区:`entry_v4.py`(入口补丁源)、`redis_common_v4.py`、`xbc_p2b.py`(P2 只读探针)、`p3_flip_config.py`(闸门翻转)、`p3_smoke.py`(冒烟)、`qmt_status.py`(launcher 探针)、`bridge_data_test.py`(R4 数据三发,data session)、`r353_pkg`、`xbc_src.zip`、`probe_*.txt` | 操作工具箱 | +| `C:\国金QMT交易端模拟\python\` | 桥 server 5 件套 + `bigqmt_signal_trader_local_config.py`(**rpc_allow_order_methods=True 已开**)+ 借壳入口「新建策略文件3.py」(=打补丁的 BIGQMT_REDIS_DRYRUN.py,**勿在 QMT 编辑器里动它**) | server 侧 | +| `...\python\logs\bigqmt-pid*.log` | 桥 pid 日志(只记 ERROR;正常输出看 QMT 面板 XtClient_Formula 日志) | 排障 | +| `bin.x64\Lib\site-packages\redis\` | redis-py **3.5.3**(4.4.4 需 py3.8 的 typing.Literal,QMT 内置 3.6 跑不了;残留 4.4.4 会遮蔽,必须清干净) | ⚠️ 版本钉死 | +| `C:\redis\` | Redis 8.10.1 Windows 服务(127.0.0.1:6379 + requirepass,密码只在 redis.conf)+ `C:\redis-data`(--dir 必须先建否则 1067) | RPC 总线 | +| `C:\Python310\Lib\site-packages\bigqmt_signal_trader\` | 客户端 0.3.25 + psutil 7.2.2(qmt_launcher 依赖,09-08 装) | client 侧 | + +### 6.2 P3 冒烟记录(09-08 13:14,双市场全绿) + +| 验证点 | 结果 | +|--------|------| +| 沪市下单+成交 | ✅ 510050.SH 100股 @3.022(合同号 3263) | +| 深市下单+成交 | ✅ 159915.SZ 100股 @3.397(合同号 3264) | +| remark 往返 | ✅ `p3smoke:0908:*` user_order_id 完整回读 + strategy_name 显示在 QMT「报单来源」列 | +| 撤单 | ✅ 3265 挂 90% 低价 → cancel → success | +| 订单状态推送 | ✅ `bigqmt:order_events:{acc}` stream:50→56(全成)/50→54(已撤) | +| 成交回报推送 | ✅ `bigqmt:trade_events:{acc}` stream:含 trade_id/金额/commission | +| 持仓残留 | +642 元 ETF(510050×100+159915×100),用户次日人工平 | + +### 6.3 新坑(09-08 增补) + +1. **配置改完必须重启策略**:`rpc_allow_order_methods` 等只在策略启动时读盘;远程确认 server 内存值用 `ping` RPC(返回 `allow_order_methods` 字段)——诊断利器 +2. **两道闸两种报错**:`ValueError: rpc method is not allowed` = 方法不在白名单(False 时的表现);`PermissionError: order rpc methods are disabled` = 显式关单——都指向闸门未开,别混淆 +3. **裸 RPC 字段名**:订单里 remark 字段是 `remark`/`user_order_id`,不是 `order_remark`(脚本过滤用错会显示 0 但数据在) +4. **「编辑策略交易」弹窗无运行模式控件**(国金定制):模拟/实盘切换按钮在主界面;模拟账号下单天然走模拟柜台 +5. **qmt_launcher restart 会连杀 miniQMT**:mini/完整版/miniquote 同属一个 bin.x64,按目录隔离也躲不开——**只在维护窗用**(16 引擎全停时) +6. get_full_tick 实时性判据:`timetag` 字段盘中应实时跳动,隔夜值停在 00:00 + +### 6.4 自愈链设计(三环,第二环待确认) + +| 环 | 机制 | 状态 | +|----|------|------| +| ① 策略自动运行 | QMT「编辑策略交易」勾「终端启动后自动运行」(已配延迟 10 秒) | ✅ 09-08 已勾 | +| ② 客户端自动登录 | 项目自带 `qmt_launcher`:VPS 无免密 bat、`login` 模式受 RDP 锁屏限制 → 唯一路径 = `exe` 模式 + QMT 登录框「记住密码」(**待用户 RDP 确认有无此勾选**);确认后注册看门狗 schtask:`is_qmt_running` 为假 → `open_qmt(mode=exe)` | ⏳ | +| ③ 看门狗(VPS schtask,系统级) | 定时健康检查:`is_qmt_running` + redis ping + 桥 RPC ping,异常记日志/报警;与 Claude session 生死无关 | ⏳ 影子试水期间并行完善 | + +### 6.5 剩余工序(09-18 大限倒计时) + +| # | 工序 | 负责 | 前置 | +|---|------|------|------| +| 1 | 自愈链②确认(登录框记住密码)+③看门狗 schtask | infra(本 session) | 用户 RDP 看一眼 | +| 2 | 影子×1 切桥试水 2 交易日(撮合价/涨跌停判定对照 mini 侧) | 策略 session + infra 验收 | 恒等式绿 | +| 3 | 8 影子全切 → 8 实盘逐个切(每切一个跑一日恒等式对账绿再切下一个) | 策略 session + infra | #2 绿 | +| 4 | xt_eod/daily_update_xtdata 连接层改造(`from xtquant import` → compat configure()) | 数据 session | 独立可并行 | +| 5 | 回退预案保留:miniQMT 不卸载,env 切回即回退(至 09-17 有效) | — | — | +