
行情数据从哪里来
做量化交易,第一步不是写策略,而是搞到数据。没有数据,再牛的模型也是空中楼阁。数据接口分两类:免费的和付费的。免费接口适合个人练手,付费接口适合机构或者对数据质量要求高的玩家。
免费数据接口
Tushare 是老牌选手,覆盖股票、基金、期货、期权。早期完全免费,现在积分制,基础行情每天能调几百次。适合做日线级别回测。它的优点是文档全、社区大,遇到问题容易搜到答案。缺点是分钟级数据要攒积分,实时数据基本没有。

AkShare 是后起之秀,完全开源免费。股票、期货、外汇、宏观经济数据都能抓。它的数据源来自各大公开网站,更新速度快。缺点是非官方接口,偶尔会因为目标网站改版而失效。适合做因子挖掘和另类数据。
Baostock 提供历史K线,免费无限制。数据质量中规中矩,适合初学者。它不支持实时行情,只能做历史回测。
Yahoo Finance 和 Alpha Vantage 是海外选手。做美股、外汇、加密货币量化时常用。Alpha Vantage 免费版每分钟5次请求,日内数据只有最近几个月。
付费数据接口
Wind 和 Choice 是机构标配。数据全、质量高、有实时行情。Wind 一年费用几万到几十万,个人玩家很少碰。Choice 相对便宜,但也要大几千。
聚宽、米筐、优矿这些在线平台自带数据。你直接在它们的环境里写策略,不用自己维护数据库。缺点是策略跑在别人服务器上,有隐私和延迟问题。
Level-2 行情接口。国内交易所的 Level-2 数据包含逐笔成交和委托队列。通达信、同花顺都有付费接口。做高频和盘口策略必须用 Level-2。
券商交易接口怎么选
数据有了,下一步是下单。券商接口决定了你的策略能不能自动执行。国内券商接口分三种:官方API、第三方平台、模拟接口。
官方API
中泰证券 XTP。国内最成熟的量化交易接口之一。支持股票、两融、期权。提供 C++ 和 Python 接口。延迟低,稳定性好。开通门槛通常要求资产50万以上,部分营业部可以谈。
华鑫证券奇点。速度极快,专门为量化设计。支持股票和期货。很多私募用它的通道做日内高频。开通需要临柜,审核较严。
东方财富 Choice 接口。主要面向机构和专业投资者。支持股票和期货交易。接口文档详细,但费用不低。
恒生电子 PTrade。老牌交易系统,支持股票、期货、期权。个人可以申请试用,正式使用需要券商开通。它的优点是功能全,缺点是系统重,启动慢。
第三方平台
QMT 和 MiniQMT。迅投开发的量化交易终端。支持股票、期货、期权。QMT 是完整客户端,MiniQMT 是轻量级接口。个人用户可以通过券商开通,通常要求资产50万。QMT 支持 Python 策略,回测和实盘一体。
Ptrade。恒生电子的产品,和 QMT 类似。支持 Python 编写策略。部分券商对个人开放,门槛也是50万左右。它的社区活跃度不如 QMT。
掘金量化。支持股票、期货、期权。提供 Python SDK。个人可以免费使用模拟交易,实盘需要券商开通。它的数据接口和交易接口统一,用起来方便。
期货专用接口
CTP。上期技术的综合交易平台。国内期货量化标配。支持所有商品期货和金融期货。提供 C++ 接口,Python 通过包装库调用。CTP 是免费的,但需要期货公司开通。它的优点是稳定、延迟低,缺点是 API 复杂,新手容易踩坑。
飞马、飞鼠、易盛。这些是期货公司的专用接口。飞马支持郑商所,飞鼠支持大商所,易盛支持上期所。它们比 CTP 更快,但只针对特定交易所。
接口选择的核心逻辑
个人玩家先想清楚三件事:资金量、交易频率、策略类型。
资金量小于50万,用免费数据加模拟接口。Tushare 做回测,掘金做模拟。先跑通流程,别急着上实盘。
资金量50万到200万,用 QMT 或 Ptrade。数据可以用 AkShare 加付费 Level-1。期货用 CTP。这个阶段重点是稳定执行,别追求极致速度。
资金量200万以上,考虑 XTP 或奇点。数据上 Wind 或 Choice 加 Level-2。期货用飞马或飞鼠。这个阶段拼的是延迟和稳定性。
交易频率低于日线,任何接口都够用。分钟级需要 Level-1 加 CTP 或 QMT。秒级和毫秒级必须上 Level-2 加专用通道。
策略类型决定接口组合。趋势跟踪用日线数据加普通接口。套利用分钟数据加低延迟接口。做市用逐笔数据加极速接口。
代码演示 用 Python 调取 Tushare 和 CTP
# Tushare 获取股票日线
import tushare as ts
ts.set_token('你的token')
pro = ts.pro_api()
df = pro.daily(ts_code='000001.SZ', start_date='20240101', end_date='20241231')
print(df.head())
# CTP 获取期货行情(简化版)
from ctpwrapper import MdApi
class MyMd(MdApi):
def onRtnDepthMarketData(self, data):
print(data['InstrumentID'], data['LastPrice'])
md = MyMd()
md.createFtdcMdApi()
md.registerFront('tcp://180.168.146.187:10131')
md.init()
md.subscribeMarketData(['rb2501'])
避坑指南
免费接口别用在实盘。AkShare 和 Tushare 的数据有延迟,盘中信号可能已经错过。
券商接口要问清是否支持 Python。有些券商只给 C++ 接口,个人开发者用起来痛苦。
期货 CTP 有多个版本。生产环境和评测环境地址不同,别搞混。
QMT 和 Ptrade 需要券商开通权限。不是下载软件就能用,先联系客户经理。
数据接口和交易接口要匹配。用日线数据做分钟策略,等于用菜刀砍大树。
先跑模拟盘三个月。实盘和模拟的滑点、延迟、成交率完全不同。模拟盘赚钱不代表实盘能赚。
接口只是工具。策略逻辑才是核心。花一周选接口,花三个月打磨策略。顺序别搞反。