Files
ai-exchange/docs/AI_ICT_实盘辅助分析决策助手上线必做清单_2026-05-18_v1.md
2026-05-21 08:27:12 +08:00

328 lines
16 KiB
Markdown
Raw Permalink 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.
# AI_ICT 实盘辅助分析决策助手上线必做清单 2026-05-18 v1
## 0. 硬性主线约束
本上线清单只允许服务 `docs/ICT交易全书_出版终校版.md` 和 `docs/AI_ICT_硬性主线约束_必须遵循ICT交易全书_2026-05-21_v1.md` 定义的主线。
上线必做项必须帮助交易员更快完成:
```text
Range / Draw / Location
-> Liquidity / Sweep / Path
-> Displacement / MSS / FVG / Retest / Session
-> backtest evidence
-> plan
-> intraday focus or no-trade
-> journal feedback
```
不能服务该链路的能力,不得作为上线必做项,也不得进入交易员首屏。
## 目标边界
上线目标是:
```text
实盘决策辅助分析,不下单,不交易,不给可直接执行的买卖指令。
```
本轮上线不做以下事项:
- 不启用 `LIVE_TRADING_ENABLED`。
- 不要求 OKX trade permission。
- 不跑 submit / cancel / fills 的交易权限 smoke。
- 不把 cockpit 输出当成实盘买卖指令。
- 不改变 `execution_allowed`、`real_live_ready`、risk governor、trust bucket、operator confirmation protocol。
## 当前实测状态
截至 2026-05-18,本地 no-proxy 远端检查显示:
- `/health` 可用,数据库已配置。
- 标准 `run_remote_ops_smoke.py` 通过,`unattended_harness` 通过。
- 远端只读行情 / broker read-only proxy 已恢复,`market_truth_ready`、`broker_state_ready`、`runtime_ready` 均通过。
- `/trading/launch-readiness` 已返回 `live_analysis_assistant_ready=true`。
- 当前仍保持 `decision_support_ready=false`、`execution_assist_ready=false`、`real_live_ready=false`。
- 当前 `product_operating_mode=restricted_decision_support`,但仅可作为只读实盘分析与证据整理工作台使用。
- `/trading/shadow-paper-validation` 当前为 `collecting_paper_samples`,下一 gate 是 `paper_ticket_sample_gate`。
- R2 历史 shadow coverage 已达标,但 paper/execution 证据未满:`paper_ticket_count=0`、`paper_execution_count=0`,这不作为只读上线 blocker。
- 最新候选仍可能为 `blocked` / `executable=false`;系统必须继续把输出呈现为观察与复盘证据,而不是买卖指令。
- `/trader-mode` 已成为盘中默认速读入口;状态文案使用 `Review Now` / `Observe Only` / `Do Not Use`,避免 green/red 造成买卖信号误读。
## 上线必须实现清单
### P0-1 恢复只读实盘数据链路
必须恢复行情和只读状态的稳定读取,否则不能叫“实盘辅助分析”。
交付:
- 恢复远端 `MARKET_TRUTH_PROXY_URL=http://192.168.3.73:10808`,或把远端 `.env` 更新到可达的只读代理。
- 重新跑 `POST /trading/runtime/run-once`。
- 确认 market truth 不再 stale,market stream / REST fallback 至少有一个新鲜。
- 确认 broker read-only 失败时不会误导 operator;如果本阶段不依赖账户状态,则降级为 account-context unavailable,而不是阻断行情分析。
验收:
- no-proxy `/health` 200。
- `run_remote_ops_smoke.py` passed。
- `/trading/launch-readiness` 不再因为 proxy refused 进入 `product_operating_mode=blocked`。
- cockpit 明确显示行情 freshness、数据来源和最后更新时间。
### P0-2 增加“只读实盘分析上线口径”
当前 `decision_support_ready=false` 是严格信任门,不能为了快速上线强行改 true。需要新增或明确一个更窄的上线口径:
```text
live_analysis_assistant_ready
```
它只代表“可用于看盘、证据整理、风险提示和复盘”,不代表“可指导下单”。
交付:
- 在 launch readiness 中区分:
- `live_analysis_assistant_ready`
- `restricted_decision_support_ready`
- `decision_support_ready`
- `execution_assist_ready`
- `real_live_ready`
- `live_analysis_assistant_ready=true` 的条件只包括:
- API/runtime 可用。
- 行情数据新鲜或明确降级。
- review packet / decision packet 可生成。
- 边界提示可见。
- 执行能力仍关闭。
- broker account read-only 如果不可用,应作为“账户上下文不可用”提示,而不是阻断纯行情分析上线。
验收:
- `decision_support_ready` 仍可保持 false。
- `execution_assist_ready=false`。
- `real_live_ready=false`。
- 但 cockpit 可以显示“只读实盘分析可用”。
### P0-3 做强制边界提示和去交易化 UI
上线前必须让 operator 一眼知道:这是分析助手,不是交易系统。
交付:
- cockpit 顶部固定显示:
- `只读实盘分析`
- `不下单`
- `不构成买卖指令`
- `当前执行关闭`
- review packet / decision packet 输出必须包含边界字段。
- UI 中所有真实交易相关按钮保持禁用或隐藏:
- submit
- cancel
- semi-auto submit
- live execute
- `Build Shadow Paper` 仅作为样本采集入口,不在上线主路径突出展示。
验收:
- 任意首屏都不能让 operator 误以为系统可以下单。
- 静态检查确认 UI 文案存在。
- API 返回边界 summary。
### P0-4 上线健康页 / Cockpit 一屏可用
快速上线最怕“能跑但不知道能不能信”。必须有一个一屏健康状态。
交付:
- 在 cockpit 或独立 readiness 面板展示:
- API health。
- runtime health。
- market freshness。
- broker/account context availability。
- latest decision packet timestamp。
- latest review packet timestamp。
- current candidate count。
- current blocker。
- allowed actions。
- blocked actions。
- 一屏给出当前建议:
- `可以用于看盘分析`
- `仅可观察`
- `等待行情恢复`
- `等待真实 executable candidate`
验收:
- operator 不需要看日志就能知道系统是否可用于当下盘面分析。
- 如果数据 stale,页面明确显示 stale,而不是继续输出像实时一样的结论。
### P0-5 最小运营闭环
上线当天必须能留下证据,不能只是看页面。
交付:
- 每日自动/手动记录一条 shadow observation。
- operator 能记录 agreement / disagreement / note。
- 每日生成一个简短的 read-only session summary。
- 每周 review entry 可以保存,即便还没有 paper ticket。
验收:
- `shadow_paper_observations` 当天有记录。
- operator feedback 能写入。
- weekly review 至少有一条入口或草稿。
- 不要求 paper ticket 样本满,因为当前没有真实 executable candidate。
### P0-6 上线 smoke 脚本
上线必须有一个固定命令判断“今天能不能用”。
交付:
- 新增或整理一个 read-only launch smoke:
- `/health`
- `/trading/runtime-status`
- `/trading/launch-readiness`
- `/trading/review-packet`
- `/trading/shadow-paper-validation`
- `/trading/candidates`
- static app 文案检查
- smoke 输出明确:
- `ready_for_readonly_live_analysis`
- `blocked_reason`
- `warnings`
- `must_not_trade=true`
验收:
- 单条命令能给出上线判定。
- 不依赖 OKX trade permission。
- 不触发任何 submit / cancel / live execution。
## 2026-05-18 闭环结果
- [x] P0-1 只读实盘数据链路已恢复:远端 no-proxy `/health` 200,标准 `run_remote_ops_smoke.py` passed,`unattended_harness` passed。
- [x] P0-2 已新增 `live_analysis_assistant_ready` 与 `live_analysis_assistant_summary`;broker/account context 不可用时会降级为提示,不阻断纯行情分析上线。
- [x] P0-3 已在 API 与 cockpit 增加强制边界:`Read-only Live Analysis`、`No order submission`、`Not a buy/sell instruction`、`Execution remains disabled`、`must_not_trade=true`。
- [x] P0-4 已提供 `readonly_live_health_summary`:API health、runtime health、market freshness、broker/account context、latest decision/review packet timestamp、candidate count、current blocker、allowed/blocked actions。
- [x] P0-5 已形成最小运营闭环:runtime 已持续记录 shadow observation;operator feedback 写入入口存在;weekly review 入口可用;只读 session summary / weekly review draft 已作为允许动作暴露。
- [x] P0-6 已新增 `scripts/run_readonly_live_analysis_smoke.py`;远端 smoke passed,输出 `ready_for_readonly_live_analysis=true`、`must_not_trade=true`、`trade_permission_required=false`、`submit_cancel_or_live_execution_called=false`。
- [x] Trader Mode P0 补齐已闭环:独立 `/trader-mode` 首屏、强新鲜度时间戳/stale freeze、一键 Agree/Disagree/No Trade/Need More Evidence/Write Quick Note、状态变化提醒、R2 evidence gap surface 均已部署并通过 smoke。
验证证据:
- `python -m unittest discover tests/unit`:775 tests OK。
- `node --check src/web/app.js`:passed。
- `node --check src/web/trader_mode.js`:passed。
- `python scripts/run_script_static_checks.py`:passed。
- `python scripts/deploy_with_password.py --host 192.168.3.90 --user root --port 22`:deploy complete,deploy smoke complete。
- `python scripts/run_remote_ops_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 30`:passed。
- `python scripts/run_readonly_live_analysis_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 30 --output-json`:passed,覆盖 `trader_mode_payload`、`/trader-mode`、`/static/trader_mode.js`。
- 远端字段 smoke:`status_label=Review Now`、`data_confidence=fresh`、`freshness_status=fresh`、`primary_question_trade_action=not_a_buy_sell_instruction`、`execution_allowed=false`、`real_live_ready=false`、`r2_status=collecting_evidence`。
闭环结论:
```text
系统可作为只读实盘辅助分析工作台上线试运行。
```
仍然不能宣布:
```text
系统可指导实盘交易或执行交易。
```
## 2026-05-18 P1 Trader Mode 盘中可用性闭环
- [x] 交易员偏好模板:`/trader-mode` 支持本地 profile 模板,包含 instrument、timeframe、session filter 和 setup filter;默认提供 BTC London、BTC NY、ETH London、All Intraday,并记住上次选择。
- [x] 盘中快捷键:`R` 复核/刷新 focus,`N` 记录 No Trade,`A`/`D` 记录 Agree/Disagree,`Space` 暂停或恢复自动刷新;快捷键不在输入框内触发。
- [x] 唯一 focus 的人话解释:Trader Mode 摘要新增 `focus_quality_explanation` 和 `plain_language_reasons`,把结构、等待确认、不能贸然行动压缩成交易员能直接读的一句话。
- [x] 失败/阻塞恢复动作:`Do Not Use` 或 stale 状态下返回 `recovery_actions`,明确是 runtime、market feed、review packet 还是通用 readiness 恢复,并给出对应 smoke/恢复命令。
- [x] 真实盘中 UI 验证:P1 验收必须使用浏览器截图覆盖 13/14 寸等效宽屏、窄屏和暗色环境,确认自动刷新/长文案下不跳版、不溢出、不遮挡。
P1 不改变以下边界:
```text
execution_allowed=false
real_live_ready=false
decision_support_ready 仍由 R2/R3/R4/R5 证据门决定
不启用下单,不启用交易权限,不把 Review Now 显示为买卖信号
```
本轮本地闭环证据:
- focused unit/static tests、script static checks、`node --check`、`git diff --check`、完整 `tests/unit` 775 项已通过。
- 本地 `scripts/run_readonly_live_analysis_smoke.py --base-url http://127.0.0.1:8125` 通过,且 `must_not_trade=true`、`submit_cancel_or_live_execution_called=false`。
- 浏览器截图已覆盖暗色 13 寸等效宽屏、14 寸等效宽屏、390px 窄屏:`output/playwright/trader-mode-p1-13in-1366x768.png`、`output/playwright/trader-mode-p1-14in-1440x900.png`、`output/playwright/trader-mode-p1-narrow-390x844.png`。
远端闭环状态:
- [x] live 远端部署/smoke 已闭环:使用 `yuqei` SSH + sudo 将旧 root 部署目录中的完整只读 `.env` 安全迁移到 `/home/yuqei/project/ai-exchange/.env`,未把任何密钥写入仓库或文档。
- [x] `python scripts/deploy_with_password.py --host 192.168.3.90 --user yuqei --port 22 --remote-path /home/yuqei/project/ai-exchange --remote-archive /home/yuqei/ai-ict-deploy.tgz`:deploy complete,deploy smoke complete。
- [x] `python scripts/run_remote_ops_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 30`:passed,`unattended_harness` passed。
- [x] `python scripts/run_readonly_live_analysis_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 30 --output-json`:passed,输出 `ready_for_readonly_live_analysis=true`、`must_not_trade=true`、`trade_permission_required=false`、`submit_cancel_or_live_execution_called=false`。
## 2026-05-18 P2 Trader Mode 后续增强闭环
本轮只做当前具备条件的增强,不引入未接入的 TradingView MCP/CDP 实时控制依赖,不启用交易权限。
- [x] 图表/外部上下文实时桥 starter:Trader Mode 新增 `chart_context_bridge`,以内部 `/candles` 精确蜡烛作为主证据,外部 chart provider 作为 reference-only;若未来接入 TradingView MCP/CDP,只需把外部实时桥状态从 `not_connected` 升级为 `connected`。
- [x] 多品种速读队列:`/trader-mode` 首屏新增 Fast Queue,默认 BTC/ETH/SOL,按 `Review Now` / `Observe Only` / `Do Not Use` 排序,队列状态仍是只读观察,不是买卖信号。
- [x] 盘后自动复盘草稿:Trader Mode 新增 `post_market_review_draft` 和 After-Close Draft 面板,自动汇总盘中 observation、Agree/Disagree/No Trade 样本、weekly review carry-forward,并可一键保存为 operator note。
- [x] 上线值班面板:Trader Mode 新增 `ops_duty_panel` 和 Duty Panel,汇总数据 freshness、runtime、maintenance、unattended harness、最近错误和今日是否适合打开使用。
P2 本地验证证据:
- focused unit/static tests、script static checks、`node --check` 已通过。
- 本地 `scripts/run_readonly_live_analysis_smoke.py --base-url http://127.0.0.1:8125` 已覆盖新增 `ops_duty_maintenance`、`ops_duty_unattended_harness`、`chart_bridge_candles`,并保持 `must_not_trade=true`、`submit_cancel_or_live_execution_called=false`。
- 浏览器截图已覆盖暗色宽屏与 390px 窄屏:`output/playwright/trader-mode-p2-13in-1366x768.png`、`output/playwright/trader-mode-p2-narrow-390x844.png`。
P2 远端验证证据:
- `python scripts/deploy_with_password.py --host 192.168.3.90 --user yuqei --port 22 --remote-path /home/yuqei/project/ai-exchange --remote-archive /home/yuqei/ai-ict-deploy.tgz`:deploy complete,deploy smoke complete。
- `python scripts/run_remote_ops_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 30`:passed,`unattended_harness` passed。
- `python scripts/run_readonly_live_analysis_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 30 --output-json`:passed,覆盖 `trader_mode_payload`、`ops_duty_maintenance`、`ops_duty_unattended_harness`、`chart_bridge_candles`、`/trader-mode`、`/static/trader_mode.js`。
- 远端 live readiness 当前为 `live_analysis_assistant_ready=true`、`product_operating_mode=restricted_decision_support`、`market_stream=market_stream_connected`、`market_data_gap=market_data_gap_clear`、`readonly_account_context_status=available`、`real_live_ready=false`。
P2 仍不改变以下边界:
```text
execution_allowed=false
real_live_ready=false
decision_support_ready 仍由真实 R2/R3/R4/R5 证据门决定
图表桥和多品种队列只提升证据读取效率,不给出下单指令
```
## 暂不作为上线 blocker
以下项目重要,但不应阻塞“只读实盘辅助分析”快速上线:
- `decision_support_ready=true` 的完整 trust promotion。
- R2 paper ticket / paper execution 样本达到 5 条。
- R3 submit / query / cancel / fills sandbox smoke。
- R4 极小实盘试点。
- R5 四周稳定化运行制度。
- 外部 webhook / WeCom / email 通道完整启用。
这些属于从“只读实盘分析可用”升级到“可信辅助决策”或“执行准备”的后续阶段。
## 立即开发顺序
1. P0-1:恢复/重配只读代理和行情 freshness。
2. P0-2:新增 `live_analysis_assistant_ready`,避免用严格 `decision_support_ready` 阻塞只读上线。
3. P0-3:去交易化 UI 和强制边界提示。
4. P0-4:cockpit 一屏上线健康状态。
5. P0-6:read-only launch smoke。
6. P0-5:每日 observation / note / weekly review 最小运营闭环。
完成以上后,可以宣布:
```text
系统可作为只读实盘辅助分析工作台上线试运行。
```
仍然不能宣布:
```text
系统可指导实盘交易或执行交易。
```