- handsomejustin802026-09-0469676
大家好,分享一个我一直在维护的开源项目 easy-tdx,最近过了 1.1k star ,MIT 协议,今天来发个迟到的介绍帖。
起因
做 A 股研究最烦的不是策略,是数据:行情平台要注册、要会员、接口按次收费;通达信客户端数据全,但锁在自己的软件里。这个项目的思路很简单——通达信的 TCP 协议是公开可逆的,那就自己实现一遍,把数据解放出来。
它是什么
一个纯 Python 的 A 股量化工具箱,
pip install easy-tdx就能用:- 行情:K 线 / 五档报价 / 分时 / 逐笔成交 / 板块 / 资金流,通达信协议直连,不需要装通达信客户端
- 回测:内置 54 个策略、Walk-Forward 样本外验证、一条龙评估、25 项绩效指标、S-D 五档评级
- 选股:策略翻转到全市场扫描,也有按多周期涨幅的强势股排名
- AI 解读:回测报告自动组装成提示词发给你自己的模型( DeepSeek / GLM / Kimi / Ollama 本地都行),返回大白话解读和信心分
- Web 终端:
easy-tdx serve起一个本地看板,行业/概念热力图、异动雷达、期货持仓排名- 免注册、免 API Key ,所有数据通道都是协议直连或公开数据源
几张截图
行情终端(行业总览热力图):

回测的防过拟合验证链(评级 + Walk-Forward 逐窗样本外):

技术上几个可能值得一看的点
- 通达信二进制协议是净室实现的,标准协议 + MAC 协议两套编解码,commands 层无 IO 可独立单测
- 回测引擎是向量化的,54 个策略的指标基线进了 CI 黄金测试,撮合逻辑漂移会直接红
- 本地 K 线仓库用 DuckDB 做增量同步,15:05 前的当日 bar 标临时值,回测默认忽略,避免拿盘中价当收盘价
- CLI / Python API / REST 三通道输出同一份 JSON ,喂给 Agent 或脚本都行
- 有 Windows 单文件 EXE ,不装 Python 双击就能跑
丑话说在前面
回测 ≠ 实盘,历史收益不代表未来;龙头池名单只是扫描范围,不是荐股; AI 解读仅供参考。工具是研究中用的,不构成任何投资建议。
链接
- 仓库: https://github.com/handsomejustin/easy_tdx
- 文档 Wiki: https://github.com/handsomejustin/easy_tdx/wiki
- 零基础上手手册( 13 章图文): https://github.com/handsomejustin/easy_tdx/blob/main/docs/回测系统完全上手手册.html
觉得有用的话给个 star ,遇到 bug 或想要的功能直接开 issue ,或者在评论区聊,谢谢大家。
主楼 - yadihaoku2026-09-0469677
已经 star ,赢利了分你一半
- lianggggg2026-09-0568499
star 了,老哥牛逼!但还是想问一下,老哥用这个框架收益情况如何
- iorilu2026-09-051469
- handsomejustin802026-09-0569676
@lianggggg 感谢 star ,作为开发者来说,希望看到各位把他们用活,webui 方式,cli 方式,webapi 方式,python SDK 方式,让你可以充分做二次开发。
@iorilu 你可以试试。
- oldmii2026-09-0548032
1.32.4 版本被侦测带有 Trojan:Win32/Wacatac.C!ml
- handsomejustin802026-09-0669676
排查结论:这是误报( false positive ),不是真的木马。我做了完整取证,Release 页也补上了完整性说明和 SHA256 。
取证过程与证据
下载了我们发布的 EXE 并解析二进制:确认是 PyInstaller 6.x 单文件打包、Python 3.12 (与 CI 构建矩阵完全一致)、python312.dll 运行时——构建管线上个版本( v1.32.3 )也一模一样,不是这次才引入的。
枚举了归档内全部 1437 个条目:入口脚本全是 PyInstaller 标准引导( pyiboot01_bootstrap 等);依赖全是预期内的正常库( PIL 、numpy 、pytz 、tzdata 、VC 运行时、api-ms 系统组件),无任何可疑命名或未知二进制。
Wacatac.C!ml 的 !ml 后缀 = 机器学习启发式判定,不是特征码命中。未签名的 PyInstaller 单文件 EXE (自解压+运行时解包)是杀软 ML 引擎最经典的误报形态——这也是为什么发版说明里早就预写了 SmartScreen 警告。v1.32.1~3 同管线构建,被报的概率相同,只是你第一次实际下载。
你可以做的一步验证你下载的文件 SHA256 应该是:
aa7e199195495cf1f07015cbe21c0f9b12a1bfbba52ff8a011000b8b1f18d46f
在 PowerShell 里 Get-FileHash easy-tdx-1.32.4-windows.exe 对一下。一致即是从 GitHub Actions 构建的原始产物。也可上传 VirusTotal 交叉看——典型误报特征是少数 ML 引擎报、主流特征码引擎( Kaspersky/ESET 等)不报。