我们可以使用图表系列函数绘制蜡烛图 chartSeries(Cl(PSEC))
我创建了一些自定义值( I1 、 I2 和 I3 ),我想将它们绘制在蜡烛图外(叠加模式)。我用过 addTA()
以此目的
chartSeries(Cl(PSEC)), TA="addTA(I1,col=2);addTA(I2,col=3);addTA(I3,col=4)")
问题在于它为 绘制了四个图。 Cl(PSEC),I1,I2 和 I3 分开而不是我想要的两个图 Cl(PSEC) 和 (I1,I2,I3)
已编辑
为清楚起见,我给出了一个示例代码,其中包含为此目的创建的 I1、I2 和 I3 变量
library(quantmod)
PSEC=getSymbols("PSEC",auto.assign=F)
price=Cl(PSEC)
I1=SMA(price,3)
I2=SMA(price,10)
I3=SMA(price,15)
chartSeries(price, TA="addTA(I1,col=2);addTA(I2,col=3);addTA(I3,col=4)")
最佳答案
如果我理解正确,您需要 SUBPLOT 中的 3 个 SMA,而不是主图表窗口中的 3 个 SMA。您可以使用 newTA
执行以下操作.
使用您的数据:
PSEC=getSymbols("PSEC",auto.assign=F)
price=Cl(PSEC)
现在在主窗口下方的窗口中绘制 10,30,50 日均线:
chartSeries(price['2016'])
newSMA <- newTA(SMA, Cl, on=NA)
newSMA(10)
newSMA(30,on=2)
newSMA(50,on=2)
关键是参数
on
.使用 on = NA
在定义新的 TA 函数时,因为 on
的默认值是1,也就是主窗口。 on = NA
在新窗口中绘图。然后将剩余的 SMA 绘制到与第一个 SMA 相同的窗口。根据自己的喜好设计颜色等:-)。关于r - 如何使用 quantmod 在新图中叠加多个 TA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37850165/