私はquantmodを介していくつかのyahoo財務データを研究しています。
データのローリングウィンドウでの最大価格と最小価格だけでなく、それらの高値と安値の正確なタイムスタンプもどのように決定しますか?rollapplyでwhich.max()を試しましたが、これはローリングウィンドウ自体の値のシーケンスのみを報告し、タイムスタンプを保持する行の.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
理想的には、私が採用するアプローチは、一般的な重複価格の事実に対応する必要があります。この場合、ウィンドウに最大値の最初と最小値の最後を取得するように命令します。