出於興趣,RTAQ是否提供任何不在其他R包中的東西? 0.1版在兩年前發佈,因此它看起來像一個死亡項目。無論如何,你仍然可以使用XTS的to.minute()
函數,因爲它顯示RTAQ使用xts對象。
下面是我用帶刻度並轉換成棒,以及添加其他列,如平均值/ SD一些示例代碼:
k=60
...
bars=to.period(x,k,period="secs")
colnames(bars)=c("Open","High","Low","Close")
ep=endpoints(x,"secs",k)
bars$Volume=period.apply(x,ep,length)
bars$mean=period.apply(x,ep,mean)
bars$sd=period.apply(x,ep, function(x){apply(x,2,sd)})
align.time(bars,k) #Do this last
而不是align.time
我用align.time.down
,這樣從06蜱:00:00至06:00:59.999進入標有「06:00:00」的酒吧,而不是標有「06:01:00」的酒吧。這與我擁有的歷史數據格式相匹配。如果你需要它的定義是:
align.time.down=function(x,n){index(x)=index(x)-n;align.time(x,n)}
最後,如果你有整個分鐘內無蜱,並仍然希望在您的數據爲他們吧,我用這個(相同的K = 60以上):
full_index=do.call("c",mapply(
seq.exclude_final_period.POSIXt,period_from,period_to,by=k,SIMPLIFY=F
))
bars=merge(bars,xts(,full_index),all=TRUE)
的seq.exclude_final_period.POSIXt
函數定義如下:
#' Helper for process_one_day_of_ticks(); intended as a
#' replacement for seq.POSIXt (which will not exclude the final period).
#' @internal Use from=from+by instead of to=to-by to exclude the
# first period instead.
seq.exclude_final_period.POSIXt=function(from,to,by){
to=to-by #Make the final entry exclusive
seq(from,to,by)
}
period_from
和period_to
是POSIXct
對象,描述的開始和交易時段結束。
什麼包定義了'aggregatets'函數? – 2012-07-25 13:42:13
看看'?to.period'和朋友。 – 2012-07-25 13:56:18
xts函數to.period的問題在於它將不均勻時間序列中的刻度線轉換爲另一個非均勻序列。 – marino89 2012-07-25 14:34:15