雅虎财经显然是这样计算调整后的收盘价的:
https://help.yahoo.com/kb/adjusted-close-sln28256.html
从这一点上,我了解到一个恒定的因子应用于未调整的价格,并且该因子随着每次股息或拆分事件而变化,这种情况不应该经常发生。我应该能够通过将未调整的价格除以调整后的价格来推断该因子。
但是,如果我使用AAPL数据(使用Python)验证这一点,我会得到令人困惑的结果:
import yfinance
df = yfinance.download("AAPL", start="2010-01-01", end="2019-12-31")
df["Factor"] = df["Close"] / df["Adj Close"]
print(df["Factor"].nunique(), df["Factor"].count())
产生:2442 2516
因此,到目前为止,在大多数情况下,因素是不同的。但AAPL通常每年有4次分红事件,并在此期间进行股票拆分,因此我预计大约有40个不同的因素,而不是2442个。
雅虎财经在上面的链接下提供的公式是否过于简单,或者我在这里遗漏了什么?
发布于 2020-01-19 06:55:17
我不确定这是不是一个完整的答案,但评论太长了:
首先,四舍五入肯定有一个问题。如果将第三行修改为
df["Factor"] = df["Close"] / df["Adj Close"].round(12)
你会得到2441个独特的因子。然而,如果你使用round(6)
,你只会得到46个独特的因子。
其次,根据你问题中雅虎帮助页面中的调整规则,每次分红都会导致对前一个预测日期之前的5个交易日进行调整。在你的问题中的10年期间,没有股票拆分和大约40个季度股息。这应该会导致200个日期调整后的收盘价。所有其他2300左右的日期不应该有收盘调整,也就是1
的因素。然而,当你运行时:
df[df.Factor == 1].shape
您只获得37
日期(不管使用了何种舍入),没有任何调整。
显然,这没有意义,而且-除非我遗漏了一些基本的东西-在调整方法的实现中或Yahoo代码中存在一些错误。
https://stackoverflow.com/questions/59799567
复制相似问题