Releases: handsomejustin/easy_tdx
v1.10.0 — Web API 层(FastAPI REST + WebSocket)
🌐 easy-tdx v1.10.0 — Web API 层
将 easy-tdx 一键暴露为 REST + WebSocket HTTP API,支持跨语言、跨平台、远程调用。
✨ 新功能
- FastAPI REST API — 全部
AsyncTdxClient方法暴露为 REST 端点/api/v1/security/*— 证券列表、实时报价、市场统计/api/v1/bars/*— K线、指数K线、分时、逐笔成交/api/v1/xdxr,/api/v1/finance/*— 除权除息、财务、公司信息/api/v1/block— 板块信息/api/v1/chanlun/analyze— 缠论分析(POST)
- WebSocket 实时行情 —
/ws/realtime/{symbol},支持多标的动态订阅 - CLI
easy-tdx serve— 一行命令启动 Web 服务器 - 自动 API 文档 — Swagger UI (
/docs) + ReDoc (/redoc) - 可选依赖 —
pip install easy-tdx[web],核心安装不受影响
🚀 快速开始
pip install easy-tdx[web]
easy-tdx serve
# 浏览器打开 http://127.0.0.1:8000/docs 查看完整 API 文档🐛 Bug 修复
- 修复
deps.py运行时NameError(500 → 正常启动) - 修复 market/category 参数不支持小写和非法值(500 → 400 Bad Request)
📊 测试覆盖
- 20 个离线单元测试(无需网络)
- 409 全量单元测试通过,无回归
- mypy strict 零错误
- ruff check + format 全通过
📁 新增文件(14 个)
src/easy_tdx/web/
├── __init__.py # 公共 API
├── app.py # FastAPI app factory + lifespan
├── deps.py # 依赖注入
├── schemas.py # Pydantic 模型
├── convert.py # 参数转换(大小写 + 验证)
├── errors.py # 异常处理
└── routers/
├── market.py # 行情路由
├── bars.py # K线路由
├── finance.py # 财务路由
├── block.py # 板块路由
├── chanlun.py # 缠论路由
└── realtime.py # WebSocket 路由
v1.9.10 — 板块 N 日涨跌幅排行
新功能:板块 N 日涨跌幅排行
新增 board-change-ranking 命令,支持按行业/概念/风格板块计算指定日期前 N 个交易日的涨跌幅并排行。
CLI 用法
# 行业板块 20 日涨跌幅排行(默认全部)
easy-tdx board-change-ranking --table
# 概念板块 10 日涨跌幅排行
easy-tdx board-change-ranking --type GN --days 10 --table
# 指定截止日期
easy-tdx board-change-ranking --type HY --date 20250530 --days 20 --table
# 行业跌幅前 10
easy-tdx board-change-ranking --type HY --top 10 --ascPython API
from easy_tdx.mac.client import MacClient
from easy_tdx.mac.enums import BoardType
with MacClient.from_best_host() as c:
# 全部行业板块 20 日涨跌幅
df = c.get_board_change_ranking(BoardType.HY, days=20)
# 概念板块指定日期前 10 日涨跌幅 Top 15
df = c.get_board_change_ranking(
BoardType.GN, target_date=20250530, days=10, top_n=15
)变更摘要
- 新增
MacClient.get_board_change_ranking()/AsyncMacClient同名异步方法 - 新增 CLI 命令
easy-tdx board-change-ranking - 利用板块指数 K 线直接计算,无需逐个聚合成分股
- 支持指定截止日期,周末/节假日自动回退到前一交易日
- 默认列出全部板块,
--top N截断 - 12 个单元测试覆盖计算正确性、边界条件、排序方向
Full Changelog: v1.9.9...v1.9.10
v1.9.9 — 修复并发扫描 Pickle Bug
v1.9.9 修复并发扫描 Pickle Bug
问题
--workers N 并发模式使用动态 importlib 加载的策略类时,子进程无法 pickle 反序列化,导致静默返回空结果。
根因
ProcessPoolExecutor 将策略类对象 pickle 序列化后发送到子进程。动态加载的类模块(如 strategy_module)未注册到子进程的 sys.modules,反序列化失败。异常被 except Exception: continue 静默吞掉。
修复
_scan_parallel改为传递策略文件路径(字符串),子进程内自行通过_load_strategy_class加载- 新增
_get_strategy_file:从类方法co_filename反查策略源文件路径 - 新增回归测试
TestParallelPickleFix
验证
- 381 测试全部通过(含新增回归测试)
- ruff check 全绿
- 并发模式
--workers 4现在可正常返回信号
Full Changelog: v1.9.8...v1.9.9
v1.9.8 — CI 修复
v1.9.8 CI 修复
修复 CI 流水线配置问题,无功能变更。
修复
MyTT.pyi类型存根排除 ruff 行长度检查(.pyi文件签名天然较长)- 添加
pytest-asyncio开发依赖,修复test_realtime.py异步测试 - 修复
test_backtest_engine.py未使用变量 lint 警告
验证
- 380 测试全部通过
- ruff check 全绿
- 覆盖率 57%+
Full Changelog: v1.9.7...v1.9.8
v1.9.7 — CLI 全量集成
v1.9.7 CLI 全量集成
v1.9.6 新增的 6 项功能全部暴露到 CLI,修复缠论多级别联立的 client 生命周期 bug。
新增 CLI 参数
screen scan --workers N— 并发扫描,ProcessPoolExecutor 并行处理,推荐 4-8 进程,速度提升 4-8 倍screen scan --cache PATH— 增量扫描缓存,mtime 检测未修改的 .day 文件自动跳过backtest --chanlun-level LEVEL— 缠论自动桥接,引擎自动计算缠论分析并注入策略self.chanlunportfolio— 全新命令,多标的组合回测(共享资金池、均等分配、汇总绩效)chanlun --multi-level PERIOD— 多级别联立分析,分析高级别最后一笔在低级别中的趋势方向、笔重叠、背驰条件
Bug 修复
cmd_chanlun.pyclient 生命周期 bug —_run_multi_level在with块外使用client,导致已关闭连接报错,已将 multi-level 逻辑移入 with 块内
用法示例
# 并发扫描 + 增量缓存
easy-tdx screen scan --strategy strategies/rsi_reversal.py --workers 4 --cache scan_cache.json
# 缠论自动桥接回测
easy-tdx backtest SZ 000001 --strategy-file chanlun_strategy.py --chanlun-level DAILY --table
# 多标的组合回测
easy-tdx portfolio --stocks SZ:000001,SH:600519,SH:600036 --strategy-file ma_cross.py --table
# 多级别缠论联立
easy-tdx chanlun SZ 000001 --multi-level 30MIN --tableFull Changelog: v1.9.6...v1.9.7
v1.9.5 — OBV 能量潮趋势策略
新增:OBV 能量潮趋势策略
strategies/obv_trend.py — 基于 OBV 与其 30 日均线 MAOBV 的关系判断多空方向。
策略逻辑
- 入场:OBV 超过 MAOBV 达 2% 缓冲带,且 MAOBV 趋势向上(20 根 K 线确认)
- 出场:OBV 跌破 MAOBV,资金流向转空即离场
- MAOBV 趋势仅作入场过滤,出场只看 OBV/MAOBV 交叉信号,避免过度交易
设计要点
- 缓冲带
obv_buffer=0.02:过滤 OBV 与 MAOBV 交叉区域的假突破噪声 - MAOBV 趋势回溯
maobv_lookback=20:30 日均线用 20 根确认趋势,稳定可靠 - 可调参数:
maobv_period(30)、maobv_lookback(20)、obv_buffer(0.02)
使用
easy-tdx backtest SZ 000001 --strategy-file strategies/obv_trend.py --count 500 --table完整变更
- 新增
strategies/obv_trend.py策略文件 - 更新 README.md 策略表格和 Changelog
- 更新 strategies/README.md 策略列表
- 版本号升级至 1.9.5
v1.9.4 修复 version 命令硬编码版本号
v1.9.4 Bug 修复
修复 easy-tdx version 命令硬编码版本号 1.1.0 的问题,改为从 pyproject.toml 动态读取。
修复
- 修复
cmd_admin.py中version命令硬编码1.1.0的问题 - 版本号现在通过
importlib.metadata从pyproject.toml动态获取,不再需要手动同步
变更文件
- 修改
src/easy_tdx/cli/cmd_admin.py— 移除硬编码版本号,改为动态读取 - 修改
pyproject.toml— 版本号升级 1.9.4 - 修改
README.md— 更新 Changelog
v1.9.3 新增 run-all CLI 命令:一行命令批量跑完所有策略
v1.9.3 新增 run-all CLI 命令
一行命令批量运行 strategies/ 目录下所有策略并排名,与 run_all_strategies.py 脚本功能完全一致。
新增
easy-tdx run-allCLI 命令,支持以下参数:--count/--cash/--commission/--adjust/--period— 回测参数--combo/--combo-mode— 多因子组合回测--show— 显示最佳策略资金曲线 vs 股价对比图--strategies-dir— 自定义策略文件目录
输出内容
- 策略绩效排名(按总收益率降序)
- 综合评分排名(Sharpe×0.4 + Ret/DD×0.3 + WinRate×0.3)
- 最佳策略详细交易明细
- 可选多因子组合回测(自动遍历 C(N,k) 所有组合)
- 可选 matplotlib 资金曲线图表
用法
# 基本用法
easy-tdx run-all SZ 300308 --count 2000 --cash 1000000 --adjust QFQ
# 多因子组合回测
easy-tdx run-all SZ 300308 --combo 2 --combo-mode MAJORITY
# 显示图表
easy-tdx run-all SZ 300308 --show变更文件
- 新增
src/easy_tdx/cli/cmd_run_all.py— run-all 命令实现 - 修改
src/easy_tdx/cli/__init__.py— 注册命令 - 修改
README.md— 文档更新 - 修改
pyproject.toml— 版本号升级
v1.8.2 - 内置回测引擎,增加资金曲线展示
策略扩充 + 可视化 — 新增 6 个策略(共 15 个)、--show 资金曲线图、茅台 demo 截图。
新增 run_all_strategies.py --show 参数:自动弹出最佳策略资金曲线 vs 股价归一化对比图(matplotlib 双轴图 + 买卖点标记)
新增 zhuoyao_momentum 策略:ZHUOYAO 多周期共振(SHORT/TREND/MID 三重过滤)
新增 dmi_trend 策略:DMI/ADX 趋势强度跟踪
新增 cci_breakout 策略:CCI ±100 区间突破
新增 mfi_volume 策略:MFI 量价反转(带成交量权重的 RSI)
新增 trix_cross 策略:TRIX 三重平滑趋势交叉
新增 mtm_momentum 策略:MTM 动量零线穿越
新增 SH600519 贵州茅台 demo 截图
v1.8.0 - 内置回测引擎
1.8.0 (2026-06-09)
回测引擎 — 内置向量回测引擎,支持自定义策略回测和全策略批量对比。
新增 backtest 子包:Strategy 基类、BacktestEngine、OrderSimulator、PortfolioTracker、PerformanceAnalyzer
新增 easy-tdx backtest CLI 命令,支持 --strategy-file、--cash、--commission、--adjust 等参数
绩效报告包含 19 项指标:总收益率、年化收益、最大回撤、夏普比率、索提诺、卡玛、胜率、盈亏比等
新增 strategies/ 目录,包含 9 个开箱即用的策略示例(MA/EMA/MACD/BOLL/RSI/KDJ/BIAS/海龟/量价)
新增 run_all_strategies.py 批量对比脚本,一键跑完全部策略并按收益率和综合评分排名
自带策略在 SZ 300308 上 3 年回测:收益率最高 1413%(expma_cross),综合最优 turtle_breakout
30+ 离线单元测试覆盖,零网络依赖