diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6d097b3..143db25 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,6 +22,15 @@
- **Docker 部署**(`Dockerfile` + `docker-compose.yml`)——python:3.12-slim,装 `[web,warehouse]` 可选依赖,`/data` 卷持久化自选/策略库/任务库/K 线仓库,带健康检查。
- **一键门禁脚本**(`scripts/verify_ci.sh`)——ruff + ruff format + mypy strict + 全量 pytest 一条命令(`--fast` 跳过测试),可挂 git pre-push hook。
+### 修复
+
+- **CI(UP038)**——CI 经 `requirements-dev.txt` 锁定 ruff 0.11.11(UP038 生效),本地 0.16.4 已移除该规则导致漏检;10 处 `isinstance(x, (A, B))` 统一改为 PEP 604 联合类型写法(两版规则集均合规,已用 CI 同版工具链复验)。
+- **任务状态跃迁竞态**——`task_runner` 此前在锁内改内存状态后才在锁外落盘 SQLite,慢速环境(CI + coverage 插桩)读库方会命中「内存 done / 磁盘 running」窗口;改为 running/done/failed 三次跃迁均在同一把锁内**先落盘再对内存可见**(与 `submit` 的 pending 写法对齐),窗口从根上消除。
+
+### 文档
+
+- README 介绍部分补充 v1.24~v1.27 能力:防过拟合验证链、通达信公式 + 轮动组合、本地 K 线数据仓库;CLI 参考新增 `--wf`/`--evaluate` 示例与 `formula`/`warehouse` 命令组。
+
## [1.26.0] — 2026-09-01
**本地数据仓库版本**——把碎片化缓存升级为统一数据底座(升级计划 P2 阶段;P2-2 评级后端化已随 1.25.0 提前交付)。此前下游项目(indicator-lab 的 DuckDB 仓库、backtest-system 的 cache/ 目录)都在自建数据层,现在 easy-tdx 原生提供。
diff --git a/README.md b/README.md
index 56c9174..107895d 100644
--- a/README.md
+++ b/README.md
@@ -17,18 +17,22 @@ easy-tdx 要做的事很简单:**把机构的数据锁砸开,扔到每个普
**34个技术指标**(MACD、KDJ、RSI、BOLL……连”捉妖大师”和”30日乖离率信号”都给你算好)开箱即用。
**缠论分析**(笔、中枢、买卖点、背驰)一键出结果——你不再需要手画分型、猜线段。
-**内置回测引擎**——写个策略文件,一行命令跑回测,18 个经典策略自带,多因子组合、策略选股扫描,批量对比哪个最赚钱一目了然。
+**内置回测引擎**——写个策略文件,一行命令跑回测,18 个经典策略自带,多因子组合、策略选股扫描,批量对比哪个最赚钱一目了然。**防过拟合验证链**(v1.25 新增)——Walk-Forward 七窗样本外验证(每窗独立开仓)、训练/验证/测试三段适配性体检(8 项可解释检查 + 「高适配」标记)、0-100 综合评分、多 seed 晋级门槛、买入持有基准对比,回测页勾选即出报告——「回测好」升级为「样本外也好」。
**行情终端 Web UI**(v1.23 重大升级)——`easy-tdx serve` 一条命令,浏览器秒变专业看盘终端:**市场看板**(五大指数实时推送 + 迷你分时、涨跌统计、四维情绪雷达、全市场涨跌分布直方图、涨停雷达、行业/概念热冷榜、涨幅/跌幅/成交额/换手四联排行榜、两市异动雷达)、**自选行情**(输入 6 位代码即加,全表 SSE 实时刷新、行内迷你分时)、**个股详情弹窗**(五档盘口 + 1/3/5 日分时 + 带 MA/BOLL/MACD/KDJ/RSI 指标切换的日 K,一键加自选、一键全策略寻优)、**板块下钻**(行业/概念弹窗看板块走势 + 成分股涨跌榜直达个股)。实时推送采用 SSE 单循环轮询 fan-out 架构(盘中 8 秒一拍,无人订阅自动休眠),自选持久化 SQLite。展示层设计对标专业终端(暗色、红涨绿跌、高信息密度),数据全部来自通达信协议直连——不花一分钱。
-**回测可视化 Web UI**(v1.17 新增)——Vue3 + ECharts 单页应用,浏览器里选标的、挑策略、调参数,K 线买卖点、净值回撤、19 项绩效指标一目了然。支持组合回测、参数网格寻优、多策略结果对比,**还能把好策略存进策略库(SQLite 持久化),勾选多个策略做资金分仓组合回测看综合表现**,全程零代码。
+**回测可视化 Web UI**(v1.17 新增)——Vue3 + ECharts 单页应用,浏览器里选标的、挑策略、调参数,K 线买卖点、净值回撤、19 项绩效指标一目了然。支持组合回测、参数网格寻优、多策略结果对比,**还能把好策略存进策略库(SQLite 持久化),勾选多个策略做资金分仓组合回测看综合表现**,全程零代码。v1.27 起新增「附加分析」开关:勾选后随回测自动跑 Walk-Forward 逐窗柱状图与一条龙评估报告(评分分项 / 高适配徽标 / 买入持有对比)。
**数据评级系统**(v1.17.14 新增)——回测结果顶部直接显示 **S/A/B/C/D 五档评级徽章**,1 秒判断「这个品种适不适合经常参与」。评级**不看收益率**(避免被近期大涨误导),只看风险调整后的持有体验:卡玛比率、最大回撤、胜率、利润因子、夏普、波动率六维加权 + 一票否决(系统亏损/深回撤/低胜率直接低评)。京东方那种「收益 126% 但胜率 35%、回撤 41%」的案例会评 **D 档**——明确告诉普通人「别碰,套牢后回本极难」。三个入口(单标的/组合/寻优)都有评级,长线低频策略不会被冤枉(交易少时只降权胜率维度,不否决整个评级)。
+**通达信公式 + 轮动组合**(v1.27 新增)——不会 Python 也照样玩:直接粘贴通达信公式(`买入: CROSS(MA(C,5), MA(C,20));`),命名布尔输出就是买卖信号,计算 / 全市场选股 / 回测一条龙(30+ 函数白名单向量化求值,无未来数据、不走 eval)。**轮动组合引擎**按排名定期换仓:固定槽位等额、跌出排名自动卖出补位、日/周/月调仓、槽内止盈止损,动量或公式数值输出都能当排名分。
+
+**本地 K 线数据仓库**(v1.26 新增)——拉过的行情自动沉淀为 DuckDB 单文件列存:增量同步只补缺口、15:05 前的当日 bar 标记临时值(回测默认忽略,杜绝拿盘中价当收盘价)、缺口/除权跳变/新鲜度健康自检。数据信任层同步加固:QFQ 前复权带双引擎对拍校验(公式法 vs 跳空检测法)、回测任务 SQLite 持久化(重启 serve 对比页历史不清空)、费率按品种自动区分(ETF/可转债免印花税)。
+
装上就能跑。**Python API + CLI + Web API 三通道**,输出 JSON 天然喂给 AI Agent:Claude Code、OpenClaw、Hermes 直接吃。`easy-tdx serve` 一键起 REST 服务,浏览器打开就是交互式 API 文档。
@@ -327,6 +331,16 @@ easy-tdx backtest SZ 300308 --strategy-file strategies/expma_cross.py --count 20
easy-tdx backtest SZ 000001 --strategy-file strategies/chanlun_strategy.py --chanlun-level DAILY --table
```
+**样本外验证(v1.25):**
+
+```bash
+# 附加 Walk-Forward 七窗样本外验证(每窗独立开仓,窗口数可调)
+easy-tdx backtest SZ 300308 --strategy-file strategies/expma_cross.py --wf --wf-windows 7
+
+# 一条龙评估:回测 + WF + 适配性体检 + 综合评分 + S-D 评级 + 买入持有基准对比
+easy-tdx backtest SZ 300308 --strategy-file strategies/expma_cross.py --evaluate
+```
+
输出示例:
```
@@ -452,6 +466,32 @@ easy-tdx portfolio --stocks SZ:000001,SH:600519 \
| `--allocation` | 资金分配方式(目前支持 `equal` 均等分配) |
| `--chanlun-level` | 自动计算缠论分析并注入策略(如 DAILY/30MIN) |
+### 通达信公式(v1.27)
+
+粘贴通达信公式即可计算 / 选股 / 回测——命名布尔输出自动成为买卖信号(名字含「买/卖」或 BUY/SELL 优先),30+ 白名单函数(MA/EMA/SMA/HHV/LLV/REF/CROSS/LONGCROSS/MACD/KDJ/RSI/BOLL/ATR…)向量化求值,无未来数据:
+
+```bash
+# 公式计算(最后一根各列值 + 最近信号明细)
+easy-tdx formula compute SH 600519 --formula "金叉: CROSS(MA(C,5), MA(C,20));"
+
+# 批量选股:信号在最后一根 = 1 的标的(--symbols 支持逗号分隔或 @文件)
+easy-tdx formula screen --symbols SH:600519,SZ:000001 --formula "金叉: CROSS(MA(C,5), MA(C,20));"
+
+# 公式回测:买/卖列自动挑选,信号下一根开盘成交,输出绩效 + 评级 + 评分
+easy-tdx formula backtest SH 600519 --file my_formula.txt
+```
+
+### 本地 K 线仓库(v1.26)
+
+行情沉淀为 DuckDB 单文件列存(可选依赖:`pip install easy-tdx[warehouse]`),增量同步 + 临时收盘价状态机 + 健康自检:
+
+```bash
+easy-tdx warehouse sync --symbols SH:600519,SZ:000001 # 首次全量,此后只补尾部
+easy-tdx warehouse query SH 600519 --count 30 # 默认忽略未收盘的临时 bar
+easy-tdx warehouse stats # 各标的行数 / 数据范围
+easy-tdx warehouse check # 缺口 / 除权跳变 / 新鲜度体检
+```
+
**行情终端 + 回测可视化 Web UI(v1.17 新增,v1.23 升级为行情终端):**