A股量化策略数据源获取全指南:从免费API到专业数据供应商

1次阅读
没有评论

共计 1364 个字符,预计需要花费 4 分钟才能阅读完成。

image.webp

量化策略的成败,数据质量是关键。好的数据必须具备三个核心特性:完整性(避免缺失关键时间点)、准确性(字段值与真实交易一致)、时效性(实时行情延迟不超过 3 秒)。下面我们就从数据源选择到实战处理,一步步拆解 A 股数据获取的全流程。

A 股量化策略数据源获取全指南:从免费 API 到专业数据供应商

一、三类数据源横向对比

1. 免费 API:适合验证策略雏形

  • Tushare Pro:需 官网注册 获取 token,免费版限 500 次 / 日调用。特别注意:
  • 获取日线需 pro.daily() 接口,但 2017 年前数据需付费
  • 财务数据字段名与商业库存在差异(如 net_profit 对应 Wind 的NET_PROFIT

  • AKShare:无需注册,但请求频繁会触发 IP 封禁。推荐用以下方式获取实时数据:

import akshare as ak
from retrying import retry

@retry(stop_max_attempt_number=3, wait_random_min=1000, wait_random_max=5000)
def get_realtime_data(stock_code):
    return ak.stock_zh_a_spot(symbol=stock_code)

2. 券商接口:低延迟但门槛高

华泰 MATIC为例:

  1. 开通两融账户并签署量化协议
  2. 申请 Level2 行情权限(需验资 50 万以上)
  3. 通过 websocket 接收逐笔成交数据,示例字段:
字段 含义
bid_price1 买一价
ask_volume2 卖二量(股数)

3. 商业数据库:专业但成本高

横向对比三大供应商:

功能 Wind 同花顺 i 问财 通联数据
历史日线 1990 年至今 2005 年至今 复权因子可定制
分钟级数据 支持 1 /5/15 分钟 仅 5 分钟 含盘口快照
财务数据更新 T+1 T+2 支持 XBRL 格式

二、Python 实战:从获取到清洗

1. 复权计算演示

import pandas as pd

# 假设 df_raw 包含原始日线(columns=['date','close','volume'])df = df_raw.merge(ak.stock_zh_a_daily(symbol='600519', adjust='hfq'),  # 获取后复权因子
    on='date', how='left'
)
# 计算复权价格
df['adj_close'] = df['close'] * df['hfq_factor'] / df['hfq_factor'].iloc[-1]

2. 时区处理关键点

A 股分钟数据需统一为 UTC+8:

df['time'] = pd.to_datetime(df['datetime']).dt.tz_localize('Asia/Shanghai')

三、新手避坑指南

  • 限频问题 :免费 API 建议添加time.sleep(random.uniform(0.1, 0.5)) 随机延迟
  • 财务字段对齐 :特别注意total_assets 在不同源可能指合并报表或母公司报表
  • ST 股票处理:因子计算时应过滤df[df['name'].str.contains('ST')==False]

思考延伸

  1. 数据验证模块可设计规则:
  2. 检查当日涨跌幅超过 15% 的异常波动
  3. 对比成交量与 20 日均值的偏离程度
  4. ST 股票在因子回测时通常需要特殊处理,你会选择直接剔除还是单独标记?

最后提醒:商业数据源虽然强大,但新手建议先用免费数据跑通策略逻辑,等实盘时再考虑采购专业服务。

正文完
 0
评论(没有评论)