一、美股数据概览:从零开始认识这个市场
做量化交易这些年,我接触过不少数据源。说实话,美股数据这块水挺深的。今天咱们就聊聊,到底该怎么看待美股市场,数据从哪来,以及哪些坑不能踩。
1.1 美股市场:一个24小时都在转的机器
美股市场,全称美国证券市场。它跟A股最大的区别是什么?我个人的体会是——流动性极强,品种极其丰富。
你想想看,光是纽交所和纳斯达克两个交易所,就有超过8000只股票。这还不算ETF、期权、期货这些衍生品。我刚开始做美股量化时,光是把所有股票代码整理一遍,就花了两天时间。
美股交易时间也很有意思:
- 盘前交易:美东时间 4:00 - 9:30
- 盘中交易:美东时间 9:30 - 16:00
- 盘后交易:美东时间 16:00 - 20:00
嗯,这里要注意。盘前盘后的成交量通常只有盘中的十分之一。如果你拿盘后数据做策略回测,很容易被流动性坑到。我曾经就犯过这个错,回测曲线漂亮得不行,实盘一跑直接崩了。
1.2 常见数据源:选对工具,事半功倍
做美股数据清洗,第一步就是选数据源。我这些年用过不下十种,真正靠谱的就下面这几个:
| 数据源 | 免费额度 | 数据质量 | 适合场景 |
|---|---|---|---|
| Yahoo Finance | 完全免费 | 中等 | 个人研究、快速原型 |
| Alpha Vantage | 每天500次请求 | 较高 | 中小规模策略 |
| IEX Cloud | 每月50000次 | 高 | 专业级应用 |
Yahoo Finance:入门首选
说实话,Yahoo Finance 是我用得最多的免费源。它数据全,接口简单,用 yfinance 这个库几行代码就能拿到数据。
import yfinance as yf
# 获取苹果公司最近一年的日线数据
aapl = yf.download('AAPL', start='2023-01-01', end='2023-12-31')
print(aapl.head())
但有个坑——Yahoo Finance 的数据偶尔会缺失。比如遇到股票拆分、分红调整时,历史数据可能对不上。我建议做回测前,一定要做数据校验。
Alpha Vantage:免费中的战斗机
Alpha Vantage 提供的数据更干净一些。它支持分钟级数据,这对做高频策略很有用。不过每天500次的请求限制,说实话有点紧。
from alpha_vantage.timeseries import TimeSeries
ts = TimeSeries(key='YOUR_API_KEY', output_format='pandas')
data, meta_data = ts.get_daily(symbol='MSFT', outputsize='full')
print(data.head())
我个人习惯把 Alpha Vantage 的数据作为验证源。当 Yahoo Finance 的数据出现异常时,用 Alpha Vantage 交叉验证一下,能避免很多错误。
IEX Cloud:专业玩家的选择
如果你做的是实盘交易,我强烈建议用 IEX Cloud。它的数据延迟低,质量高,而且提供很多深度数据,比如订单簿、交易明细等。
不过价格不便宜。免费版每月只有50000次请求,做回测的话几天就用完了。我一般只在生产环境用 IEX Cloud,研究阶段还是用免费源。
1.3 数据获取的合规性与伦理:别踩红线
这块内容,说实话很多人不重视。但我见过太多人因为数据合规问题翻车了。
- 不要爬取需要付费的数据。很多数据源在条款里明确禁止爬虫。
- 不要将免费数据用于商业用途。Yahoo Finance 的数据只能用于个人研究。
- 注意数据使用频率。高频请求可能导致你的IP被封。
我曾经帮一个朋友排查过问题。他写了个爬虫,每分钟请求一次 Yahoo Finance,跑了三天。结果IP被永久封禁,整个办公室的网络都访问不了 Yahoo Finance 了。嗯,这个教训挺深刻的。
合规性方面,我建议你记住三条原则:
- 读条款:每个数据源都有使用条款,花10分钟读完,能省很多麻烦。
- 控制频率:免费源一般建议每秒不超过1次请求。
- 尊重版权:数据也是有版权的,别拿别人的数据去卖钱。
1.4 知识体系总览
说了这么多,咱们用一张图来总结一下本章的核心内容:
这张图把本章的核心逻辑串起来了。说白了,做美股数据清洗,你得先懂市场,再选工具,最后别忘了合规。这三块缺一不可。
📌 本章小结:
- 美股市场流动性强、品种多,交易时间分三段
- Yahoo Finance 适合入门,Alpha Vantage 适合验证,IEX Cloud 适合生产
- 数据合规是底线,别为了省事踩红线
- 交叉验证 + 控制频率 = 稳定数据获取
好了,这一章就聊到这。数据源选好了,下一步就是怎么把这些数据清洗干净。咱们下一章见。