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

Yahoo Finance API获取USDCHF=X历史数据缺失4月2日数据求助

解决yahoo_fin获取USDCHF=X历史数据缺失的问题
  • 先确认数据源本身是否存在数据
    绕过yahoo_fin库,直接调用Yahoo Finance的下载接口验证数据。构造请求URL时,把日期转换成Unix时间戳(2024-04-02的时间戳是1712035200,2024-04-03是1712208000),用Python的requests发送请求:

    import requests
    
    url = "https://query1.finance.yahoo.com/v7/finance/download/USDCHF=X"
    params = {
        "period1": 1712035200,
        "period2": 1712208000,
        "interval": "1d",
        "events": "history",
        "includeAdjustedClose": "true"
    }
    response = requests.get(url, params=params)
    print(response.text)
    

    如果返回的CSV里没有4月2日的数据,说明是Yahoo Finance的数据源问题,只能等待平台修复或更换其他数据源(比如Alpha Vantage)。

  • 检查yahoo_fin的日期时区处理
    yahoo_fin内部可能将本地日期转换为UTC时区,导致日期范围偏移。可以手动传入Unix时间戳替代字符串日期,避免时区转换问题:

    from yahoo_fin.stock_info import get_historical_data
    import time
    
    # 转换日期为Unix时间戳(本地时间转时间戳)
    start_ts = time.mktime(time.strptime("2024-04-02", "%Y-%m-%d"))
    end_ts = time.mktime(time.strptime("2024-04-03", "%Y-%m-%d"))
    
    # 获取数据时关闭日期作为索引,方便查看原始日期字段
    df = get_historical_data("USDCHF=X", start=start_ts, end=end_ts, index_as_date=False)
    print(df[["date", "open", "close"]])
    
  • 更新yahoo_fin库到最新版本
    旧版本的库可能存在请求逻辑缺陷,执行以下命令更新:

    pip install --upgrade yahoo-fin
    
  • 验证市场是否开市
    虽然2024年4月2日是周二,但部分地区可能有特殊节假日导致外汇市场闭市?可以查全球主要外汇市场(纽约、伦敦、苏黎世)的节假日表,确认当天是否正常交易。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 19:58:19