Easy Tdx
免费Python量化SDK:通达信协议直连 A股/港股/美股数据,内置技术指标、缠论分析、回测引擎与 Web 可视化,JSON 输出适配 AI Agent
Install / Use
npx skills add handsomejustin/easy_tdxInstalls into whichever agent you are using.
README
easy-tdx
<img src="./docs/top_img.png" alt="头部宣传图" /> 量化基金花百万买的毫秒级行情通道,散户连一根日线都要手动截图——这不是技术差距,这是数据霸凌。easy-tdx 要做的事很简单:把机构的数据锁砸开,扔到每个普通人桌面。
它是一个完全免费、无需注册、无需 API Key、纯开源的行情核武器。
一行命令,A股、港股、美股、期货——K线、报价、资金流向、板块轮动、分时明细、逐笔成交,毫秒级拉满。
34个技术指标(MACD、KDJ、RSI、BOLL……连”捉妖大师”和”30日乖离率信号”都给你算好)开箱即用。 缠论分析(笔、中枢、买卖点、背驰)一键出结果——你不再需要手画分型、猜线段。 内置回测引擎——写个策略文件,一行命令跑回测,18 个经典策略自带,多因子组合、策略选股扫描,批量对比哪个最赚钱一目了然。
回测可视化 Web UI(v1.17 新增)——Vue3 + ECharts 单页应用,浏览器里选标的、挑策略、调参数,K 线买卖点、净值回撤、19 项绩效指标一目了然。支持组合回测、参数网格寻优、多策略结果对比,还能把好策略存进策略库(SQLite 持久化),勾选多个策略做资金分仓组合回测看综合表现,全程零代码。
数据评级系统(v1.17.14 新增)——回测结果顶部直接显示 S/A/B/C/D 五档评级徽章,1 秒判断「这个品种适不适合经常参与」。评级不看收益率(避免被近期大涨误导),只看风险调整后的持有体验:卡玛比率、最大回撤、胜率、利润因子、夏普、波动率六维加权 + 一票否决(系统亏损/深回撤/低胜率直接低评)。京东方那种「收益 126% 但胜率 35%、回撤 41%」的案例会评 D 档——明确告诉普通人「别碰,套牢后回本极难」。三个入口(单标的/组合/寻优)都有评级,长线低频策略不会被冤枉(交易少时只降权胜率维度,不否决整个评级)。
装上就能跑。Python API + CLI + Web API 三通道,输出 JSON 天然喂给 AI Agent:Claude Code、OpenClaw、Hermes 直接吃。easy-tdx serve 一键起 REST 服务,浏览器打开就是交互式 API 文档。
你不懂 TCP 协议?不用。 你不会写量化框架?不用。 你想回测验证策略?自带引擎,不用。 你不想给任何平台付一分钱?完全不用。
pip install easy-tdx,30秒后——你屏幕上的数据,和机构看到的是同一份。
为什么做这个?
金融数据的获取门槛,从来不该是散户亏钱的理由。
当量化基金用程序化交易像割草一样收割市场时,普通人至少应该有权利拿一样的武器。
这不是一个帮你“赚钱”的工具。
这是让你不再裸奔的工具。
MIT 协议,代码全开源。
随便用,随便改,随便分发。
数据面前,人人平等。
📖 详细用法请查看 GitHub Wiki
安装
pip install easy-tdx
安装后自动注册 easy-tdx CLI 命令:
easy-tdx --help
开发模式:
pip install -e ".[dev]"
# 开发 Web API 模式(含 FastAPI + Uvicorn)
pip install -e ".[web]"
CLI 参考
easy-tdx 默认输出 JSON(一行一条记录),--table 切换表格,--output csv 输出 CSV。
基础
easy-tdx ping # 服务器测速
easy-tdx version # 版本号
行情
# K 线
easy-tdx kline SZ 000001 --count 30 --table
easy-tdx kline SH 600519 --period 5MIN --adjust QFQ
# 实时报价
easy-tdx quote "SZ 000001,SH 600519" --table
# 市场分类报价(按涨幅排序)
easy-tdx quote-list A --count 20 --table
easy-tdx quote-list KCB --sort TOTAL_AMOUNT --order ASC
easy-tdx quote-list CYB --count 50
分时 / 成交
easy-tdx tick SZ 000001 --table
easy-tdx tick SH 600519 --days 5
easy-tdx tick SZ 000001 --date 20250115
easy-tdx transaction SZ 000001 --count 100 --table
easy-tdx transaction SH 600519 --date 20250115
板块
easy-tdx board-list --type GN --table
easy-tdx board-list --type HY --count 200
easy-tdx board-members 881001 --table
easy-tdx belong-board SZ 000001 --table
easy-tdx board-summary 881001 --table # 板块汇总(成交额/主力净流入/涨跌家数)
easy-tdx board-summary 881001 --members --table # 含成分股明细
easy-tdx board-ranking --type HY --top 10 --table # 行业板块排行
easy-tdx board-ranking --type GN --sort-by amount # 概念板块按成交额排行
# 板块 N 日涨跌幅排行(默认全部,支持指定日期)
easy-tdx board-change-ranking --table # 行业 20 日涨跌幅排行
easy-tdx board-change-ranking --type GN --days 10 --table # 概念 10 日涨跌幅排行
easy-tdx board-change-ranking --type HY --date 20250530 --days 20 --table
easy-tdx board-change-ranking --type HY --top 10 --asc # 行业跌幅前10
资金 / 监控
easy-tdx capital-flow SH 600519 --table
easy-tdx auction SZ 000001 --table
easy-tdx unusual SH --count 100 --table
easy-tdx market-stat --table
easy-tdx server-info --table
easy-tdx symbol-info SZ 000001 --table
公告检索(巨潮资讯网)
easy-tdx announcement 688017 # 默认 30 条,JSON 输出
easy-tdx announcement 601088 --count 10 --page 2 # 翻页
easy-tdx announcement 000001 --table # 表格输出(不截断 url)
# 下载最新 5 条公告的 PDF 到 ./pdfs 目录
easy-tdx announcement 601088 --count 5 --download 5 --download-dir ./pdfs
独立数据源(巨潮资讯网),无需连接 TDX 行情服务器即可使用。 返回的
url含 4 参数可直接打开,pdf_url为 PDF 直链。
技术指标
easy-tdx indicator-list --table # 列出所有可用指标
easy-tdx indicator MACD -m SH -c 600519 --table # MACD
easy-tdx indicator KDJ -m SZ -c 000001 --table # KDJ
easy-tdx indicator RSI -m SH -c 600519 --table # RSI
easy-tdx indicator BOLL -m SH -c 600519 --table # BOLL 布林带
easy-tdx indicator DMI -m SH -c 600519 --table # DMI 动向指标
easy-tdx indicator ATR -m SH -c 600519 --table # ATR 真实波幅
easy-tdx indicator WR -m SH -c 600519 --table # WR 威廉指标
easy-tdx indicator CCI -m SH -c 600519 --table # CCI 顺势指标
easy-tdx indicator BIAS -m SZ -c 000001 --table # BIAS 乖离率
easy-tdx indicator BIAS_SIGNAL -m SH -c 600519 --table # 30日乖离率信号
easy-tdx indicator OBV -m SZ -c 000001 --table # OBV 能量潮
# 多指标同时计算
easy-tdx indicator MACD,KDJ,RSI,BOLL -m SH -c 600519 --count 10 --table
# 自定义参数
easy-tdx indicator MACD -m SH -c 600519 --params SHORT=10,LONG=22
# 分钟线指标
easy-tdx indicator MACD -m SH -c 600519 --period 5MIN --count 50
# 仅输出指标值(不含 OHLCV)
easy-tdx indicator RSI -m SZ -c 000001 --no-ohlcv
缠论分析
基于缠论理论的技术分析,计算管道:K 线合并 → 分型识别 → 笔 → 中枢 → 线段 → 买卖点 → 背驰。默认输出 JSON,加 --table 输出可读表格。
easy-tdx chanlun SZ 000001 --table
easy-tdx chanlun SH 600519 --adjust QFQ --table
easy-tdx chanlun SZ 000001 --period 30MIN
# 多级别联立:分析日线最后一笔在 30 分钟级别中的走势结构
easy-tdx chanlun SZ 000001 --multi-level 30MIN --table
easy-tdx chanlun SH 600519 --multi-level 5MIN
输出示例
以 easy-tdx chanlun SH 601088 --table 为例,输出分五个部分:
概要统计
标的: 601088 周期: DAILY
原始K线: 800 缠论K线: 589
分型: 275 笔: 131 中枢: 21 线段: 40
买卖点: 125 背驰: 73
| 字段 | 含义 | |------|------| | 原始 K 线 | 从服务端获取的原始 K 线条数 | | 缠论 K 线 | 经过包含处理(合并)后的 K 线条数,数量一定 ≤ 原始 K 线 | | 分型 | 识别出的顶分型 + 底分型总数 | | 笔 | 相邻两个异向分型之间的连线(涨跌方向交替) | | 中枢 | 至少 3 笔重叠区域形成的密集成交区间 | | 线段 | 由笔构成的更大级别走势单位 | | 买卖点 | 一二三类买卖点信号总数 | | 背驰 | 力度衰减信号总数(笔背驰 / 盘整背驰 / 趋势背驰) |
笔
[0] ↑ 2023-02-17 → 2023-02-23 h=28.46 l=26.76 ✓
[1] ↓ 2023-02-23 → 2023-02-28 h=28.46 l=27.8 ✓
[2] ↑ 2023-02-28 → 2023-03-09 h=29.77 l=27.8 ✓
笔是缠论的基本走势单位。每条笔连接一个顶分型和一个底分型,方向严格交替(↑↓↑↓…)。✓ 表示已确认(后续出现了反向笔),… 表示仍在进行中。
↑:向上笔,起点是底分型(低点),终点是顶分型(高点)↓:向下笔,起点是顶分型(高点),终点是底分型(低点)h/l:该笔范围内的最高价 / 最低价
中枢
[0] zg=28.46 zd=28.11 gg=32.56 dd=26.76 lines=11 ✓
[1] zg=31.2 zd=30.45 gg=32.56 dd=27.9 lines=3 ✓
中枢是至少 3 笔重叠形成的密集成交区间,代表多空博弈的平衡区域。✓ 表示已脱离,… 表示价格仍在中枢区间内震荡。
| 字段 | 含义 |
|------|------|
| zg | 中枢上沿(区间内最高的低点)— 支撑/压力的关键分界 |
| zd | 中枢下沿(区间内最低的高点) |
| gg | 中枢区间内的最高价 |
| dd | 中枢区间内的最低价 |
| lines | 构成该中枢的笔数,笔数越多代表震荡越充分 |
中枢的意义:价格在中枢内震荡 → 突破中枢上沿看涨,跌破下沿看跌。zg/zd 是实战中最常用的参考价位。
线段
[0] ↑ 2023-02-17 → 2023-03-09 h=29.77 l=26.76
[1] ↓ 2023-02-28 → 2023-03-29 h=29.77 l=27.18
线段是比笔更大的走势单位,由多笔重叠组合而成。线段的方向不严格交替,可能出现连续同向(如连续多段向上),代表更高一级的趋势方向。实战中通常在线段级别判断大方向,在笔级别找买卖点。
买卖点
1buy: 中枢下方力度衰减,一类买点 (l=27.30 < zd=46.72)
2buy: 回调不创新低,二类买点 (l=27.33)
3buy: 回调不破中枢上沿,三类买点 (l=27.80 > zg=27.58)
1sell: 中枢上方力度衰减,一类卖点 (h=50.38 > zg=46.97)
2sell: 反弹不创新高,二类卖点 (h=29.32)
3sell: 反弹不破中枢下沿,三类卖点 (h=28.46 < zd=46.72)
缠论定义三类买点和三类卖点:
| 类型 | 买点含义 | 卖点含义 | |------|----------|----------| | 一类 | 下跌趋势末端,力度衰减后的第一个低点(抄底) | 上涨趋势末端,力度衰减后的第一个高点(逃顶) | | 二类 | 一类买点后的回调不创新低(确认反转) | 一类卖点后的反弹不创新高(确认反转) | | 三类 | 回调不进入中枢上沿(趋势确认,中枢上方买) | 反弹不进入中枢下沿(趋势确认,中枢下方卖) |
括号内的条件是该信号的触发依据,如 l=27.80 > zg=27.58 表示回调低点 27.80 高于中枢上沿 27.58,所以是三类买点。
背驰
[✓] bi: 笔背驰: 笔[4] 力度=1.32 < 笔[2] 力度=1.97
[✓] pz: 盘整背驰: 中枢[11] 内末笔力度=2.49 < 首笔力度=6.64
[✓] qs: 趋势背驰(上): 中枢[1] 离开力度=3.32 < 中枢[0] 离开力度=4.45
背驰是力度衰减信号,表明当前走势动力正在减弱,可能即将反转。力度通过 MACD 面积计算,数值越小力度越弱。
| 类型 | 含义 |
|------|------|
| bi(笔背驰) | 同向相邻两笔比较,后一笔力度 < 前一笔 → 该方向动力减弱 |
| pz(盘整背驰) | 同一中枢内,末笔力度 < 首笔 → 中枢内动力衰减,即将突破 |
| qs(趋势背驰) | 两个同向中枢之间比较,后一中枢离开力度 < 前一中枢 → 趋势可能终结 |
[✓] 表示确认背驰。趋势背驰(上)代表上涨趋势可能结束,趋势背驰(下)代表下跌趋势可能结束。
回测引擎
📖 完整使用手册:docs/backtest_usage.md —— 涵盖策略编写(
init()/next())、行情数据访问、指标注册、订单模拟、 绩效指标、组合回测、调仓引擎与完整示例。回测相关用法以该手册为准。
内置向量回测引擎,加载 Python 策略文件即可跑回测。策略继承 Strategy 基类,在 init() 注册指标,在 next() 逐 bar 生成买卖信号,引擎完成订单模拟、持仓跟踪和绩效分析。
单策略回测:
easy-tdx backtest SZ 300308 --strategy-file strategies/expma_cross.py --count 2000 --cash 1000000 --adjust QFQ --table
# 推荐加上 --slippage 0.01 模拟真实滑点(元/股),使回测更贴近实盘
# 缠论自动桥接:引擎自动计算缠论分析并注入策略 self.chanlun
easy-tdx backtest SZ 000001 --strategy-file strategies/chanlun_strategy.py --chanlun-level DAILY --table
输出示例:
=== 回测绩效概要 ===
总收益率: 1413.51%
年化收益: 40.85%
最大回撤: 76.75%
夏普比率: 0.88
胜率: 20.8%
交易次数: 24
⚠️ 回测 ≠ 实盘。以上收益率为历史数据回测结果,包含幸存者偏差和过拟合风险, 不构成投资建议。实际交易需考虑滑点、流动性、涨跌停无法成交等因素。 请在充分理解策略逻辑后谨慎使用。
全策略批量对比(CLI):
easy-tdx run-all 一行命令跑完 strategies/ 下所有策略并排名:
easy-tdx run-all SZ 300308 --count 2000 --cash 1000000 --adjust QFQ
# 多因子组合回测
easy-tdx run-all SZ 300308 --combo 2 --combo-mode MAJORITY
# 加 --show 自动弹出最佳策略的资金曲线 vs 股价对比图
easy-tdx run-all SZ 300308 --count 2000 --cash 1000000 --adjust QFQ --show
# 自定义策略目录
easy-tdx run-all SZ 300308 --strategies-dir my_strategies/
也可使用项目自带的 run_all_strategies.py 脚本(功能相同):
python -X utf8 run_all_strategies.py SZ 300308 --count 2000 --cash 1000000 --adjust QFQ
# 加 --show 自动弹出最佳策略的资金曲线 vs 股价对比图
python -X utf8 run_all_strategies.py SZ 300308 --count 2000 --cash 1000000 --adjust QFQ --show
多因子组合回测:
自动遍历所有 2 因子 / 3 因子组合,找到最优搭配:
# 自动寻找最佳 2 因子和 3 因子组合(MAJORITY 模式)
python -X utf8 run_all_strategies.py SZ 300308 --combo 2 --combo 3 --combo-mode majority
# CLI 方式
easy-tdx run-all SZ 300308 --combo 2 --combo 3 --combo-mode majority
CLI 指定策略文件组合:
easy-tdx
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.6kCommit, push, and open a PR
