r - R 中 MACD 返回错误值

标签 r

我正在使用 R 、TTR 库。 我计算 MACD 的算法是:

MACD Line: (12-day EMA - 26-day EMA)    
Signal Line: 9-day EMA of MACD Line

我的 MACD 计算 R 代码是:

macd123 = MACD(data[c('收盘价')],12,26,9,maType=EMA)

它向我传递了两个值MACD信号

嗯,这两个值与我的交易软件不匹配。 因此,我使用 R 找到 12 天和 26 天 EMA,然后从 12 天 EMA 中减去 26 天 EMA 以获得 MACD 值。 但这个值甚至与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)

最佳答案

您不应期望 ema12 - ema26MACD 的输出相匹配,因为 MACD 通过以下方式计算两个移动平均线之间的百分比差异默认值,正如记录的那样 (percent = TRUE)。

如果您想使用原始差值,请在 MACD 调用中设置 percent = FALSE。例如:

library(TTR)
data(ttrc)
macd <- MACD(ttrc[,"Close"], percent = FALSE)
mymacd <- EMA(ttrc[,"Close"], 12) - EMA(ttrc[,"Close"], 26)
identical(mymacd, macd[,"macd"])  # TRUE

关于r - R 中 MACD 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40324075/

相关文章:

使用 R 中的 drc 包回归​​多个剂量 react 曲线

r - 如何在 R 中定义 abline 线性回归的图形边界

r - 计算每一列的唯一值

r - IQR和四分位数未按预期在R中生成

r - 矢量的圆位移距离 n

R 的 strptime 时间日期时间在午夜 (00 :00:00) gives NA

R:如何使用 R 代码卡住导出的 Excel 文件的第一行?

r - 如何在 R Shiny 应用程序中存储 react 变量的先前状态?

r - 通过 R 中其他 2 列的所有组合计算一列的平均值

r - 在 ggplot2 中使用自定义 OTF 字体