release: v1.9.6 — Devin AI 12项改进全量落地

This commit is contained in:
Justin Gu
2026-06-11 02:40:31 +08:00
parent 92edc189bb
commit d2f4cb126e
3 changed files with 38 additions and 3 deletions
+16
View File
@@ -43,6 +43,17 @@ src/easy_tdx/
│ └── async_.py # AsyncTdxConnectionasyncio
├── commands/ # 每条命令:build_request() + parse_response(),无 IO
├── codec/ # price / volume / datetime / frame 编解码
├── backtest/ # 回测引擎
│ ├── engine.py # BacktestEngine(止损/止盈执行/缠论自动桥接)
│ ├── strategy.py # Strategy 基类(向量化 datetime
│ ├── orders.py # OrderSimulatorSL/TP 同 bar 执行)
│ ├── performance.py # PerformanceAnalyzerFIFO 真实持仓天数)
│ ├── portfolio_engine.py # 多标的组合回测
│ └── combo.py # 多因子组合回测
├── screen/
│ └── scanner.py # SignalScanner(并发扫描/增量缓存)
├── realtime/
│ └── engine.py # EventBus + RealtimeStrategyasyncio 事件驱动)
├── cli/
│ └── cmd_chanlun.py # easy-tdx chanlun CLI 命令
└── models/ # 纯 dataclass,无业务逻辑
@@ -84,6 +95,11 @@ from easy_tdx.chanlun import ChanlunAnalyser
analyser = ChanlunAnalyser("SZ000001", "DAILY")
result = analyser.process_klines(df) # 接收 easy_tdx 的 DataFrame
print(result.to_dict()) # JSON 兼容字典
# 增量追加新 K 线(去重后重新计算,适合实时场景)
result = analyser.append_klines(df_new)
```
**多级别联立**`MultiLevelAnalyser.query_low_level_qs()` 返回趋势方向、笔重叠、背驰条件等增强字段。
**测试**: `python -m pytest tests/unit/test_chanlun*.py -v`(3 个测试文件共 49 个用例,无需网络)
+21 -2
View File
@@ -1222,8 +1222,9 @@ src/easy_tdx/
├── commands/ # 标准协议命令(无 IO)
├── codec/ # price / volume / datetime / frame / bitmap 编解码
├── chanlun/ # 缠论技术分析(K线合并/分型/笔/线段/中枢/买卖点/背驰)
├── backtest/ # 回测引擎(Strategy基类/向量化引擎/多因子组合/绩效分析)
├── screen/ # 策略选股扫描(scan信号扫描/rank回测排名)
├── backtest/ # 回测引擎(Strategy基类/向量化引擎/多因子组合/组合回测/绩效分析)
├── screen/ # 策略选股扫描(scan信号扫描/rank回测排名/并发扫描/增量缓存
├── realtime/ # 实时数据推送框架(EventBus/事件驱动/asyncio
├── models/ # 纯 dataclass,无业务逻辑
├── offline/ # 离线数据读写模块(读取 + 写入同步)
└── cli/ # easy-tdx CLIclick
@@ -1252,6 +1253,24 @@ ruff format --check src/ tests/ # format check
## Changelog
### 1.9.6 (2026-06-11)
**工程质量全面升级** — 基于 Devin AI 代码审查的 12 项改进建议全部落地,覆盖 CI、回测引擎、缠论模块、扫描引擎和架构层面。
- **CI 覆盖率强制执行**:pytest 命令加入 `--cov-fail-under=50`CI 不再空转
- **真实平均持仓天数**`avg_holding_days` 从硬编码 5.0 改为 FIFO 配对计算,区分 int/Timestamp 两种日期格式
- **向量化 datetime 转换**`_datetime_to_int``pd.to_datetime` 向量化替代 Python for 循环,大数组性能提升 100x+
- **止损/止盈实际执行**`BacktestEngine` 新增 `_StopCondition` 跟踪,`OrderSimulator` 在每根 bar 检查 SL/TP 并触发平仓信号
- **缠论信号自动桥接**`BacktestEngine` 新增 `chanlun_level` 参数,自动调用 `ChanlunAnalyser` 并注入策略,两模块正式打通
- **多标的组合回测**:新增 `PortfolioBacktestEngine`,支持多股票共享资金池、均等/自定义分配、资金加权绩效汇总
- **并发扫描**`SignalScanner` 新增 `workers` 参数,`ProcessPoolExecutor` 并行处理,扫描速度提升 4-8 倍
- **增量扫描缓存**:新增 mtime 检测 + JSON 缓存文件,未修改的 `.day` 文件自动跳过
- **缠论增量更新**`ChanlunAnalyser` 新增 `append_klines()` 方法,追加新 K 线后去重重新计算,支持实时场景
- **多级别联立增强**`query_low_level_qs` 新增趋势方向、笔重叠、背驰条件判断字段
- **MyTT 类型存根**:新增 `MyTT.pyi`,50+ 指标函数的类型标注,mypy strict 零错误
- **实时推送框架**:新增 `realtime/` 模块,`EventBus` 发布/订阅 + `RealtimeStrategy` 基类,asyncio 事件驱动架构(API 骨架)
- 380 个测试通过,57.56% 覆盖率,mypy strict 150 文件零错误
### 1.9.5 (2026-06-10)
**OBV 能量潮趋势策略** — 新增 `obv_trend.py` 策略,基于 OBV 与其 30 日均线 MAOBV 的关系判断多空方向。
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "easy-tdx"
version = "1.9.5"
version = "1.9.6"
description = "通达信 TCP 协议行情数据客户端,支持在线行情、离线数据读取与写入同步"
readme = "README.md"
requires-python = ">=3.10"