我们可以使用图表系列函数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)
EDITED
为清楚起见,我给出了为此目的创建的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)")
答案 0 :(得分:3)
这是一个主要保留原始代码的选项。
在第一个TA之后,您可以使用选项on=2
获取所需结果:
library(quantmod)
getSymbols("PSEC")
price <- Cl(PSEC)
I1 <- SMA(price,3)
I2 <- SMA(price,10)
I3 <- SMA(price,15)
chartSeries(price, TA=list("addTA(I1, col=2)", "addTA(I2, col=4, on=2)",
"addTA(I3, col=5, on=2)"), subset = "last 6 months")
如果您想在一个图表中叠加价格和SMA,可以为每个TA使用选项on=1
。
感谢@hvollmeier,他让我意识到他在我的答案的前一版本中误解了你的答案。
PS:请注意?addSMA()
中描述了几个选项,包括with.col
,可用于选择时间序列的特定列(Cl是默认列)。
答案 1 :(得分:2)
如果我理解正确,您需要SUBPLOT中的3个SMA而不是主图表窗口。您可以使用newTA
执行以下操作。
使用您的数据:
PSEC=getSymbols("PSEC",auto.assign=F)
price=Cl(PSEC)
现在在主窗口下方的窗口中绘制一个10,30,50天的SMA:
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相同的窗口。根据自己的喜好设计颜色等等: - )。
答案 2 :(得分:2)