Я работаю над относительной функцией возврата, чтобы сравнить цены с тикером. Функция довольно проста: Cl(x)/Cl(Benchmark)
.Восстановить оригинальные xts в шаблоне Quantmod newTA call
У меня возникли проблемы с выравниванием индекса (дат) ввода к эталону. Я думаю, что я сузил это до проблемы с часовым поясом, когда я пытаюсь интерпретировать данные, переданные моей TA-функции, в объект xts. Для этого я использую x <- try.xts(x, error = as.matrix)
. Однако это, по-видимому, не учитывает часовой пояс от исходных данных.
Любые идеи о том, как получить часовой пояс от исходных данных из quantmod
newTA()
шаблонный вызов? Функция
ТА:
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)
Тест:
IBM <- getSymbols("IBM", auto.assign = FALSE, src = "yahoo")
paste("Raw IBM DATA", indexClass(IBM), indexTZ(IBM), sep = ": ")
chartSeries(IBM, TA = "addTestTA()")
Это выводит следующий промежуточный результат (в процессе тестирования)
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
Как вы можете видеть, есть время элементы, возникающие в индексе из-за часового пояса, которые вызывают несоосность.
thx @hvollmeier. thats примерно обходной способ использования ive.то, что я на самом деле делаю, заключается в объединении эталона в качестве столбца на цену xts, а затем передать имена/ординалы столбцов, содержащих цену и контрольную сумму, для моей функции RelPerf. Как вы указываете, это позволяет мне разработать выравнивание вверх. по-прежнему беспокоит меня, что я не могу вернуться к моим исходным данным. чувствует, что я что-то делаю неправильно – Ethan
@Ethan, см. мое обновление – hvollmeier