我正在尝试计算我使用getSymbols函数下载的一些股票的调整后收盘价创建的50天EMA线的斜率。
我的EMA看起来像这样:
getSymbols("COLUM.CO")
COLUM.CO$EMA <- EMA(COLUM.CO[,6],n=50)
这给了我一个额外的列,其中包含调整后收盘价的50天EMA。现在我想包含一个包含此行斜率的附加列。我相信这是一个相当简单的答案,但我真的很感激一些帮助。提前谢谢。
答案 0 :(得分:2)
执行此操作的好方法是使用滚动最小二乘回归。 rollSFM
可以快速有效地计算一系列的斜率。通常在时间(条形)中查看与价格活动单位相关的斜率是有意义的,因此x
可以简单地为等间距点。
唯一棘手的部分是计算n
的有效值,即你适合坡度的窗口长度。
library(quantmod)
getSymbols("AAPL")
AAPL$EMA <- EMA(Ad(AAPL),n=50)
# Compute slope over 50 bar lookback:
AAPL <- merge(AAPL, rollSFM(Ra = AAPL[, "EMA"],
Rb = 1:nrow(AAPL), n = 50))
标有beta
的列包含斜率的滚动窗口值(alpha
包含截距,r.squared
包含R2值。)