2016-07-01 36 views
6

Ich versuche, zwei Diagramme auf einem in quantmod in R zu plotten. Ich habe einige Schwierigkeiten dabei.Hinzufügen mehrerer Chart-Reihen 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() 

Antwort

11

könnten Sie chart_Series anstelle von chartSeries.

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

Und dann, wenn Sie RSI wollen unten in einem Sub-Panel, nur add_RSI() hinzuzufügen.

Ein weiterer Ansatz ist die Version verwenden> = 0.10.0 von xts (das heißt keine quantmod nicht verwenden), die Sie von https://github.com/joshuaulrich/xts bekommen (0.10.0 ist noch nicht auf CRAN). Die neue plot Funktion in xts ist sehr freundlich mit Plotting mehrere Spalten eines xts Objekts auf einmal. Beispiele für neue Funktionen finden Sie unter ?plot.xts.

Edit # 2:

Um weitere relative Änderungen leicht zu sehen, können Sie Ihre Preisreihen in vielerlei Hinsicht normalisieren. Dies ist ein typischer Ansatz (eine 0 Herkunft Verwendung ist, was Google Chart tun):

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

ist es eine Möglichkeit, um die Grafik zu normalisieren? Es handelt sich also nicht um absolute Kursdaten, sondern skaliert um die Charts zu vergleichen – Defcon

+0

Skaliert in welchem ​​Sinne? Auf dem Hauptdiagramm? Sie könnten die Sicherheitspreise durch das anfängliche Preisniveau teilen, so dass beide bei 1 (sagen wir) vor dem Plotten beginnen? – FXQuantTrader

+0

Skaliert nach Prozentsatz ähnlich dem Google-Diagramm, das verschiedene Bestände überlagern kann. Ich wollte auch RSS-Pfade hinzufügen, damit ich die Trends sehen kann. – Defcon