Ich arbeite mit Minuten Daten von NASDAQ, es hat den Index "2015-07-13 12:05:00 EST"
. Ich habe die Systemzeit mit Sys.setenv(TZ = 'EST')
angepasst.ungültiger 'tz' Wert, Probleme mit der Zeitzone
Ich möchte eine einfache Buy/Hold/Sell-Strategie programmieren, deshalb erstelle ich einen Vektor von flachen Positionen als Grundlage.
pos_flat <- xts(rep(0, nrow(NASDAQ)), index(NASDAQ))
Dann möchte ich eine Einschränkung anzuwenden, dass in einem bestimmten Zeitfenster werden Positionen gebunden flach zu sein, was in meinem Fall bedeutet gleich 1.
pos_flat["T13:41/T14:00"] <- 1
Und das gibt den Fehler :
"Error in as.POSIXlt.POSIXct(.POSIXct(.index(x)), tz = indexTZ(x)) :invalid 'tz' value".
Ich bekomme auch diesen Fehler, andere Berechnungen zu tun, ich habe nur dieses Beispiel verwendet, weil es einfach ist und das Problem zeigt.
Als zusätzliche Informationen:
> Sys.timezone
function (location = TRUE)
{
tz <- Sys.getenv("TZ", names = FALSE)
if (nzchar(tz))
return(tz)
if (location)
return(.Internal(tzone_name()))
z <- as.POSIXlt(Sys.time())
zz <- attr(z, "tzone")
if (length(zz) == 3L)
zz[2L + z$isdst]
else zz[1L]
}
<bytecode: 0x03648ff4>
<environment: namespace:base>
Ich verstehe nicht, das Problem mit dem tz Wert ... Irgendwelche Ideen?
Angeben von Zeitzonen in Form von drei Buchstaben wie "EST" ist mehrdeutig. Australien hat eine EST - Eastern Standard Time wie auch Nordamerika. Besser, Land/Stadt zu verwenden. 'Bibliothek (lubridate) ymd_hms ('2000-01-01 12:11:10', tz = 'australien/melbourne')' –