第1章:Level2数据解密——数据接口与获取方式
做量化交易这些年,我见过太多人一上来就扎进策略堆里。结果呢?数据源都没搞清楚,回测跑得飞起,实盘一塌糊涂。今天咱们就聊聊Level2数据的接口和获取方式——这是所有策略的地基。
1.1 主流券商与数据服务商对比
先看一张对比表,心里有个底。
| 服务商 | 数据类型 | 费用 | 接口方式 | 适合人群 |
|---|---|---|---|---|
| 万得(Wind) | 全市场Level2 | 年费较高 | API / 终端 | 机构、专业投资者 |
| 聚宽(JoinQuant) | 沪深Level2 | 按量付费 | Python SDK | 量化开发者 |
| Tushare | 沪深Level2 | 积分制 | HTTP API | 个人、小团队 |
| 券商自研(如华泰、中信) | 自家客户Level2 | 开户免费 | 客户端 / 插件 | 散户、入门用户 |
我个人习惯用聚宽和Tushare搭配。为什么?聚宽的SDK封装得好,Tushare的数据维度全。你想想看,一个做高频策略的人,如果连数据源都选不对,后面全是白费功夫。
1.2 如何申请权限?
申请权限这事儿,说简单也简单,说坑也坑。我踩过几次雷,给你捋一捋。
- 券商渠道:打开你开户券商的APP,搜“Level2”或“十档行情”。一般需要签署风险揭示书,然后开通。嗯,这里要注意——有些券商要求资产达到一定门槛,比如50万。我当初在XX证券申请时,客服说“先生您资产不够”,气得我直接换了家券商。
- 数据服务商渠道:以Tushare为例,注册账号后,在“个人中心”申请Level2权限。需要消耗积分,积分可以通过贡献代码或充值获得。聚宽的话,直接在平台申请试用,通过后会有API Token。
- 机构渠道:万得这类,一般是公司采购。个人用户想用?要么找机构挂靠,要么掏钱买年费。我记得有个朋友为了做研究,自费买了万得一年,花了小两万——心疼归心疼,数据确实稳。
避坑指南:我曾经遇到过一家小数据商,号称“免费Level2”,结果拿到的数据延迟超过5秒,根本没法用。记住:Level2数据有严格的时效性要求,延迟超过1秒就失去意义了。
1.3 Python环境下的API调用入门
好,权限有了,怎么调?我直接上代码。以Tushare为例,这是最常用的入门方式。
# 安装Tushare
# pip install tushare
import tushare as ts
# 设置Token(在Tushare官网注册后获取)
ts.set_token('你的token_here')
# 初始化接口
pro = ts.pro_api()
# 获取某只股票的Level2行情快照
# 以贵州茅台为例
df = pro.stk_level2_snapshot(ts_code='600519.SH', trade_date='20250320')
print(df.head())
这段代码干了什么?说白了就是三件事:连上Tushare、拿到茅台某一天的Level2快照、打印出来看看。我刚开始学的时候,连Token是什么都不懂,折腾了一下午才跑通第一行数据。你想想看,如果连这一步都卡住,后面的策略分析根本无从谈起。
再来看聚宽的调用方式,稍微复杂一点,但功能更强。
# 聚宽SDK调用示例
from jqdatasdk import *
# 登录(需要聚宽账号)
auth('你的账号', '你的密码')
# 获取某只股票的Level2 tick数据
df = get_price('000001.XSHE',
start_date='2025-03-20',
end_date='2025-03-20',
frequency='tick',
fields=['time', 'price', 'volume', 'amount'])
print(df.head())
这里有个细节:聚宽的tick数据是按毫秒级推送的,一天下来数据量巨大。我建议你第一次跑的时候,只取1分钟的数据测试,不然内存容易爆。嗯,别问我怎么知道的——我当年跑过一次全天的tick数据,电脑直接蓝屏了。
1.4 核心知识体系
为了让你更直观地理解本章的知识结构,我画了一张图。
核心要点:数据源选对了,权限申请通了,API调通了,Level2数据的大门才算真正打开。别急着写策略,先把这三步走稳。
我的小建议:如果你是新手,先从Tushare的免费Level2数据开始。等跑通了流程,再考虑升级到聚宽或万得。我当年就是这么过来的——先用免费数据练手,等策略稳定了再上付费数据,省了不少冤枉钱。
好了,这一章就到这里。数据接口和获取方式搞定了,下一章咱们聊聊Level2数据里那些核心字段——比如逐笔成交、委托队列,这些才是真正值钱的东西。