功能
TradingView 数据
拉取 TradingView 股票、期货、加密货币和外汇 K 线,并搜索交易标的
如何将 TradingView 数据导入 Python?vbt.TVData 使用 TradingView 自身的标的表示法,无需账户即可拉取股票、期货、加密货币、外汇和指数 K
线,并将其作为可直接用于指标和回测的数据对象返回。
symbols = [
"NASDAQ:AAPL", "CME_MINI:ES1!", "BINANCE:BTCUSDT",
"TVC:DXY", "FX:EURUSD", "TVC:GOLD",
]
data = vbt.TVData.pull(symbols, timeframe="1D")
year = data.loc["2024"]
first = year.close.apply(lambda s: s.dropna().iloc[0])
last = year.close.apply(lambda s: s.dropna().iloc[-1])
returns = (last / first - 1).round(4)
pd.DataFrame({"bars": year.close.notna().sum(), "return": returns}) bars return
symbol
NASDAQ:AAPL 252 0.3490
CME_MINI:ES1! 252 0.2399
BINANCE:BTCUSDT 366 1.1181
TVC:DXY 259 0.0614
FX:EURUSD 260 -0.0534
TVC:GOLD 252 0.2747一次调用返回了股票、连续期货合约、加密货币交易对、美元指数、货币对和黄金。每个市场保留自己的日历:2024 年比特币交易了全部 366 天,股票交易 252 天,外汇交易 260 天,因此上方每列分别统计自己的 K 线数。
从图表数据到 Python 研究
将您已在 TradingView 关注的标的用作 Python 策略输入。拉取后,data.close 提供跨标的价格,data.run 可基于可用 OHLCV
字段计算指标。将数据及入场、退出信号传给信号回测,再在同一流程中比较交易品种和参数选择。
这适合跨市场检验图表想法、构建指数成分股研究范围,或通过多时间周期分析将日频趋势与日内入场结合。
拉取 K 线
标的使用 TradingView 的 EXCHANGE:SYMBOL 表示法。可使用分钟、小时、日、周或月 K 线,例如 "1 minute"、"1 hour" 或 "1D"。如果
TradingView 提供秒级周期,适配器也能接受。tz 将索引转换为市场本地时间。价格默认进行拆股调整,adjustment 还可考虑股息,extended_session=True
则加入盘前和盘后 K 线。对于期货,fut_contract=1 返回近月连续合约,fut_contract=2 返回下一合约。通过 data = data.update() 刷新可用 K
线,并与已存历史合并。
没有起始日期参数。TradingView 提供最多 limit 根最近 K 线,因此应先拉取,再用 data.loc 选择所需时段,如上方选择 2024 年的示例。该类仅下载 K 线,不下载
TradingView 指标或策略数值。无法解析数据的错误通常意味着该标的或周期在相应交易所不存在;大规模拉取时可用 skip_on_error=True 跳过这类标的。
匹配您正在研究的图表
将指标或回测与 TradingView 图表比较前,请匹配数据选择:
| 图表设置 | VBT 输入 |
|---|---|
| 交易品种与交易所 | 完整的 EXCHANGE:SYMBOL 标识符 |
| K 线周期 | timeframe |
| 常规或延长交易时段 | extended_session |
| 拆股或股息调整 | adjustment |
| 显示时区 | tz |
即使公式完全相同,不同交易时段和复权设置也会改变指标。VBT 的技术指标和自定义指标让您从这些 K 线在 Python 中计算分析指标。
如果需要图表中已经算好的数值,TradingView
可将图表数据和指标导出为 CSV。通过
vbt.CSVData 或 Pandas
加载导出文件,保留其时间戳和指标列。存储页面介绍文件输入。这提供了将图表输出与
Python 计算比较的另一条途径。
查找交易标的
vbt.TVData.list_symbols 按模式、交易所或文本搜索 TradingView 标的;其市场扫描器可按市场、行业等字段值或指数成员身份列出标的:
ndx = vbt.TVData.list_symbols(groups=dict(index="NASDAQ:NDX"))
len(ndx), ndx[:5](101, ['NASDAQ:AAPL', 'NASDAQ:ABNB', 'NASDAQ:ADBE', 'NASDAQ:ADI', 'NASDAQ:ADP'])该列表包含的是当前成分股,因此基于它构建过去多年的回测会带来幸存者偏差,详见真实回测页面。
您也可以请求行业、币种、市值等扫描器字段,并在下载 K 线前筛选结果。设置 return_field_data=True 后,标的发现会连同标的名称返回这些字段,让您保留用于选择研究范围的信息。
历史数据与账户
TradingView 为每个标的提供的 K 线数量有限,因此历史深度取决于周期:日 K 线可追溯多年,而截至 2026 年 10 月 2 日,AAPL 的分钟 K 线约覆盖最近六周。VBT
默认最多请求 20,000 根 K 线。通过 client_config 使用您自己的 TradingView 用户名和密码或会话 token
登录,可使用账户拥有的访问权限。您可以在多次拉取间复用已认证的 TVClient,无需每次创建新客户端。TradingView
的交易所数据订阅独立于
VBT PRO,TradingView 表示其付费方案不包含交易所数据费用。
标准 TVData 拉取获取最近 K 线,不会自动操作 TradingView 的 Bar
Replay,也不会向前翻页获取全部图表历史。更新会重新请求最近窗口并合并到现有对象。对于较长日内历史,市场数据源页面中的商业提供商更合适;数据存储与数据库则帮助您持续积累下载数据。
使用条款
TradingView 数据受其使用条款约束。条款要求时请使用您自己的账户,在将数据用于个人研究之外的用途前也请检查条款。
✅ 现在提供专用于从 TradingView 拉取数据的新类。
data = vbt.TVData.pull(
"NASDAQ:AAPL",
timeframe="1 minute",
tz="US/Eastern"
)
data.get() Open High Low Close Volume
datetime
2022-12-05 09:30:00-05:00 147.75 148.31 147.50 148.28 37769.0
2022-12-05 09:31:00-05:00 148.28 148.67 148.28 148.49 10525.0
2022-12-05 09:32:00-05:00 148.50 148.73 148.30 148.30 4860.0
2022-12-05 09:33:00-05:00 148.25 148.73 148.25 148.64 5306.0
2022-12-05 09:34:00-05:00 148.62 148.97 148.52 148.97 5808.0
... ... ... ... ... ...
2023-01-17 15:55:00-05:00 135.80 135.91 135.80 135.86 37573.0
2023-01-17 15:56:00-05:00 135.85 135.88 135.80 135.88 18796.0
2023-01-17 15:57:00-05:00 135.88 135.93 135.85 135.91 21019.0
2023-01-17 15:58:00-05:00 135.90 135.97 135.89 135.95 20934.0
2023-01-17 15:59:00-05:00 135.94 136.00 135.84 135.94 86696.0
[11310 rows x 5 columns]版权所有 © 2021–2026 Oleg Polakow。保留所有权利。
本站内容与文档供使用和评估 VectorBT PRO 以及教育用途。任何其他用途,包括开发或支持竞争产品或服务,均须事先取得书面同意。