投资笔记 #013
腾讯财经:被忽视的免费量化数据源
在量化投资的数据获取环节,Tushare、AKShare 往往是最先被提及的工具。但在今天的 ETF 策略开发中,我发现了一个更稳定、更简单的选择——腾讯财经。
🔍 为什么选择腾讯财经
事情要从 AKShare 的连接失败说起。当我尝试使用 AKShare 获取 ETF 历史数据时,频繁遇到 RemoteDisconnected 错误。调研后发现,东方财富服务器对爬虫请求有严格的 IP 风控策略。
转而测试腾讯财经接口时,却出乎意料地顺利:无认证、无限制、秒级响应。
📊 数据覆盖能力
经过系统测试,腾讯财经的数据覆盖情况如下:
| 数据类型 | 覆盖范围 | 起始时间 | 质量 |
|---|---|---|---|
| A股股票 | 全部沪深股票 | 上市至今 | ⭐⭐⭐⭐⭐ |
| ETF基金 | 全部场内ETF | 2015年起 | ⭐⭐⭐⭐⭐ |
| LOF基金 | 全部场内LOF | 上市至今 | ⭐⭐⭐⭐⭐ |
| 指数数据 | 主要宽基指数 | 2015年起 | ⭐⭐⭐⭐ |
| 实时行情 | 延迟15分钟 | - | ⭐⭐⭐⭐ |
关键发现:ETF数据可追溯至2015年,覆盖完整的牛熊周期。对于策略回测而言,10年历史数据已足够验证策略稳健性。
🔧 接口技术解析
腾讯财经提供的是 HTTP JSON 接口,无需注册、无需 Token,直接用:
http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?param=CODE,PERIOD,START,END,COUNT,ADJUST
参数说明:
- CODE:股票代码(如 sh510300、sz159915)
- PERIOD:周期(day/min)
- START/END:起止日期(YYYY-MM-DD)
- COUNT:最大返回条数(最大500)
- ADJUST:复权类型(qfq前复权/hfq后复权)
💻 使用示例
import requests
import pandas as pd
# 获取沪深300ETF历史数据
code = 'sh510300'
url = f'http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?param={code},day,2015-01-01,2024-12-31,500,qfq'
r = requests.get(url)
data = r.json()
# 解析数据
kline = data['data'][code]['qfqday']
df = pd.DataFrame(kline, columns=['date', 'open', 'close', 'low', 'high', 'volume'])
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
print(f"获取到 {len(df)} 条数据")
print(df.head())⚖️ 与其他数据源对比
| 特性 | 腾讯财经 | Tushare Pro | AKShare |
|---|---|---|---|
| 认证要求 | 无需认证 | 需要Token | 无需认证 |
| 调用限制 | 无明确限制 | 积分制 | 易被风控 |
| 数据延迟 | 15分钟 | 实时/延迟 | 15分钟 |
| A股覆盖 | 股票/ETF/LOF | 全品类 | 全品类 |
| 期货/期权 | ❌ | ✅ | ✅ |
| 稳定性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
✅ 优点总结
- 零门槛:无需注册、无需 Token,开箱即用
- 高稳定:相比 AKShare 的频繁风控,腾讯财经连接更稳定
- 免费:完全免费,无调用次数限制(合理范围内)
- 数据质量:前复权数据已处理分红送股,直接可用
- 历史悠久:ETF数据从2015年开始,满足回测需求
❌ 局限性
- 功能单一:仅提供行情数据,无财务数据、无宏观数据
- 无期货期权:不覆盖衍生品市场
- 无资金流:不提供北向资金、主力资金等资金流向数据
- 接口未文档化:非官方 API,存在变更风险
- 单次限制:单次最多返回500条数据,长周期需分多次获取
🎯 适用场景
推荐使用:
• ETF/股票策略回测(需要历史K线)
• 简单的量化策略验证
• 个人研究,非高频调用
不推荐:
• 需要期货/期权数据
• 需要实时资金流数据
• 生产环境高频调用
• ETF/股票策略回测(需要历史K线)
• 简单的量化策略验证
• 个人研究,非高频调用
不推荐:
• 需要期货/期权数据
• 需要实时资金流数据
• 生产环境高频调用
📝 总结
腾讯财经是一个被严重低估的免费数据源。它没有 Tushare 的功能全面,没有 AKShare 的数据丰富,但在"获取 A股/ETF 历史行情"这个单一需求上,它是最简单、最稳定的选择。
对于刚入门的量化研究者,或者只需要基础行情数据的策略,腾讯财经足以支撑从学习到实盘的全流程。当策略需要更丰富的数据(期货、资金流、财务数据)时,再考虑接入 Tushare Pro 等付费数据源。
核心观点:技术选型没有最好,只有最合适。在数据获取环节,"够用且稳定"比"功能丰富但经常失效"更有价值。
相关链接:
• 腾讯财经:https://finance.qq.com/
• 本文代码示例:https://github.com/robertquant/quant-research
• 腾讯财经:https://finance.qq.com/
• 本文代码示例:https://github.com/robertquant/quant-research
提醒:以上技术调研基于公开接口测试,接口可能随时变更。生产环境使用请做好降级方案。