我已将股票价格加载到R中的列表(DATA)中。说,DATA [[1]]是AAPL。如果我在每个股票下面有以下列:日期,开盘价,最高价,最低价,收盘价。问题在于我计算MACD并使用以下命令将其分配给列表中的列:
DATA[[1]]$Macd <- MACD(DATA[[1]]$Close,nFast=12, nSlow=26, nSig=9, maType = "EMA")
我得到一列值,我不确定那些值是什么。
但是当我通过将MACD分配给变量
来计算MACD时 macd <- MACD(DATA[[2]]$Close,nFast=12, nSlow=26, nSig=9, maType = "EMA")
我有两列 macd 和信号。
当我使用MACD函数计算List中的值时,有人可以帮我弄清楚如何获得两列值(macd和signal)吗?
P.S。我在 TTR 包
下使用了 MACD 功能答案 0 :(得分:1)
您已经知道,MACD函数提供两列值- macd 和 signal 。 您所需要做的就是通过引用其MACD索引1和2将它们分配给DATA [[1]]中的两个新列。 这是代码:
library(quantmod)
DATA <- list(getSymbols('AAPL', from=Sys.Date()-100, auto.assign=FALSE))
names(DATA[[1]])=c('open','high','low','close','volume','adjusted')
macd <- MACD(DATA[[1]]$close, maType='EMA')
tail(macd, 2) #verify
DATA[[1]]$macd <- macd[,1]
DATA[[1]]$sgnl <- macd[,2]
tail(DATA[[1]][,c('macd','sgnl')], 2) #verify
P.S。由于您使用的是MACD默认值(nFast = 12,nSlow = 26,nSig = 9),因此可以在代码中忽略它们。