diff --git a/CHANGELOG.md b/CHANGELOG.md index 672f214..acf5f78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ 本文件记录 easy-tdx 的版本变更。格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/)。 +## [1.20.11] — 2026-08-28 + +**资金流口径限制文档标注**(Issue #55,纯文档、无行为变更)——用户实测反馈:同日同股,本库资金流与东财"主力净额"(数据中心 `RPT_DMSK_TS_STOCKNEW` 的 `PRIME_INFLOW`,该字段已验证恒等于超大单+大单净额)差异极大且方向不一(工业富联 601138 偏大 36 倍、洛阳钼业 603993 偏小 2.4 倍,不可系数校正)。用户独立用 `get_history_transaction_data` 复算八个分档与库返回**逐分吻合(diff 0.00 元)**,证实库实现无误;根因在数据源口径——0x0fb5 的"逐笔"是交易所真实逐笔**聚合**后的记录(000001.SZ 单日实测 76,411 笔 → 仅 4,485 条,约 17:1),按聚合后单笔成交额分档把几乎全部成交推入主力档(实测 601138/603993 主力档占成交额 99.4%+、小单档仅 0.02%),故 `main_net_inflow` 实质是"当日主动买卖总失衡"(另有约 2–4% 方向未定的成交被排除);而东财基于 L2 逐笔委托按**挂单额**分档、四档净额严格归零。实证两口径在选股层面几乎不相干(856 个共同信号日仅 13.9% 选中同一只股票;同规则策略 2020–2026 单笔均值 −0.12% vs 东财口径 +1.56%),不能互相替代。 + +### 文档 + +- **`get_fund_flow` / `get_history_fund_flow` docstring(sync/async 共 4 处,`client.py`)**——标注三点口径限制:① 分档基于 0x0fb5 聚合后的"单笔成交额",不是挂单额;② 聚合导致高价股小单档可不足成交额 1%、主力档常占 95%+,值更接近"主动买卖总失衡";③ 与东财/同花顺"主力净流入"不可比,勿混用于同一张表或同一个因子。 +- **`FundFlow` / `HistoricalFundFlow` 类 docstring**(`models/stats.py`)——同步口径说明(原"基于 Tick 数据加权计算"的描述不准确,实为逐笔重算)。 +- **README**——"标准协议"章节 `get_fund_flow` 示例后新增"资金流口径注意"引注块;TdxClient API 表两行加"口径注意见上文"指引。 +- **`docs/api_reference.md`**——"资金流向"章节新增完整"口径注意"段(含 17:1 聚合实测、2–4% 方向未定排除、东财四档归零等细节),`get_fund_flow` 小节加指引。 +- **`examples/08_fund_flow/`** 两个示例的模块 docstring 补口径注意;**Web 端点 `/fund-flow`、`/fund-flow/history`** 的 Swagger 描述各补一行口径提示。 + +全套 1035 个单测通过(`test_web_api.py` 2 个失败为基线已存在的环境问题,与本变更无关)。 + ## [1.20.10] — 2026-08-26 **`get_board_list` 板块涨速列恒为 0**(Issue #53)——用户反馈板块列表的涨速列存在但全是 0。逆向核实(0x1231 抓包 + 与 `SymbolQuotesCmd` 字段逐一对值锚定)发现根因:响应中 price 与 pre_close 之间的那个 float **不是固定的"涨速",而是"当前排序列的值"**(板块与领涨股各一份)——请求里的 sort_column 此前硬编码为 0(涨跌幅),而涨跌幅列仅作排序键、值槽恒 0(客户端可由 price/pre_close 计算),所以永远拿到 0。实测锚定排序列映射:**0=涨跌幅(值槽恒 0)、1=涨速%、2=3日涨幅、3=20日涨幅、4=60日涨幅、5=年初至今、6=5日涨幅、7=10日涨幅**。 diff --git a/pyproject.toml b/pyproject.toml index a8c316d..52ba44a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "easy-tdx" -version = "1.20.10" +version = "1.20.11" description = "通达信 TCP 协议行情数据客户端,支持在线行情、离线数据读取与写入同步" readme = "README.md" requires-python = ">=3.10"