首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >雅虎财经如何计算调整后的收盘价?

雅虎财经如何计算调整后的收盘价?
EN

Stack Overflow用户
提问于 2020-01-18 18:20:26
回答 2查看 5.2K关注 0票数 3

雅虎财经显然是这样计算调整后的收盘价的:

https://help.yahoo.com/kb/adjusted-close-sln28256.html

从这一点上,我了解到一个恒定的因子应用于未调整的价格,并且该因子随着每次股息或拆分事件而变化,这种情况不应该经常发生。我应该能够通过将未调整的价格除以调整后的价格来推断该因子。

但是,如果我使用AAPL数据(使用Python)验证这一点,我会得到令人困惑的结果:

代码语言:javascript
运行
复制
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个。

雅虎财经在上面的链接下提供的公式是否过于简单,或者我在这里遗漏了什么?

EN

回答 2

Stack Overflow用户

发布于 2020-01-19 06:55:17

我不确定这是不是一个完整的答案,但评论太长了:

首先,四舍五入肯定有一个问题。如果将第三行修改为

代码语言:javascript
运行
复制
df["Factor"] = df["Close"] / df["Adj Close"].round(12)

你会得到2441个独特的因子。然而,如果你使用round(6),你只会得到46个独特的因子。

其次,根据你问题中雅虎帮助页面中的调整规则,每次分红都会导致对前一个预测日期之前的5个交易日进行调整。在你的问题中的10年期间,没有股票拆分和大约40个季度股息。这应该会导致200个日期调整后的收盘价。所有其他2300左右的日期不应该有收盘调整,也就是1的因素。然而,当你运行时:

代码语言:javascript
运行
复制
df[df.Factor == 1].shape

您只获得37日期(不管使用了何种舍入),没有任何调整。

显然,这没有意义,而且-除非我遗漏了一些基本的东西-在调整方法的实现中或Yahoo代码中存在一些错误。

票数 1
EN

Stack Overflow用户

发布于 2020-10-16 22:50:34

问题是雅虎财经没有提供原始价格和调整后的价格供你使用。如果您查看示例历史价格页面(例如,MSFT)的脚注,您将看到一个文本,其中显示“针对拆分调整了收盘价;针对分红和拆分调整了调整后的收盘价。”

为了得出干净的调整后的比率,原始(未调整)和调整后的价格都是必需的。然后,您可以应用CRSP等调整方法来派生正确的值。总而言之,你没有做错任何事!这是雅虎产出的内在局限。

参考资料:1 2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59799567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档