SkillAgentSearch skills...

Easy Tdx

免费Python量化SDK:通达信协议直连 A股/港股/美股数据,内置技术指标、缠论分析、回测引擎与 Web 可视化,JSON 输出适配 AI Agent

Install / Use

npx skills add handsomejustin/easy_tdx

Installs into whichever agent you are using.

README

easy-tdx

License: MIT PyPI GitHub Repo stars GitHub last commit Checked with mypy Ask DeepWiki

<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

View on GitHub
GitHub Stars687
CategoryDevelopment
Updated9h ago
Forks207

Languages

Python

Security Score

85/100

Audited on Aug 7, 2026

No findings