【问题标题】:Compilor says that there's missing 1 required positional argument: 'DF'编译器说缺少 1 个必需的位置参数:\'DF\'
【发布时间】:2022-12-29 16:58:08
【问题描述】:
import yfinance as yf

class Bollinger_Band():

    tickers = ["AMZN", "GOOG", "MSFT"]
    ticker_data = {}

    for ticker in tickers:
        temp = yf.download(ticker, period='1mo', interval='5m')
        temp.dropna(how="any", inplace=True)
        ticker_data[ticker] = temp

    def get_data(self, DF, n=20):
        std_deviation = 2
        df = DF.copy()
        df["MB"] = df["Adj Close"].rolling(n).mean()
        df["UB"] = df["MB"] + std_deviation * df["Adj Close"].rolling(n).std(ddof=0)
        df["LB"] = df["MB"] - std_deviation * df["Adj Close"].rolling(n).std(ddof=0)
        df["BB_Width"] = df["UB"] - df["LB"]
        return df[["MB", "UB", "LB", "BB_Width"]]

    for ticker in ticker_data:
        ticker_data[ticker][["MB", "UB", "LB", "BB_Width"]] = get_data(ticker_data[ticker])

我想计算布林带数据并将其添加到代码数据元组中。我在没有创建它的类的情况下这样做了,但现在它显示了一个错误。我应该怎么办?错误是:

ticker_data[ticker][["MB", "UB", "LB", "BB_Width"]] = get_data(ticker_data[ticker])

类型错误:get_data() 缺少 1 个必需的位置参数:'DF'

【问题讨论】:

    标签: python constructor yfinance


    【解决方案1】:

    你忘了在get_data之前写self.,像这样:

    ticker_data[ticker][["MB", "UB", "LB", "BB_Width"]] = self.get_data(ticker_data[ticker])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 2017-03-27
      • 2019-11-12
      • 2019-12-23
      相关资源
      最近更新 更多