You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中Backtesting库bt.get()方法突然失效求助

问题描述

之前一直正常运行的代码今早突然报错,代码如下:

%matplotlib inline
import bt

data = bt.get("TLT", start="2022-06-01", end="2022-06-30")

报错信息为:

RemoteDataError: Unable to read URL: https://query1.finance.yahoo.com/v7/finance/download/TLT
HTTP Error 401: Unauthorized

已执行conda update --all命令,但问题仍未解决。

解决方案
  • 核心原因:bt库默认依赖的雅虎财经公开接口已调整权限策略,导致无法直接获取数据。以下是可行解决办法:
  • 办法1:通过yfinance中转获取数据
    1. 安装yfinance库:
      pip install yfinance
      # 或用conda安装
      conda install -c conda-forge yfinance
      
    2. 修改代码,用yfinance获取数据后传入bt:
      %matplotlib inline
      import bt
      import yfinance as yf
      
      # 获取TLT数据
      data = yf.download("TLT", start="2022-06-01", end="2022-06-30")
      # 调整为bt所需的格式
      data = data[['Adj Close']].rename(columns={'Adj Close': 'TLT'})
      
  • 办法2:安装修复数据源的bt版本
    第三方维护的bt分支已适配新接口,可尝试安装:
    pip install git+https://github.com/pmorissette/bt.git
    
  • 办法3:切换至其他数据源
    比如使用Alpha Vantage,需先获取API密钥,再通过对应库获取数据后传入bt。

内容的提问来源于stack exchange,提问作者FFFAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:05:17