Добавление нескольких рядов диаграмм в Quantmod R
Я пытаюсь построить два графика на одном chartSeries
в quantmod в R. У меня возникли некоторые трудности с этим.
library(quantmod)
tickers <- c('GLD', 'GDX')
data <- new.env()
getSymbols(tickers, src = 'yahoo', from = '1980-01-01', env = data)
chartSeries(Cl(data$GLD), TA="addTA(Cl(data$GDX), on=1)")
addRSI()
1 ответов
можно использовать chart_Series
вместо chartSeries
.
chart_Series(Cl(data$GLD))
add_TA(Cl(data$GDX), on = 1)
а затем, если вы хотите RSI ниже в субпанели, просто добавьте add_RSI()
.
другой подход-использовать version > = 0.10.0 of xts
(т. е. не использовать quantmod
вообще), который вы можете получить от https://github.com/joshuaulrich/xts (0.10.0 еще не на CRAN). Новый примеры новый функционал.
Edit #2:
чтобы легче видеть относительные изменения, вы можете нормализовать свой ценовой ряд многими способами. Это типичный подход (использование 0 origin-это то, что делает Google charts):
normalise_series <- function(xdat) xdat / coredata(xdat)[1]
getSymbols("USO")
window <- "2013/"
# Define colour of default chart line to chart_Series in mytheme object
# which is passed to chart_Series:
mytheme <- chart_theme()
mytheme$col$line.col <- "darkgreen"
chart_Series(normalise_series(Cl(data$GLD)[window]) - 1, theme = mytheme)
add_TA(normalise_series(Cl(data$GDX)[window]) - 1, on = 1, col = "red", lty = 3)
add_TA(normalise_series(Cl(USO)[window]) - 1, on = 1, col = "blue", lty =2)
add_TA(RSI(Cl(data$GLD)), on = NA, col = "darkgreen")
add_TA(RSI(Cl(data$GDX)), on = 2, col = "red", lty = 3)
# Or add RSIs on different subpanels to improve readability of charts:
add_TA(RSI(Cl(USO)), on = NA, col = "blue", lty = 2)