mirror of
https://ghfast.top/https://github.com/aeroxw/easy-tdx.git
synced 2026-09-12 14:34:15 +08:00
fix(backtest): v1.20.3 修复回测绩效统计两个 bug(issues #30 #31)
#31: RebalanceEngine 缺失价格导致净值假崩塌 已持仓标的当日缺 K 线(停牌/日历错位)时 prices.get(code,0)=0, 持仓市值记 0 → 净值单日暴跌(159915 在 20210208 缺一天,持仓 ~93%, 净值 1.1M→91,845,全期最大回撤 -92%)。 修复:last_known_price forward-fill,缺失日沿用最近已知收盘价。 附带:_compute_performance 最大回撤改正值口径(与 BacktestEngine 一致)。 验证:真实 ETF 数据 max_drawdown 24.01%(backtrader 基准 27%), total_return 220.56% 不变。 #30: PortfolioTracker 交易静默漏单 apply_trades 用 trade.datetime 作 dict key、df["datetime"].to_numpy()[i] 查找;两端类型不一致(int vs datetime64)时永不命中,交易被静默丢弃, 净值恒定(total_return=0 但 trades 表有 PnL)。 修复:改为按"位置索引"匹配(归一化 datetime 后查位置),类型无关。 验证:int-trade+datetime64-df 修复前净值=100000(恒定),修复后=100289。 测试:新增 4 回归测试(未修复代码上均失败,修复后通过); 全套 936 passed;mypy 改动文件零错误;ruff 全绿。
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
||||
|
||||
[project]
|
||||
name = "easy-tdx"
|
||||
version = "1.20.2"
|
||||
version = "1.20.3"
|
||||
description = "通达信 TCP 协议行情数据客户端,支持在线行情、离线数据读取与写入同步"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
|
||||
Reference in New Issue
Block a user