Я изучаю некоторые данные о финансах Yahoo с помощью QuantMod.
Как бы я определил не только максимальную и минимальную цену за скользящее окно данных, но также точную временную отметку этих максимумов и минимумов?Я попытался which.max () с rollapply, но это только сообщает seq значения в самом скользящем окне, а не .index () строки, которая содержит метку времени.
Может кто-нибудь предложить решение?
ниже приведен воспроизводимый пример, и какой-нибудь пример вывода, который я хотел бы иметь ...
> library(quantmod)
> getSymbols("BET.L")
xmin <- rollapply(BET.L$BET.L.Close,10,min, ascending = TRUE)
names(xmin) <- "MinClose"
xmax <- rollapply(BET.L$BET.L.Close,10,max, ascending = TRUE)
names(xmax) <- "MaxClose"
head(cbind(BET.L$BET.L.Close, as.xts(xmax), as.xts(xmin)),15)
BET.L.Close MaxClose MinClose
2010-10-22 1550.00 NA NA
2010-10-25 1546.57 NA NA
2010-10-26 1545.00 NA NA
2010-10-27 1511.26 NA NA
2010-10-28 1490.00 1550.00 1395
2010-10-29 1435.00 1546.57 1381
2010-11-01 1447.00 1545.00 1347
2010-11-02 1420.00 1511.26 1347
2010-11-03 1407.00 1490.00 1347
2010-11-04 1395.00 1447.00 1347
2010-11-05 1381.00 1447.00 1347
2010-11-08 1347.00 1490.00 1347
2010-11-09 1415.00 1490.00 1347
2010-11-10 1426.00 1490.00 1347
2010-11-11 1430.00 1490.00 1347
и типвывод, который я хотел бы получить, выглядел бы примерно так:
BET.L.Close MaxClose MinClose MaxDate MinDate
2010-10-22 1550.00 NA NA NA NA
2010-10-25 1546.57 NA NA NA NA
2010-10-26 1545.00 NA NA NA NA
2010-10-27 1511.26 NA NA NA NA
2010-10-28 1490.00 1550.00 1395 2010-10-22 2010-11-04
2010-10-29 1435.00 1546.57 1381 2010-10-25 2010-11-05
В идеале любой подход, который я использую, должен учитывать факт дублирования цен, который является обычным явлением, и в этом случае я бы приказал своему окну взять первоеиз максимальных значений и последнее из минимальных значений.