R Quantmod chartSeries 无法添加 TA

R Quantmod chartSeries can't addTAs

这是一个很奇怪的问题。让我们从这个非常简单的例子开始:

## ... some other code ...
chartSeries(y, theme='white',style="candlesticks", subset='last 12 months')
names(y) <- c("Open", "High", "Low", "Close", "Volume")
addEMA(n=3, col='red')      
addEMA(n=10,col='green')    
addEMA(n = 18, col = 'blue')
## ... other code ...

如果文件原样使用 "source filename.R" 等,则会弹出一个图表,但不会绘制那些 addEMA 线。但是,通过突出显示 addEMA 行和 运行 选定的行,这些 addEMA() 行在手动 运行 时会起作用。

Linux 和 Windows 都看到了这个问题。

R 的交互模式与源文件之间存在差异。这在 R 常见问题解答第 7 章中提到。有两种方法可以获得您想要的结果。

  1. 无需单独调用 addTA 函数,您可以将它们全部添加到 chartSeries 调用中。

    chartSeries(y, theme='white',style="candlesticks", subset='last 12 months',
            TA = c(addEMA(n=3, col='red'), addEMA(n=10,col='green'), addEMA(n = 18, col = 'blue')))
    

获取源代码后,您将获得与 运行 交互式代码完全相同的结果。

  1. 获取文件,但设置 echo = TRUE

    source("path_to_file/my_R_source_file.R", echo = TRUE)
    

采购时选项 1 更清晰,因为您的屏幕不会填满所有代码行。