雅虎财经显然是这样计算调整后收盘股价的:
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())
Run Code Online (Sandbox Code Playgroud)
其产生:2442 2516
因此,在大多数情况下,这个因素是不同的。但 AAPL 通常每年有 4 次股息事件,并在此期间进行股票分割,因此我预计大约有 40 个不同的因素,而不是 2442 个。
雅虎财经在上面的链接下提供的公式是否过于简化,或者我在这里遗漏了什么?
在我的实习中,我注意到我的一位同事通过这样做操纵了我的一个功能:
if isSinglesMatch:
name1 = GetName(1, "BUG")
name2 = GetName(2, "BUG")
else:
name1 = GetName(1, "Short")
name2 = GetName(2, "Short")
Run Code Online (Sandbox Code Playgroud)
对此:
name1 = GetName(1, "BUG" if isSinglesMatch else "Short")
name2 = GetName(2, "BUG" if isSinglesMatch else "Short")
Run Code Online (Sandbox Code Playgroud)
我看到他的代码更短,但是有没有像解释得更快的优势?保持我最初拥有的方式是不是很糟糕?在我看来,调试我的代码更容易(我在这个例子中遗漏了一些额外的变量赋值)。
实习期间没有人告诉我应该改变我做事的方式,我只是注意到我的同事喜欢这样做。