dropTA Speci c индикатор по имени - PullRequest
2 голосов
/ 29 января 2020

Не могу понять, как удалить указанный индикатор по имени из списка TA в R Quantmod.

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')

1 Ответ

2 голосов
/ 29 января 2020

Есть несколько вариантов удаления ТА с участка. Хитрость заключается в том, что когда вы используете addTA(my_indicator), вы не можете использовать dropTA(my_indicator). Поскольку вы добавили TA через addTA(), вам нужно позвонить dropTA(ta = "addTA").

Теперь есть несколько вариантов:

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

Если вы добавили несколько пользовательских TA с помощью addTA, вы Можно указать, какую версию удалить, если вы сейчас заказ.

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
...