2016-07-01 58 views
6

Sto provando a tracciare due grafici su uno chartSeries in quantmod in R. Sto avendo qualche difficoltà a farlo.Aggiunta di più serie di grafici in 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() 

risposta

11

Si potrebbe utilizzare chart_Series invece di chartSeries.

chart_Series(Cl(data$GLD)) 
add_TA(Cl(data$GDX), on = 1) 

E poi se si vuole RSI di seguito in un pannello di sub, basta aggiungere add_RSI().

Un altro approccio è quello di utilizzare la versione> = 0.10.0 di xts (vale a dire non utilizzare quantmod a tutti), che si può ottenere da https://github.com/joshuaulrich/xts (0.10.0 non è ancora sul CRAN). La nuova funzione in xts è molto intuitiva con il plottaggio di più colonne di un oggetto xts contemporaneamente. Controlla ?plot.xts per esempi di nuove funzionalità.

Edit # 2:

Per vedere relative variazioni più facilmente, si può normalizzare la vostra serie di prezzo in molti modi. Questo è un approccio tipico (con un 0 origine è quello che fa Google grafici):

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) 

enter image description here

+0

c'è un modo per normalizzare il grafico? Quindi non è sui dati di prezzo assoluto, ma ridimensionato per confrontare i grafici – Defcon

+0

in scala in che senso? Sul grafico principale? Puoi dividere i prezzi della sicurezza per il livello di prezzo iniziale in modo che entrambi inizino da 1 (per esempio) prima della stampa? – FXQuantTrader

+0

Ridimensionato in base alla percentuale ottenuta simile al grafico di Google che può sovrapporre diversi titoli. Volevo aggiungere anche percorsi rsi in modo da poter vedere le tendenze. – Defcon