yf.download 和 yf.Ticker 之间的不同价格

Different price between yf.download and yf.Ticker

我正在使用 yfinance 提取股票的开盘价,例如“AAPL”(Apple Inc)。我遇到了一些非常有趣但令人困惑的细节。我用过两种方法获取股票的开盘价,yf.Tickeryf.download

apple1 = yf.Ticker("AAPL")
apple2 = yf.download("AAPL")

正如您在下面的数据框中看到的,两种方法的开盘价显示完全不同的价格。知道这里发生了什么吗?

hist = apple1.history(period="max")
hist["Open"][:100]
Out[97]: 
Date
1980-12-12    0.100323
1980-12-15    0.095525
1980-12-16    0.088546
1980-12-17    0.090291
1980-12-18    0.092908
  
1981-04-30    0.099015
1981-05-01    0.099015
1981-05-04    0.099015
1981-05-05    0.098578
1981-05-06    0.095962
Name: Open, Length: 100, dtype: float64
apple2["Open"][:100]
Out[98]: 
Date
1980-12-12    0.128348
1980-12-15    0.122210
1980-12-16    0.113281
1980-12-17    0.115513
1980-12-18    0.118862
  
1981-04-30    0.126674
1981-05-01    0.126674
1981-05-04    0.126674
1981-05-05    0.126116
1981-05-06    0.122768
Name: Open, Length: 100, dtype: float64

history() 允许您设置 auto_adjust=False 参数,该参数停用 OHLC(Open/High/Low/Close 价格)的调整。默认情况下,启用调整。

对于 download(),默认情况下禁用调整。

如果为 history() 禁用,两种变体都会导致相同的结果:

hist = apple1.history(period="max", auto_adjust=False)
hist["Open"][:100]

apple2 = yf.download("AAPL")
apple2["Open"][:100]

同样,auto_adjust也可以为download()启用。然后产生相同的(调整后的)结果。

hist = apple1.history(period="max")
hist["Open"][:100]
apple2 = yf.download("AAPL", auto_adjust=True)
apple2["Open"][:100]