跳转至

导言

如何实现能完全双手离开键盘的自动化量化交易平台(Automated Quantitative Trading Platforms, AQTP):

  1. 实惠的一手数据获取;
  2. 平台无关的交易策略编写
  3. 全自动化流程(支持回测和实盘)

数据获取

开发量化金融系统(如A股交易)的第一步确实是获取高质量、稳定、合法的一手数据。以下是获取A股市场数据的几种主流方法,从免费到付费、从简单到专业,供你选择:


✅ 一、免费数据源(适合学习/小规模回测)

1. Tushare(推荐入门)

  • 官网:https://tushare.pro
  • 特点:
  • 免费注册,基础数据免费(需积分,可通过分享或邀请获取)
  • 支持Python接口,数据包括日K线、分钟线、财务数据、指数、龙虎榜等
  • 社区活跃,文档齐全

  • 示例代码:

    import tushare as ts
    ts.set_token('你的token')
    pro = ts.pro_api()
    df = pro.daily(ts_code='000001.SZ', start_date='20230101', end_date='20231231')
    print(df)
    

⚠️ 注意:免费版有调用频率限制,不适合高频或生产环境。


2. AKShare(纯免费,无Token)

  • GitHub:https://github.com/akfamily/akshare
  • 特点:
  • 完全免费,无Token限制
  • 数据来源为公开网页(如新浪财经、东方财富),稳定性依赖网页结构
  • 支持A股、期货、基金、宏观等
  • 示例:
    import akshare as ak
    stock_zh_a_hist_df = ak.stock_zh_a_hist(symbol="000001", period="daily", start_date="20230101", end_date="20231231")
    print(stock_zh_a_hist_df)
    

⚠️ 缺点:可能因网站改版导致接口失效,不适合生产环境。


3. Baostock(免费专业级)

  • 官网:http://baostock.com
  • 特点:
  • 无积分、无限制、完全免费
  • 提供A股、指数、财务、分钟线等
  • 数据质量较好,适合回测
  • 示例:
    import baostock as bs
    bs.login()
    rs = bs.query_history_k_data_plus("sh.600000",
        "date,code,open,high,low,close,volume",
        start_date='2023-01-01', end_date='2023-12-31', frequency="d")
    data_list = []
    while (rs.error_code == '0') & rs.next():
        data_list.append(rs.get_row_data())
    bs.logout()
    

✅ 二、付费专业数据源(适合实盘/生产系统)

1. 聚宽(JoinQuant) / 米筐(RiceQuant) / 掘金(MyQuant)

  • 特点:
  • 集成开发环境 + 数据 + 回测 + 实盘(部分支持)
  • 数据质量高、稳定、有历史tick数据
  • 适合不想自己搭数据管道的用户
  • 缺点:
  • 实盘需付费或满足条件
  • 数据不能导出到外部系统(受平台限制)

适合策略研究 → 回测 → 实盘一体化开发。


2. 万得(Wind) / 同花顺iFinD / 东方财富Choice

  • 特点:
  • 机构级数据,最全最准
  • 支持API(Python/Matlab等)
  • 提供Level2行情、资金流、研报、宏观等
  • 缺点:
  • 昂贵(Wind年费约2~5万起)
  • 个人用户申请较难(通常需企业资质)

适合专业机构或资金充足的个人开发者。


3. 券商L2行情接口(如华泰、中信、国泰君安等)

  • 部分券商提供Level2行情API(需开户+申请)
  • 数据包括:逐笔委托、逐笔成交、买卖十档等
  • 通常需签署协议 + 编写C++/Python接口
  • 适合高频或盘口策略开发者

例如:华泰的htsc、中信的citics、聚源的jqdata等。


✅ 三、自建数据管道(高阶玩家)

1. 爬虫抓取(不推荐用于生产)

  • 来源:新浪财经、东方财富、雪球等
  • 风险:
  • 反爬机制(IP封禁、验证码)
  • 数据不完整、延迟、格式不稳定
  • 法律风险(违反网站Robots协议或服务条款)

仅适合学习,不推荐用于实盘系统。


2. 订阅交易所原始数据(最高级)

  • 上交所/深交所提供原始行情数据(需申请+付费)
  • 需要FIX/二进制协议解析能力
  • 适合专业量化团队或私募

1. 上交所/深交所 Level-1 行情(标准行情)

  • 内容:每3秒快照(五档买卖盘+最新价、成交量等)
  • 年费(机构):约 2万~5万元/交易所
  • 个人:通常无法直接申请,可通过券商免费行情接口获取(延迟15分钟或实时但受限)

✅ 举例:你开户的券商APP里看到的“实时行情”,就是券商统一采购后免费提供给客户的Level-1。


2. 上交所/深交所 Level-2 行情(深度行情)

这是量化交易者最关注的数据,包含:

  • 买卖十档盘口
  • 逐笔成交(Tick数据)
  • 委托队列(部分)
  • 大单统计、资金流向等衍生数据

💰 费用(机构标准):

项目 上交所 Level-2 深交所 Level-2 合计(双所)
基础行情年费 ¥80,000 ~ ¥120,000 ¥60,000 ~ ¥100,000 ¥14万~22万
行情接入开发费(可选) ¥1万~5万 ¥1万~5万
数据商服务费(如万得/同花顺) +¥3万~10万/年 +¥3万~10万/年 +¥6万~20万

总计:机构用户约 20万~40万/年(双交易所Level-2全量数据)


3. 原始订单簿/逐笔委托(L2增强版 or L3)

  • 内容:每一笔挂单、撤单、成交的完整流水(交易所原始二进制流)
  • 用途:超高频策略、订单流分析、冰山单识别等
  • 费用:50万~100万+/年,仅对顶级私募或券商自营部门开放
  • 接入难度:需专用设备+协议解析(UDP组播+FAST协议)


✅ 四、数据存储建议

获取数据后,建议存储到本地数据库,便于回测和分析:

  • SQLite:轻量,适合个人
  • MySQL / PostgreSQL:结构化存储,支持并发
  • InfluxDB / TimescaleDB:时序数据库,适合行情数据
  • HDF5 / Parquet:适合批量回测读取

示例(存入SQLite):

import sqlite3
conn = sqlite3.connect('stock_data.db')
df.to_sql('daily_k', conn, if_exists='replace', index=False)


✅ 推荐路线(根据你的阶段)

阶段 推荐方案
学习/入门 Tushare免费版 + AKShare + Baostock
回测/研究 Tushare Pro / 聚宽 / 米筐
实盘/生产 券商L2接口 + Wind/Choice(如预算充足)
高频/专业 交易所原始数据 + 自建行情系统

🚀 下一步建议

  1. 注册 Tushare 或 AKShare,跑通第一个数据获取脚本
  2. 存储到本地数据库
  3. 用 pandas 做简单分析(如均线、收益率)
  4. 接入回测框架(如 backtrader, vnpy, zipline
  5. 逐步过渡到实盘(通过券商API或量化平台)

✅ 个人/小团队替代方案(低成本获取L2数据)

方式 费用 数据质量 适合人群
券商L2行情API(如华泰、国泰君安) ¥0~3000/年(部分免费) 实时L2,但限本账户使用 个人实盘交易者
Tushare Pro(L2数据) ¥2000~5000/年(按积分包) 日频/分钟级L2(非实时) 回测/研究
聚宽/掘金/米筐(平台内使用) ¥5000~20000/年(会员) 实时L2 + 回测环境 量化策略开发者
Wind金融终端(机构版) ¥2万~5万/年(起) 最全L1/L2 + 宏观/研报 专业投研团队
同花顺iFinD / Choice ¥1万~3万/年 类似Wind,性价比高 中小型机构

🎯 推荐个人用户路径: 1. 先用 Tushare Pro 或 AKShare 做策略原型 2. 进阶用 聚宽/掘金平台 获取实时L2回测 3. 实盘前开通 支持L2 API的券商账户(如华泰、中信)


💡 举个实际例子:

某私募基金(注册资本1000万): - 向“通联数据”采购双交易所Level-2行情:¥18万/年 - 向“万得”采购宏观+财务数据:¥8万/年 - 自建行情接收服务器+开发团队:¥20万+ - 总成本第一年约50万+

某个人量化开发者: - Tushare Pro年费:¥2000 - 掘金量化平台会员:¥6000 - 券商账户(免费L2):¥0 - 总成本:¥8000以内


⚖️ 法律与合规提醒

  • 严禁将交易所原始数据转售、分发、用于非授权用途
  • 使用数据商API时,需遵守其《用户协议》(如禁止缓存超过30天、禁止多人共享)
  • 实盘交易必须通过持牌券商接口(如CTP、OST、券商专用API)

✅ 总结:你要花多少钱?

你的身份 推荐方案 年成本估算
学生/爱好者 AKShare + Tushare免费 ¥0
个人开发者(回测) Tushare Pro + 掘金 ¥2000~8000
个人实盘交易者 券商L2 + 聚宽/米筐 ¥0~10000
小型私募/团队 Wind/Choice + 券商API ¥3万~10万
专业高频团队 交易所原始L2 + 自建系统 ¥30万~100万+

📌 建议
除非你做超高频或订单流策略,否则Level-2分钟级或日频数据已足够覆盖90%的量化策略(如多因子、动量、反转、机器学习选股等)。不必一开始就追求原始行情。

评论