代码之家  ›  专栏  ›  技术社区  ›  w0051977

搜索货币对

  •  0
  • w0051977  · 技术社区  · 7 月前

    我正在努力学习更多关于Python的知识。我正试图从雅虎财经获取一些数据。我有这个代码:

    import yfinance as yf
    from statsmodels.tsa.vector_ar.vecm import coint_johansen
    
    symbols = ['AMZN', 'AAPL']
    start = '2020-01-01'
    end = '2024-01-16'
    data = yf.download(symbols, start=start, end=end)['Adj Close']
    specified_number = 0 
    coint_test_result = coint_johansen(data, specified_number, 1)
    print("End")
    

    它按预期工作。然后我将符号(第四行为加密货币对,即。

    symbols = ['BTCUSD', 'ETHUSD']
    

    然后代码在这一行出现错误:

    coint_test_result = coint_johansen(data, specified_number, 1)
    

    错误为: zero-size array to reduction operation maximum which has no identity

    为什么将加密货币对作为符号会出错?

    我有3.12.3版本的Python。

    1 回复  |  直到 7 月前
        1
  •  1
  •   Vinod Baste    7 月前

    您的代码可正确获取加密货币数据:

    然而,当切换到加密货币符号时,请确保使用正确的股票代码格式:

    import yfinance as yf
    from statsmodels.tsa.vector_ar.vecm import coint_johansen
    
    symbols = ['BTC-USD', 'ETH-USD']
    start = '2020-01-01'
    end = '2024-01-16'
    data = yf.download(symbols, start=start, end=end)['Adj Close']
    
    if data.empty:
        print("No data fetched.")
    else:
        specified_number = 0
        try:
            coint_test_result = coint_johansen(data, specified_number, 1)
            print("Cointegration Test Result:", coint_test_result)
        except Exception as e:
            print("Error performing cointegration test:", e)
    
    print("End")
    

    这应该可以解决问题。如果问题仍然存在,请确保日期范围和符号正确无误。

    有关yfinance的更多详细信息,请查看 official documentation .

    推荐文章