按名称的dropTA特定指示器

问题描述 投票:2回答:1

无法弄清楚如何从Rquantmod的TA列表中按名称删除指定的指标。

require("quantmod")
getSymbols("AAPL", src="yahoo", from = '2018-01-1', to = '2019-01-1')
#my custom indicator
AAPL_sma_50 <- SMA(
 Cl(AAPL),
 n = 50
)
candleChart(AAPL, up.col = "black", dn.col = "red", theme = "white")
addTA(AAPL_sma_50, on = 1, col = "blue")
addBBands()
listTA()

[listTA()输出:

[[[1]] addVo()

[[2]] addTA(ta = AAPL_sma_50,on = 1,col =“ blue”)

[[[3]] addBBands()

我可以用dropTA('addBBands')删除内置的,但是不能以相同的方式删除自定义指标:

dropTA('AAPL_sma_50')
Error in dropTA("AAPL_sma_50") : nothing to remove

dropTA(2)也不通过索引工作-它总是删除第一个元素

如何仅删除第二个自定义名称,或如何创建它,以便以后可以通过名称删除-例如dropTA('myCustomIndicator')

r quantmod
1个回答
1
投票
有一些选项可从情节中删除TA。诀窍是要知道当您使用addTA(my_indicator)时,不能使用dropTA(my_indicator)。因为您通过addTA()添加了TA,所以您需要调用dropTA(ta = "addTA")

现在有几个可能性:

dropTA(all = TRUE) # removes all technical indicators dropTA(ta = "addBBAnds") # removes the bolinger bands you added via addBBands()

如果您在addTA中添加了一些自定义TA,则可以指定要删除的版本(如果现在订购)。 

dropTA(ta = "addTA", occ = 2) # removes the second occurence of the TA you added dropTA(ta = "addTA", all = TRUE) # removes all TA's added with addTA

当您在图表中使用多个addEMA或addSMA指标时,这很有用。

具有EMA指标的示例:

library(quantmod) getSymbols("AAPL", src="yahoo", from = '2018-01-1', to = '2019-01-1') candleChart(AAPL, up.col = "black", dn.col = "red", theme = "white") addEMA(Cl(AAPL), n = 13, on = 1) addEMA(Cl(AAPL), n = 21, on = 1) addEMA(Cl(AAPL), n = 5, on = 1) dropTA(ta = "addEMA", occ = 2) # removes the second occurence of the EMA's you added dropTA(ta = "addEMA", all = TRUE) # removes all (other) EMA's added

© www.soinside.com 2019 - 2024. All rights reserved.