Ich arbeite an einer relativen Rückkehrfunktion, um Preise einen Ticker mit einem Benchmark zu vergleichen. Die Funktion ist ziemlich einfach: Cl(x)/Cl(Benchmark)
.Rekonstruieren original xts in einem templated quantmod newTA Aufruf
Ich habe Probleme, den Index (Daten) der Eingabe an den Benchmark auszurichten. Ich glaube, ich habe das auf ein Zeitzonenproblem reduziert, wenn ich versuche, die an meine TA-Funktion übergebenen Daten in ein xts-Objekt zu interpretieren. Dafür verwende ich x <- try.xts(x, error = as.matrix)
. Dies scheint jedoch die Zeitzone aus den ursprünglichen Daten zu verpassen.
Irgendwelche Ideen, wie man die Zeitzone von den ursprünglichen Daten von innerhalb eines quantmod
newTA()
templated Anrufs erhält?
Die TA-Funktion:
TestTA <- function(x) {
x <- try.xts(x, error = as.matrix)
print(paste("Input to TA", indexClass(x), indexTZ(x), sep = ": "))
SPY <- getSymbols("SPY", auto.assign = FALSE, src = "yahoo")
print(paste("call wihitn TA", indexClass(SPY), indexTZ(SPY), sep = ": "))
m <- merge(Cl(x), Cl(SPY), all = TRUE)
print(tail(m))
return(Cl(x)/Cl(SPY)) # This is what i really want to do, but cant until i get the dates to line up
}
addTestTA <- newTA(TestTA)
Der Test:
IBM <- getSymbols("IBM", auto.assign = FALSE, src = "yahoo")
paste("Raw IBM DATA", indexClass(IBM), indexTZ(IBM), sep = ": ")
chartSeries(IBM, TA = "addTestTA()")
Das gibt das folgende Zwischenergebnis (während des Tests)
IBM.Close SPY.Close
2017-01-24 17:00:00 NA 229.57
2017-01-25 00:00:00 178.29 NA
2017-01-25 17:00:00 NA 229.33
2017-01-26 00:00:00 178.66 NA
2017-01-26 17:00:00 NA 228.97
2017-01-27 00:00:00 177.30 NA
Wie Sie sehen können, gibt es Zeit Elemente, die aufgrund von Zeitzonen im Index erscheinen, die Ursache für Fehlausrichtung sind.
thx @hvollmeier.Das ist ungefähr die Workaround ive gewesen.was ich tatsächlich tue, ist, den Benchmark als eine Spalte auf den Preis xts zusammenzufassen und dann die Namen/Ordinalzahlen der Spalten, die den Preis und den Benchmark enthalten, an meine RelPerf-Funktion zu übergeben. Wie Sie darauf hinweisen, erlaubt mir das, die Ausrichtung im Voraus auszuarbeiten. stört mich immer noch, dass ich nicht zu meinen ursprünglichen Daten zurückkehren kann. fühlt sich an, als würde ich etwas falsch machen – Ethan
@Ethan, siehe mein Update – hvollmeier