Data

vectorbt 数据接入:YFData 与 akshare/tushare 国内行情源

vectorbt 的回测输入本质是 pandas DataFrame(价格、信号、持仓等)。官方内置 vbt.YFData 下载 Yahoo Finance 数据,但中国大陆访问可能受限;A 股研究常用 akshare / tushare 取数后转成 DataFrame 再喂给 vectorbt。本页讲清几种数据接入方式与缺失值处理。

内置:vbt.YFData国内源:akshare / tushare输入:pandas DataFrame
YFData
akshare/tushare
DataFrame
对齐
vectorbt 数据接入流程示意(schematic);中国大陆访问 YFData 受限,建议本地 CSV 或国内源。
Sources

数据源对照

数据源方式市场前置
YFDatavbt.YFData.download("BTC-USD")美股/加密/ETF中国大陆访问可能受限
akshareak.stock_zh_a_hist(...) 转 DataFrameA 股/期货/基金等pip install akshare
tusharepro.daily(...) 转 DataFrameA 股/港美股/宏观需 Tushare Token
本地 CSVpandas.read_csv 读取任意自行准备数据文件
Steps

接 A 股数据到 vectorbt

1. 取数

用 akshare 的 stock_zh_a_hist 或 tushare 的 pro.daily 取历史行情。

2. 转 DataFrame

把日期设为索引、收盘价作为价格列,整理成 vectorbt 需要的 DataFrame。

3. 清洗对齐

处理停牌缺失值、多标的日期对齐,再喂给指标与组合。

Pitfall

缺失值与对齐处理

问题处理
停牌日无数据fillna 向前填充或按需补值,避免 NaN 传播
多标的时间不一致对齐日期索引,用 missing_index="drop" 丢弃缺失对齐
日期格式不统一统一转成 pandas DatetimeIndex
复权口径回测用后复权价避免分红跳空干扰
说明:数据质量直接影响回测可信度。建议多数据源交叉验证,并保留原始数据做追溯。
Adjust

复权口径说明

口径含义适用
前复权以当前价为基准回推历史看近期走势
后复权以上市价为基准累计回测计算收益(推荐)
不复权原始成交价展示绝对价格
Decision

数据源怎么选

选 YFData

美股/加密/ETF 且能直连 Yahoo Finance,用内置 YFData 最省事。

选 akshare

A 股/期货/基金且无需 Token,用 akshare 快速取公开数据。

选 tushare

需要财务/宏观/港美股且已有 Token,用 tushare 接口更全。

FAQ

常见问题

为什么 YFData 下载失败?

Yahoo Finance 在中国大陆可能无法直连或限流。改用本地 CSV,或用 akshare / tushare 取数后转 DataFrame,见数据源对照表。

akshare 和 tushare 怎么选?

akshare 无需 Token、接口免费,适合快速取公开数据;tushare 需注册 Token,但接口更全(财务/宏观/港美股)。按需选择,两者都返回 DataFrame。

数据一定要转成 DataFrame 吗?

vectorbt 的输入核心是 pandas DataFrame/Series。任何数据源只要能整理成 DataFrame(日期索引 + 价格列),就能喂给 vectorbt。

复权价和原始价用哪个?

回测通常用后复权价,避免分红除权造成的价格跳空;做绝对价格展示时才用原始价。口径需在报告中说明。

数据接好了,看路线对比

下一步对比 vectorbt 自建与 EasyClaw 量化 Skill 两条路线,决定走哪条。