第 3 章 · 02 数据源与数据路由


文档摘要

第 3 章 · 02 数据源与数据路由 本节摘要:上一节你分清了市场、数据源、券商账户,本节深入「数据源」。Vibe-Trading 支持六大外部数据源——Tushare(A 股 + 基本面)、OKX 与 CCXT(加密)、yfinance(全球股票 + 基准)、AKShare 与 Futu(补充覆盖)——外加一个 本地加载器读你自己的 CSV/Parquet/DuckDB。每种源适合什么场景、覆盖什么字段、要不要 token,本节一一讲清。然后是数据路由:加密对用大写连字符格式(如 ),混合市场研究优先用 让系统按符号自动路由,而每个市场仍保留自己的交易规则。读完本节,你能正确选择数据源,并理解为什么「公开源适合入门、可选 key 源适合稳定研究、本地数据最可控」。

第 3 章 · 02 数据源与数据路由

本节摘要:上一节你分清了市场、数据源、券商账户,本节深入「数据源」。Vibe-Trading 支持六大外部数据源——Tushare(A 股 + 基本面)、OKX 与 CCXT(加密)、yfinance(全球股票 + 基准)、AKShare 与 Futu(补充覆盖)——外加一个 local 本地加载器读你自己的 CSV/Parquet/DuckDB。每种源适合什么场景、覆盖什么字段、要不要 token,本节一一讲清。然后是数据路由:加密对用大写连字符格式(如 BTC-USDT),混合市场研究优先用 source="auto" 让系统按符号自动路由,而每个市场仍保留自己的交易规则。读完本节,你能正确选择数据源,并理解为什么「公开源适合入门、可选 key 源适合稳定研究、本地数据最可控」。

内容来源:原项目中文入门教程(第 6 章)与英文文档 tools/data-sources 合并改写。

学习目标

阅读完本节,你应当能够:

  1. 列举 Vibe-Trading 支持的六大数据源(Tushare/OKX/CCXT/yfinance/AKShare/Futu)与 local 本地加载器。
  2. 说明每种数据源适合什么场景、覆盖什么市场、需不需要 token。
  3. 理解标的符号约定(加密用大写连字符如 BTC-USDT),并知道混合市场研究为何优先用 source="auto"
  4. 区分四类数据源(公开源/可选 key 源/加密交易所源/本地数据)的优缺点。
  5. 解释为什么「公开源适合入门、可选 key 源适合稳定研究、本地数据最可控」。
  6. 理解 **fallback(降级)**机制——某个源不可用时,loader 会尝试备用源。

一、数据源全景:六个外部源 + 本地

Vibe-Trading 的数据路由是「provider-aware(感知数据提供方)」的——它知道每个符号该去哪个源拉,混合符号时可以自动路由。当前支持的外部数据源:

数据源 主要覆盖 典型标的 需要 token
Tushare 中国市场 + 基本面工作流 600519.SH000001.SZ
OKX 加密货币 BTC-USDT 否(公开行情)
CCXT 多家加密交易所(统一接口) BTC-USDTETH-USDT 部分
yfinance 全球股票 + 常见基准 AAPLSPY
AKShare 中国、香港及市场特定补充 A 股、港股
Futu 中国、香港及专业行情 港股、A 股 是(开户)

外加一个 local 本地加载器,读你自己的 CSV、Parquet 或 DuckDB 数据。

二、按场景选数据源

把数据源按「使用门槛 + 适合场景」分四类,更容易选:

公开行情源:适合入门

  • 代表:yfinance、AKShare。
  • 优点:启动门槛低,无需 token,装好就能跑。
  • 缺点:覆盖、速率、复权方式、字段质量、可用性会随来源变化;部分源有访问频率限制。
  • 适合:入门研究、普通价格数据、快速试跑、教学演示。

💡 从公开源开始:第一次跑通研究任务,建议用 yfinance(全球股票)或 AKShare(A 股),零门槛。等熟悉流程后,再换更稳定的付费源。

可选 key 数据源:适合稳定研究

  • 代表:Tushare、Futu。
  • 优点:字段更丰富(指数成分、财务数据、基本面字段、专业行情)、更稳定、复权更规范。
  • 缺点:需要申请 token 或开户付费。
  • 适合:更严肃的研究、基本面富化、A 股的财务字段分析、需要长期稳定复现的实验。

💡 什么时候该上 token:A 股的基本面富化(ROE、市盈率、营收等)和某些 Tushare 专属工作流必须有 TUSHARE_TOKEN。其他大量工作流(港股、美股、加密、文档、日志、静态分析)无需付费 key。

加密交易所源:7×24 实时

  • 代表:OKX、CCXT。
  • 优点:加密市场 7×24 交易,数据通常免费、实时、粒度细(支持分钟级甚至 tick)。
  • 缺点:只覆盖加密;不同交易所字段略有差异。
  • 适合:加密策略研究、跨交易所套利、24 小时高频分析。

本地数据:最可控

  • 代表:local loader。
  • 优点:最可控,完全可复现;支持清洗后的历史数据、离线研究、自定义字段。
  • 缺点:需要自己准备数据(下载、清洗、对齐)。
  • 适合:清洗后的历史数据、离线研究、可复现实验、对接自有数据仓库。

💡 可复现实验的秘诀:如果你想让一个回测三个月后还能精确复现,把当时拉到的数据存到 local,后续用 source="local" 重跑。这样不受外部源更新的影响。

三、组合市场:跨市场研究

有时候你的策略会同时涉及多个市场——比如「SPY + BTC-USDT 动量轮动」。这时单一数据源搞不定,需要组合市场。

Vibe-Trading 用 CompositeEngine(组合引擎)处理跨市场研究:同一个策略里同时持有股票、加密、期货时,不同市场由不同子引擎处理,数据由不同源拉取。

组合策略:SPY(全球股票)+ BTC-USDT(加密) │ ├── SPY → yfinance 拉 → global_equity 引擎处理 └── BTC-USDT → OKX 拉 → crypto 引擎处理 ↓ CompositeEngine 协调

这种情况下,你不需要手动为每个标的指定源——让 source="auto" 自动路由即可。

四、符号约定与自动路由

数据路由有几个重要约定:

  • 加密对用大写连字符格式:如 BTC-USDT(不是 btcusdtBTC_USDTBTCUSDT)。这是项目识别「这是加密标的」并路由到 OKX/CCXT 的依据。
  • A 股带交易所后缀:如 600519.SH(上交所)、000001.SZ(深交所)。
  • 美股用字母代码:如 AAPLMSFT
  • 混合市场优先用 source="auto":让系统按符号格式自动判断该用哪个源。
{ "codes": ["AAPL", "BTC-USDT", "600519.SH"], "source": "auto" }

上面这个配置里,AAPL 会路由到 yfinance,BTC-USDT 路由到 OKX,600519.SH 路由到 Tushare(若配置了 token)或 AKShare(降级)。这正是 provider-aware 路由的价值。

💡 什么时候手动指定 source:大多数情况用 auto 即可。只有当你想强制用某个特定源(比如研究要求用 Tushare 的复权方式),才手动指定 source="tushare"

五、fallback(降级)机制

loader 有一个贴心设计:当某个源不可用时,会尝试 fallback 到备用源。比如你指定 Tushare 拉 A 股,但 token 过期了,loader 可能降级到 AKShare 拉公开数据,让研究不至于完全卡住。

降级的好处是「尽量跑通」,但也要注意:

  • 降级源的字段可能更少:比如 AKShare 可能没有 Tushare 的某些财务字段。
  • 降级源的数据质量可能不同:复权方式、缺失值处理可能有差异。

所以严肃研究时,建议显式指定源 + 沉淀数据到 run dir(作为 artifact),这样事后复查时用的是当时那份数据,不受后续源变化影响。

⚠️ 降级是「尽量跑通」的容错机制,不是「保证数据一致」的机制。需要严格复现的实验,优先用 local 本地数据。

六、本地数据怎么用

local loader 读你自己的数据,支持的格式:

  • CSV:最常见的文本格式,适合中小规模。
  • Parquet:列式存储,适合大规模数据,读取快。
  • DuckDB:嵌入式数据库,支持 SQL 查询,适合复杂分析。

本地数据需要符合项目的标准列约定:open/high/low/close/volume,可选 amountvwap。日期、标的代码也要按项目格式对齐。

💡 本地数据的价值:对抗「两次运行数据不一致」。Vibe-Trading 在 Ground 阶段会把拉到的数据沉淀到 run dir,本质上就是把外部源的数据「本地化」,保证可复现。如果你一开始就用 local,就等于跳过了这个沉淀步骤。

七、数据源选择的实战建议

把本节汇总成几条实战建议:

  1. 入门从公开源开始:yfinance 或 AKShare,零门槛跑通。
  2. A 股基本面要 token:Tushare 是 A 股基本面富化的主力,需要 TUSHARE_TOKEN
  3. 加密用交易所源:OKX 或 CCXT,数据免费且实时。
  4. 混合市场用 auto:不要手动为每个标的指定源,让路由自动处理。
  5. 可复现用 local:严肃实验把数据存本地,跳过外部源不确定性。
  6. 降级是容错不是保证:严肃研究显式指定源 + 沉淀 artifact。

本节要点回顾

  1. 六大数据源:Tushare(A 股 + 基本面)、OKX/CCXT(加密)、yfinance(全球股票 + 基准)、AKShare(A 股/港股补充)、Futu(港股/专业行情),加 local 本地加载器。
  2. 四类划分:公开源(入门)、可选 key 源(稳定研究)、加密交易所源(7×24)、本地数据(最可控)。
  3. 符号约定:加密用大写连字符(BTC-USDT),A 股带后缀(600519.SH),美股用字母(AAPL)。
  4. 自动路由:混合市场优先 source="auto",系统按符号格式选源。
  5. 组合市场:CompositeEngine 让同一策略里不同市场由不同子引擎处理。
  6. fallback 降级:某源不可用时尝试备用源,是容错而非保证。
  7. 本地数据:支持 CSV/Parquet/DuckDB,标准列 open/high/low/close/volume,最适合可复现实验。
  8. 数据源完全安全:只读历史,不连账户,不下单,可随意切换混用。

⚠️ 数据源只提供历史数据,不构成投资建议。即使数据准确,基于它的回测结果也不保证未来收益。

下一节,我们将进入本章的安全核心——券商连接器与安全分级:讲清 loader 与 connector 的区别(再次强调)、connector 的典型能力,以及 read-only / paper / live 三种 profile 的含义、能力边界与适用阶段。


发布者: 作者: HKUDS 转发
评论区 (0)
U