quantmod adjustOHLC 函数 - 股息调整价格

quantmod adjustOHLC function - dividend adjusted prices

我需要帮助来解释使用 quantmod::adjustOHLC.

的股息调整后价格的差异

获取 AAPL 的调整和未调整价格:

library(quantmod)
getSymbols("AAPL")
AAPL.adjusted <- adjustOHLC(AAPL, adjust=c("dividend"), symbol.name="AAPL")

AAPL 的最后一次股息是在 2016 年 8 月 4 日派息 0.57 美分。

div <- getDividends("AAPL", from = "1900-01-01")
tail(div)
#            [,1]
# 2015-05-07 0.52
# 2015-08-06 0.52
# 2015-11-05 0.52
# 2016-02-04 0.52
# 2016-05-05 0.57
# 2016-08-04 0.57

对于 2016 年 5 月 5 日至 2016 年 8 月 3 日期间,当 adjustOHLC 要求仅针对股息进行调整时,我的预期是它会从这些日期的 OHLC 价格中扣除 0.57 美分。

但是,我在计算时没有看到 0.57 美分的确切差异 未调整和调整后收盘价之间的差异。

div <- coredata(AAPL["2016-05-05/2016-08-03"][,"AAPL.Close"] -
       AAPL.adjusted["2016-05-05/2016-08-03"][,"AAPL.Close"])
hist(div)

在绘制的直方图中,大多数价格都没有接近 0.57。

查看 adjustOHLC 的代码,计算出的调整因子是 感兴趣的日期范围相同

div <- getDividends("AAPL", from = "1900-01-01")
splits <- getSplits("AAPL", from = "1900-01-01")
div <- div * 1/adjRatios(splits=merge(splits, index(div)))[, 1]
ratios <- adjRatios(splits, div, Cl(AAPL))
length(ratios["2016-05-05/2016-08-03"][, "Div"])
# [1] 63
table(ratios["2016-05-05/2016-08-03"][, "Div"])
# 0.994611967155573
#                63

为什么未调整和调整后的收盘价差异如此之大?

看看调整后和未调整的价格:

getSymbols('AAPL',from='2016-08-01',to = '2016-08-06')

[1] "AAPL"
> AAPL
           AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2016-08-01    104.41    106.15   104.41     106.05    38167900      105.4786
2016-08-02    106.05    106.07   104.00     104.48    33816600      103.9171
2016-08-03    104.81    105.84   104.77     105.79    30202600      105.2200
2016-08-04    105.58    106.00   105.28     105.87    27408700      105.8700
2016-08-05    106.27    107.65   106.18     107.48    40553400      107.4800
> adjustOHLC(AAPL)
           AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2016-08-01  103.8474  105.5781 103.8474   105.4786    38167900      105.4786
2016-08-02  105.4786  105.4985 103.4396   103.9171    33816600      103.9171
2016-08-03  104.2453  105.2697 104.2055   105.2200    30202600      105.2200
2016-08-04  105.5800  106.0000 105.2800   105.8700    27408700      105.8700
2016-08-05  106.2700  107.6500 106.1800   107.4800    40553400      107.4800

当您比较调整后和未调整系列的 8/3 和 8/4 收盘价的净变化时,您会发现股息支付与所有之前的价格正好相差 57 美分相应地下调了 57 美分。

quantmod::adjustOHLC的计算是正确的。差异在于您的假设和期望。

除了除息日和收盘价与除息日相同的任何其他日期外,没有理由期望未调整和调整后的收盘价之间的差值等于股息金额。

您甚至注意到,"computed adjustment factors are identical for the interested date range"(强调)。调整因素将是相同的,直到有另一个股息或拆分。调整后收盘价的计算方法是乘以调整因子和未调整收盘价。

如果您简单地从所有之前的收盘价中减去股息金额,您将更改 returns,它甚至可能导致收盘价变为负数!