From 67a5e1d08a994041de8f414a768f9609959f4850 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 19 Aug 2026 19:06:59 +0800 Subject: [PATCH] =?UTF-8?q?release:=20v1.20.7=20=E2=80=94=20/bars=20MIN=5F?= =?UTF-8?q?1=20=E6=97=B6=E9=97=B4=E4=BF=AE=E5=A4=8D=EF=BC=88#49=EF=BC=89+?= =?UTF-8?q?=20=E5=AF=BB=E4=BC=98=E5=8F=82=E6=95=B0=E8=AF=AD=E4=B9=89?= =?UTF-8?q?=E7=BA=A6=E6=9D=9F=EF=BC=88#39=EF=BC=89+=20=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 10 ++++++++++ pyproject.toml | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2cb4e5..46a8308 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ 本文件记录 easy-tdx 的版本变更。格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/)。 +## [1.20.7] — 2026-08-19 + +两项用户反馈修复 + 前端依赖安全升级:**Web `/bars` 的 MIN_1 时间被归一化为 00:00:00**(Issue #49)与**参数寻优选出快慢倒挂的"最优参数"**(Issue #39)。 + +### 修复 + +- **`/bars` MIN_1 误判为日线**(`src/easy_tdx/web/routers/bars.py`,Issue #49)—— `KlineCategory` 枚举值不按周期长短排序(`MIN_1=7`、`MIN_3=8` 均大于 `DAY=4`),MAC 路径用 `int(cat) >= int(KlineCategory.DAY)` 判定"日线及以上"会把 1 分钟线误判为日线,`_normalize_mac_df` 因此将 `datetime` 截断为 `00:00:00` 并把列名改为 `date`。改为 `_is_daily_plus()` 查表判定(复用 `_df._CATEGORY_MINUTES`,与回退 TdxClient 路径同一判定源),保证两条路径 `date`/`datetime` 语义一致。新增表驱动单测 + 端点级回归测试(假 MAC 客户端,无网络依赖)。 +- **策略参数寻优选出语义倒挂组合**(`src/easy_tdx/backtest/strategies/`、`optimizer.py`,Issue #39)—— 寻优网格的笛卡尔积包含 `{"fast":30,"slow":20}` 这类倒挂组合,倒挂的双均线交叉本质是反向策略,回测成绩可能反而突出从而被选为"最优参数"展示。`ParametrizedStrategy` 新增 `param_constraints` 跨参数语义约束(要求 a