Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jing2uo/tdx2db

Repository files navigation

tdx2db - 获得专属的 A 股行情数据库

GitHub release License

将通达信行情数据导入本地数据库,支持 DuckDB 和 ClickHouse。

亮点

  • 增量更新:日线 / 股本变迁 / 假期日历一条 cron 命令搞定
  • 分时数据:可选导入 1 分钟分时
  • 复权与衍生:自动计算后复权因子、前收盘价、换手率、市值
  • 在线数据:基于 opentdx 协议拉取在线代码名称 + 板块 / 概念 / 行业
  • 稳定可靠:基于通达信公开数据,无需收费或限流接口

声明 & 支持项目

  • 当前代码不做历史兼容,也可能写出 bug,请自行检查数据正确性。
  • 导入分时后请保留原始数据并定期备份,日线可快速重建,分时不行。
  • 使用问题欢迎来 Telegram 讨论。

tdx2db 永远免费开源,日线 + 分时 + 复权 + 板块足够跑基本的量化研究。如果你确实需要逐笔成交高频历史数据和更多配套维度,可以考虑付费订阅 Trade Data Plus(tdp),提供:

  • 逐笔成交(tick):全市场 3 秒级逐笔,含 B / S / X 主动买卖方向判定
  • 非聚合 1min / 5min:原始分时档,不是二次聚合版本
  • 港股日线 + 复权因子:A 股之外覆盖全市场港股
  • 指数 / 行业 / 概念成分:中证 300 / 500 / 1000 / 2000 加通达信板块及成分股映射
  • 证券基础信息:代码 ↔ 名称、品种分类、A 股上市 / 退市日期、港股标的信息
  • 历史包:逐笔、分钟线等高频历史数据一次性导入(2024 元旦至今)

同样落进你自己的 ClickHouse,可查询、可导出、可回测。tdp 提供更原生的跨平台支持:Linux / macOS / Windows 单二进制、install.sh 自动识别架构,安装与每日增量同步流程一致。细节见网站

如果想支持一下这个项目,买份订阅就是最实在的鼓励啦。希望大家都能在大 A 赚到钱。

安装

二进制

releases 下载对应平台压缩包,解压后:

sudo mv tdx2db /usr/local/bin/ && tdx2db -h

提供 Linux (amd64/arm64)、macOS (arm64)、Windows (amd64) 预编译版本。除 Linux amd64 外(Windows、macOS、Linux arm64)会跳过 1 分钟分时数据的下载与导入,日线正常处理。

使用

初始化

首次需全量导入历史数据,从通达信券商数据下载 沪深京日线数据完整包:

# Linux / macOS
mkdir -p vipdoc
wget https://data.tdx.com.cn/vipdoc/hsjday.zip && unzip -q hsjday.zip -d vipdoc
# 若解压后文件名形如 sh\lday\sh000001.day,可批量重命名:
# cd vipdoc && for f in *.day; do mv "$f" "${f##*\\}"; done
# Windows PowerShell
Invoke-WebRequest -Uri "https://data.tdx.com.cn/vipdoc/hsjday.zip" -OutFile "hsjday.zip"
Expand-Archive -Path "hsjday.zip" -DestinationPath "vipdoc" -Force

导入:

# DuckDB: duckdb://[path]
tdx2db init --dburi 'duckdb://./tdx.db' --dayfiledir ./vipdoc
# ClickHouse: clickhouse://[user[:password]@][host][:port][/database][?http_port=...]
# 默认值: user=default, password="", port=9000, http_port=8123, database=default
tdx2db init --dburi 'clickhouse://localhost' --dayfiledir ./vipdoc

增量更新

cron 会把日线、股本变迁、假期日历、在线代码名称 / 板块更新到最新,并重算前收盘价与复权因子。初次 init 后请立刻执行一次。

tdx2db cron --dburi 'duckdb://tdx.db'
# 加 --min 才会下载并导入 1 分钟分时
tdx2db cron --dburi 'duckdb://tdx.db' --min

分时注意事项

  1. 分时数据下载和导入耗时,表数据量大
  2. 通达信不提供历史分时数据,请自行检索后导入
  3. 分时更新间隔超过 30 天时,需手动补齐后才能继续
  4. 股票代码变更不会处理历史记录

全局 flag

  • --temp <dir>:临时文件父目录,留空走 $TMPDIR
  • -v / version:打印版本(本地 build 与 release 对齐)

表与视图

raw_ 前缀为基础数据,v_ 前缀为视图。

表 / 视图 说明
_meta schema 版本等元信息 (当前 v5.0)
raw_kline_daily 日线 (股票 / 指数 / ETF / 板块)
raw_kline_1min 1 分钟 K 线
raw_basic_daily 股票 / ETF 前收盘价、换手率与市值
raw_adjust_factor 后复权因子
raw_gbbq 股本变迁
raw_holidays 假期日历
raw_symbol_class 品种分类 (stock/index/etf/...)
raw_symbol_name 在线代码名称
raw_tdx_blocks_info 在线板块 / 概念 / 行业信息
raw_tdx_blocks_member 板块成分关系
v_stock_{bfq,qfq,hfq} 股票 不复权 / 前复权 / 后复权日线
v_etf_{bfq,qfq,hfq} ETF 不复权 / 前复权 / 后复权日线

视图按 v_<class>_<fq> 命名,便于 tab-complete 按归属浏览。股票价格 ROUND 2 位、ETF ROUND 3 位。

-- 股票前复权
select * from v_stock_qfq where symbol='sz000001' order by date;
-- ETF 后复权
select * from v_etf_hfq where symbol='sh510300' order by date;

复权算法来自 QUANTAXIS,原理参考这里。后复权结果和 QUANTAXIS、通达信等比复权一致;前复权结果和雪球、新浪也一致。

致谢

  • 在线代码名称、板块 / 行业 / 概念数据的协议处理与解析逻辑,参考并转写自 opentdx,让 tdx2db 能以 Go 版本接入这部分在线数据。
  • Windows、macOS 和 Linux arm64 下的日线合并由 @Abelonx#60 贡献的 native Go 实现支持,让 tdx2db 摆脱了对 Linux amd64 datatool 二进制的依赖。

欢迎 issue 和 pr

有任何使用问题都可以开 issue 讨论,也期待 pr~

About

30s 拥有专属的A股行情数据库〜

Topics

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /