Yahoo Finance如何计算调整后的收盘价?

问题描述 投票:1回答:1

[Yahoo Finance显然是如何计算调整后的收盘价:

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。

Yahoo Finance在上面的链接下提供的公式是否过于简化,或者我在这里缺少什么?

python finance yahoo-finance yahoo-api
1个回答
0
投票

我不确定这是否是完整的答案,但是评论太久了:

首先,在取整方面肯定存在问题。如果您将第三行修改为

df["Factor"] = df["Close"] / df["Adj Close"].round(12)

您获得2441个独特因素。但是,如果使用例如round(6),则只会得到46个唯一因子。

其次,根据您问题的Yahoo帮助页面中的调整规则,每次股息都会对除息日之前的5个交易日进行调整。在所提问题的10年期间,没有股票拆分,大约有40个季度股息。这些应该导致200个日期和调整后的收盘价。其他所有2300左右的日期都不应进行结束调整,即,系数为1。但是,当您运行时:

df[df.Factor == 1].shape

您只获得37个日期(与使用的舍入无关)。

显然,这没有意义,并且-除非我缺少基本知识-调整方法的实现或Yahoo代码中都存在一些错误。

© www.soinside.com 2019 - 2024. All rights reserved.