Skip to main content
交易数据:来源与清洗
blog 高级 · ~1 min read

交易数据:来源与清洗

策略好不好取决于背后的数据。学从哪拿交易数据、什么让它脏、怎么在回测前清洗。

· Lead Editor · · ~1 min read
#algorithmic#quant-trading
本文为英文。需要查看中文翻译吗?

交互工具在翻译视图中可能无法使用。

交易数据:来源与清洗

垃圾进,垃圾出。每个回测的可信度只跟底下的数据一样。

任何信号、任何模型、任何策略之前——是数据。而市场数据默认是脏的:缺口、拆分、坏 tick、时区错误、幸存者偏差,都合伙让你的回测撒谎。清洗数据是一半的工作。

交易数据来源

来源 适合 成本
Yahoo Finance / Stooq 美股日线、原型化 免费
Polygon.io、Alpha Vantage 日内股票、基本面 免费增值
Binance / Coinbase / Kraken API 加密货币 OHLCV 和逐笔 免费
Interactive Brokers API 多资产实盘 + 历史 经纪商费
Tiingo、EOD Historical 全球日终 订阅
Databento、Algoseek tick 级、期货、期权 付费

把粒度匹配你的策略:微观结构用 tick,日内用 1 分钟,波段用日线。别为你永远不用的 tick 付钱。

脏数据清单

  1. 缺失 bar——交易所假日、行情中断。只在合理时前向填充或插值
  2. 坏 tick——飙到零或荒谬值。用滚动 z 阈值过滤(比如拒绝 |z| > 10)
  3. 股票拆分——原始价格会显示假的 50% 跌幅。永远用拆分调整收盘
  4. 分红——总回报序列跟价格序列不同。决定你要哪个
  5. 时区——混 UTC 和本地,你的 join 会静默断裂。统一 UTC
  6. 前视偏差——用了实际是明天开盘的收盘时间戳。确认每个 bar 的时间戳是开始,不是结束

幸存者偏差

如果你的历史标的是"今天的沪深 300 成分股",回测会排除每家破产或退市的公司。收益看起来人为地高,因为输家消失了。

修法:用时间点成分股列表(有的话),或加退市收益代理。免费数据几乎从不包含这个——免费数据的隐性成本。

前视与同步

join 多个品种时,对齐要紧。常见 bug:用品种 A 的日收盘在同一天品种 B 的收盘上入场——实盘不可能。

规则:每个 bar 只能用 bar 收盘时可用的信息。任何从收盘价本身派生的特征用 .shift(1)

清洗管道

df = df.tz_localize('UTC').tz_convert('UTC')
df = df[~df.index.duplicated(keep='first')]
df = df.resample('1min').last().ffill()
df['ret'] = np.log(df['close']).diff()
z = (df['close'] - df['close'].rolling(100).mean()) / df['close'].rolling(100).std()
df = df[z.abs() < 10]

回测前健全性检查

  1. 画清洗后的序列——像不像你认识的那张图?
  2. 查买入持有的年化收益——跟公开数字对得上吗?
  3. 验证没漏进未来特征(跑个"应当为零"的滞后检查)
  4. 确认每个时间戳的标的成员跟现实匹配

小结

免费数据是你用过的最贵的数据。幸存者偏差、坏 tick、前视泄漏悄悄抬高每个回测。在信任何策略结果之前,投资干净的时间点数据和严格清洗管道——因为没有信号能在垃圾数据上活下来。

相关市场数据由 TradingView 提供。

分享:
𝕏 f in r/
·
📝

我的笔记

登录后可在本文保存笔记并与社区分享。

✓ 已核查事实 审阅人 Timi Chen, 编辑顾问 · 发布于: 2026-06-03 · 编辑政策
由 Marcus Cole 起草 · 由 Timi Chen 于 2026-06-03 审核 · 最后检查于 2026-06-03

教育内容 · 非财务建议 · 风险自担

下一篇推荐

algorithmicquant-trading 2026-07-01

Quant Research Workflow: Jupyter Notebooks and Feature Engineering

A repeatable quant research workflow using Jupyter notebooks covers feature engineering, validation, and notebook hygiene that produces deployable signals.

阅读更多 →

Smart Recommendations