docs: 迁移评估§6——P1~P3实施记录+VPS手工部署位清单+09-08新坑+自愈链设计+剩余工序 [nas]
CI/CD / test (push) Successful in 26s
CI/CD / nas-deploy (push) Successful in 29s
CI/CD / nas-verify (push) Successful in 8s

This commit is contained in:
2026-09-08 13:26:01 +08:00
parent 6e8c74b39a
commit 5bfde82f2b
@@ -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.LiteralQMT 内置 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.2qmt_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}` stream50→56(全成)/50→54(已撤) |
| 成交回报推送 | ✅ `bigqmt:trade_events:{acc}` stream:含 trade_id/金额/commission |
| 持仓残留 | +642 元 ETF510050×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 有效) | — | — |