跳到主要内容

腾讯财经数据源

概述​

腾讯财经是多数 HTTP 行情类的第一优先级数据源(K线/指数/估值/行业板块排名), HTTP 协议,不封IP。主要提供实时行情(含 PE/PB/市值/换手率)、前复权 K 线、 指数数据、全球市场行情与逐笔成交。

实现文件​

文件定位
data_sources/tencent_client.py底层 HTTP 客户端(批量行情 + K线 + 分时)
data_sources/tencent_ticks.py逐笔成交(分笔)
market_data_service/providers_tencent.py实时行情聚合层(指数/涨跌分布/行业排行/涨幅榜)
data_manager/tencent_market.py落库链路(日频时序 + staging + 融合读源)
data_manager/providers_tencent_stock.py全A股分页拉取(榜单接口,30+ 字段)
data_manager/providers_tencent_index.py全球 33 个股指
data_manager/providers_tencent_forex.py全球 51 个外汇货币对
data_manager/providers_tencent_future.py全球 50 个期货/商品品种
data_manager/providers_tencent_us_stock.py美股(中概 CDR + 科技 TEC)

API 端点​

https://qt.gtimg.cn/q=sh600519,sz000001,... # 实时行情(批量,600只/批)
https://web.ifzq.gtimg.cn/appstock/app/fqkline/get # 前复权 K 线(day/week/month)
https://proxy.finance.qq.com/cgi/cgi-bin/rank/pt/getRank # 行业板块排行(getRank)
https://qt.gtimg.cn/q=... # 全球指数/外汇/期货/美股
https://stock.gtimg.cn/data/view/... # 全A股分页榜单(30+ 字段)
https://stock.finance.qq.cn/v1/stock/... # 逐笔成交
  • 支持批量查询(逗号分隔,单批 _BATCH_SIZE = 600 只,全市场约 10 个请求)
  • 返回格式:v_sh600519="1~贵州茅台~600519~1800.00~..."
  • 无需特殊请求头;客户端内置节流 TENCENT_MIN_INTERVAL = 0.2s
  • 绕过系统代理直连(_NO_PROXY_OPENER),响应编码 GBK

核心数据接口​

批量行情​

函数说明
tencent_quote_batch(codes)批量实时行情(600 只/批):价格/涨跌/PE/PB/市值/换手率/五档盘口
tencent_quote(codes)向后兼容别名,等价于 tencent_quote_batch
tencent_quote_single(code)单只股票实时行情

K线数据​

函数说明
tencent_kline(code, period, count)日/周/月K线(前复权),域名 proxy.finance.qq.com(2026-08-24 迁移)
tencent_kline_history(code, start_date, end_date, period, ...)长历史分页拉取(日期游标分页,每页 640 根,最多 40 页 ≈ 25 年日线),支持 qfq/hfq/raw 三种复权口径

指数与分时​

函数说明
tencent_indices()主要指数实时行情(全量),含 A 股/恒生/美股/欧洲指数,指数主源
tencent_index_minute(code)指数当日分时(1 分钟粒度),必须已带市场前缀(裸码 000001 会被误判为平安银行)

涨跌分布与涨幅榜​

函数说明
tencent_market_breadth_full()全市场涨跌分布(13 段 + 家数),覆盖全量 A 股(约 5400 只),产出可过分段一致性门禁的完整载荷
tencent_market_breadth_batch()采样估算涨跌分布(约 50 只样本),降级用
tencent_market_top_gainers(limit)全市场涨幅榜 TOP N(L2 实时链路),进程内缓存(盘中 5min / 休市 30min)

行业与板块​

函数说明
tencent_industry_rank_full(board_type)板块排行完整字段(hy/hy2/gn),自动分页(概念 797 个超单页 200 上限),含 30+ 字段
tencent_industry_rank(board_type)行业板块排行精简版(code/name/change_pct)
tencent_block_stocks_sync(board_code)板块成分股列表(含 PE/PB/市值/换手)

逐笔成交​

函数说明
get_tencent_ticks(code)最近一个交易日全部分笔(沪深个股 + ETF),分页上限 300 页 × 70 笔 = 21000 笔

逐笔约束:不支持北交所与指数;收盘后用双快照核对连续竞价段成交额(差额 > 0.1% + 1000 元抛异常); 与 TDX 逐笔互补(TDX 单次上限 2000 条,腾讯可覆盖全天万笔级别)。

落库链路(日频时序)​

腾讯全市场行情每日 15:50 落库至两张表,供后续融合「优先读当日落库」消费:

表语义
tencent_stock_quote_daily时序资产(主),主键 (trade_date, code),按日累积,默认不滚动删除
tencent_stock_staging最新一批 QC 投影,整批替换无历史

融合读源三级链路​

load_tencent_quotes(codes, trade_date) → {code: {行情...}}
  1. 读当日落库:read_quote_map(trade_date, codes, min_coverage=0.6) 命中即返回
  2. 自愈落库再读:覆盖率 < 60% 且 len(codes) >= 500 时触发全市场拉取并落库
  3. 直连 API 兜底:落库链路故障时直连,记 warning

🔴 只允许「最近已收盘交易日」门禁:取数端只有「当前全市场快照」 (无历史模式),故一切写动作(sync_tencent_market_daily 与读路径的 ②自愈)仅在 day == latest_trade_date() and current_or_last_trading_day() == latest_trade_date() 时执行,任一不成立即 skipped(不取数、不落库、如实记 message);①读是只读的, 保持 day <= latest_trade_date() 即可(读任何已收盘日无污染风险)。两条依赖的 日历线在盘中是分离的(current_or_last 09:30 翻页、latest_trade_date 15:30 才翻),因此历史日期回补也被拒绝(2026-10-06 曾因此把 09-30 快照复制进 1177 个历史交易日、655 万行假数据——详见 docs/audits/tencent-quote-pollution-2026-10-06.md)。合法写入窗口只有: 交易日 15:50 定时任务、盘前对上一交易日的补跑、休市日对最近收盘日的自愈 (此时快照即为上一收盘值)。

🔴 安全阀:行数 < 3000 视为接口异常,拒绝落库。

落库主入口​

sync_tencent_market_daily(trade_date, retention_days=0, refresh_staging=True)
  • 幂等(同日重跑只替换)
  • 默认 retention_days=0(不删除历史),因数据起点可能前移到 2010
  • 合并两个数据源:榜单为主(单位已换算),gtimg 补齐 OHLC/昨收/PB/静态PE/涨跌停
  • 不可用于历史回补(取数端无历史模式):历史只能靠 15:50 任务逐日累积

全球市场数据​

由 ext_market_sync(16:40)定时落库至 sina_cross_market_daily(A50 期货 + 离岸人民币走新浪兜底)。

模块覆盖说明
providers_tencent_index.py33 个全球股指含亚洲/美洲/欧洲/其他分类,带 trading_state 交易状态
providers_tencent_forex.py51 个货币对(含金银)OHLC + 买卖价 + 多周期涨跌幅(5d/1m/3m/6m/ytd)+ 52 周高低
providers_tencent_future.py50 个期货/商品品种7 分类(股指/贵金属/基本金属/能源/农业/利率/汇率)
providers_tencent_us_stock.py美股(中概 CDR + 科技 TEC)行情/估值/市值字段
providers_tencent_stock.py全A股分页拉取榜单接口 30+ 字段,约 28 页 × 200 条

注意:腾讯全球目录不含 A50 期货与离岸人民币,这两个标的由新浪兜底 (sina_cross_market_daily,一次请求落两只)。

数据字段映射​

qt.gtimg.cn 返回字段(以 ~ 分隔,索引从 0 起):

位置字段说明
1name名称
3price当前价格
4last_close昨收
5open今开
7 / 8outer_disc / inside_dish外盘 / 内盘(手)
9~18bid1bid5 / bid_vol15买五档价量
19~28ask1ask5 / ask_vol15卖五档价量
31change_amt涨跌额
32change_pct涨跌幅%
33 / 34high / low最高 / 最低
36volume成交量(手)
37amount成交额(万元)
38turnover_pct换手率%
39pe_ttm市盈率(TTM)
43amplitude_pct振幅%
44 / 45float_mcap_yi / mcap_yi流通市值 / 总市值(亿元)
46pb市净率
47 / 48limit_up / limit_down涨停价 / 跌停价
49vol_ratio量比
52pe_static静态市盈率

单位口径:volume 为手、amount 为万元(写入 fox 层前由调用方 ÷1e4 归一为元, 见数据契约 §六)。ETF/LOF 代码另有净值类字段(折溢价/IOPV/单位净值/ 总份额/52 周高低),与个股同位置含义不同,仅在 is_fund_code() 为真时解析。

在降级链中的位置​

数据类型腾讯角色备源
K线(前复权)主源TDX → 新浪
大盘指数主源(单请求全量)TDX 补齐缺失项
估值(PE/PB/市值)主源TDX 财务快照 → 东财 push2
行业排名主源(getRank)新浪 → 东财 → TDX
涨跌分布全市场路径(与 TDX 互补)TDX 全市场快照
资金流向❌ 不提供TDX 主源 → 东财兜底
龙虎榜/解禁/两融❌ 不提供东财独有

注意事项​

提示
  • 腾讯不封IP,可放心批量拉取(客户端已按批 600 只自动切片)
  • 指数、K线(除北交所)、估值、行业排名均以腾讯为主源
  • 涨跌分布优先走 tencent_market_breadth_full() 全市场路径;采样版仅作降级
  • 落库表 tencent_stock_quote_daily 是融合读源的第一级,但不是硬依赖—— 落库链路故障时融合器自愈或直连 API
  • 盘中(未收盘)拒绝写入落库表,防止盘中价被标为收盘价
  • 逐笔成交不支持北交所与指数
  • 全球市场不含 A50 期货与离岸人民币(走新浪兜底)

相关文档​