我正在使用R,TTR库。 我的MACD计算算法是:
MACD Line: (12-day EMA - 26-day EMA)
Signal Line: 9-day EMA of MACD Line
MACD Calulation的我的R代码是:
macd123 = MACD(data[c('Close')],12,26,9,maType=EMA)
这传递给我两个值MACD
& Signal
嗯,这两个值都与我的交易软件不匹配。
所以,我find 12 and 26 day EMA
使用R然后使用Subtracted 26 Day EMA from 12 Day EMA to get MACD value.
但是这个值甚至与macd123(先前计算的MACD)不匹配。
如果您可以更正我的代码以获得所需的MACD和信号输出值,那将会很棒。
这是我的R代码:
library("TTR")
data = read.csv(file="F:\\Project_files\\data\\Bambino.csv")
sma20 <- SMA(data[c('Close')],n=20)
ema14 <- EMA(data[c('Close')],n=14)
ema12 <- EMA(data[c('Close')],n=12)
ema26 <- EMA(data[c('Close')],n=26)
bb20 = BBands(data[c('Close')],sd=2.0)
rsi14 = RSI(data[c('Close')],n=14)
macd = MACD(data[c('Close')],12,26,9,maType=EMA)
allData= data.frame(data,sma20,ema14,bb20,rsi14,macd,ema12,ema26)
write.table(allData,file="F:\\Project_files\\temp\\testgejavaedbyR1.csv",na="0.000001",sep=",",row.names = FALSE)
答案 0 :(得分:1)
您不应期望ema12 - ema26
与MACD
的输出相匹配,因为MACD
默认计算两个移动平均线之间的百分比差异,因为它记录了(percent = TRUE
)。
如果您想使用原始差异,请在percent = FALSE
来电中设置MACD
。例如:
library(TTR)
data(ttrc)
macd <- MACD(ttrc[,"Close"], percent = FALSE)
mymacd <- EMA(ttrc[,"Close"], 12) - EMA(ttrc[,"Close"], 26)
identical(mymacd, macd[,"macd"]) # TRUE