ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

eltdx K线完全指南:分钟/日/周/月线与前复权、后复权如何一行代码搞定

eltdx K线完全指南:分钟/日/周/月线与前复权、后复权如何一行代码搞定
  • 金融科技
  • 数据
  • 后端
  • MCP 服务

【免费下载链接】eltdx

通达信A股行情协议 Python 库,MCP,支持快照、分时、逐笔、K 线、集合竞价、特殊指标等接口。适合作为量化数据源,支持其他语言通过HTTP或WebSocket调用

项目地址:https://gitcode.com/gh_mirrors/el/eltdx
点击查看免费下载

想拿到A 股 K 线数据,还要同时搞定分钟线、日 K、周 K、月 K和前复权、后复权?Python 库eltdx把通达信 7709 协议下的 K 线接口封装成了client.bars.get()一个方法:一个period参数切换周期,一个adjust参数切换复权,一行代码即可返回结构化的KlineSeries,是量化数据源的理想选择。

快速上手:一行安装,三行取数

pip install eltdx
from eltdx import TdxClient with TdxClient(timeout=3) as client: day = client.bars.get("sz000001", period="day", count=200)

返回的day是一个KlineSeries对象,.bars里是按时间排序的 K 线列表,每根 K 线都有time / open / high / low / close / volume_lots / amount字段,价格已完成协议差分解码,拿到就能直接用,无需手动换算。

周期怎么选:一个 period 参数覆盖分钟到年线

eltdx 支持 1 分钟到年线的全周期,周期写法还支持简写(day/1d、week/1w、month/1mo均可):

需求period写法说明
5 分钟线"5m"分钟级 K 线
30 分钟线"30m"分钟级 K 线
60 分钟线"60m"或"1h"小时级 K 线
日 K"day"默认值
周 K"week"中线策略常用
月 K"month"长周期趋势
季/年 K"quarter"/"year"超长周期
扩展周期"10m"、"2d"等以服务端实际支持为准
week = client.bars.get("sz000001", period="week", count=100) hour = client.bars.get("sz000001", period="60m", count=48)

前复权、后复权:adjust 参数一键切换

复权是新手最容易踩坑的环节。eltdx 的复权由通达信主站直接返回,不需要你在本地算系数,只需在请求里加一个adjust参数:

参数含义
None/"none"不复权(默认)
"qfq"前复权,回测常用
"hfq"后复权,长期分析常用
"fixed_qfq"+anchor_date定点前复权,复权锚定到指定日期
"fixed_hfq"+anchor_date定点后复权
qfq = client.bars.get("sz000001", period="day", adjust="qfq", count=200) hfq = client.bars.get("sz000001", period="day", adjust="hfq", count=200) fixed = client.bars.get("sz000001", period="day", adjust="fixed_qfq", anchor_date="2024-06-03")

anchor_date支持"YYYY-MM-DD"、"YYYYMMDD"或date对象。

💡 如果你手里已有本地不复权 K 线,想自己计算或核对复权结果,可以改用 本地复权系数接口(client.corporate.adjustment_factors())拿到每个除权事件的scale + offset系数,在本地做仿射变换。

自动翻页:拉取全部历史 K 线

单页最多 800 根 K 线,要拿一只股票的全部历史日 K,加一个all_pages=True即可,SDK 会自动翻页直到主站返回空页并合并成一条KlineSeries:

history = client.bars.get("sz000001", period="day", all_pages=True, page_size=800) print(history.count) # 合并后的 K 线总数

max_pages参数可限制最大翻页数(默认 200),防止意外死循环。

批量取多只股票的 K 线

把code从字符串换成列表,就能并发拉取多只标的,返回以完整代码为键的字典:

many = client.bars.get(["sz000001", "sh600000"], period="day", count=800) first = many["sz000001"].bars[-1]

底层由连接池分配到多台主站并发执行,batch_size可控制最大并发数。

一个容易忽略的细节:分钟线时间戳

通达信返回的分钟级 K 线时间戳是开始时间(如最后一根 5 分钟线标11:25)。如果你要和 Tushare、同花顺这类以右端点标注的数据对齐,加一个参数即可:

client.bars.get("sz000001", period="5m", count=48, bar_time="end") # 标成 11:30

日线及以上周期只有日期,传bar_time="end"完全不受影响,放心用。

相关文档

  • K 线周期线完整参数与字段:docs/methods/7709-K线周期线.md
  • 本地复权系数:docs/methods/7709-本地复权系数.md
  • K 线 API 实现:src/eltdx/api/bars.py
  • KlineSeries/KlineBar数据模型:src/eltdx/models/kline.py

从 5 分钟线到年线、从不复权到定点复权,client.bars.get()一个接口全部覆盖——这就是 eltdx 作为量化数据源的效率所在。

  • 金融科技
  • 数据
  • 后端
  • MCP 服务

【免费下载链接】eltdx

通达信A股行情协议 Python 库,MCP,支持快照、分时、逐笔、K 线、集合竞价、特殊指标等接口。适合作为量化数据源,支持其他语言通过HTTP或WebSocket调用

项目地址:https://gitcode.com/gh_mirrors/el/eltdx
点击查看免费下载

相关推荐

上一篇:全网都在聊的 Hindsight:图谱记忆栈如何把"事实"和"信念"彻底拆开
下一篇:腾讯又开源一个 Agent:是内卷自己人,还是在押注开源生态?

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进