首页 文章

计算转换为OHLC时的滴答数

提问于
浏览
1

我在R中有一个xts对象,myticks_xts,它由来自财务安全的tick数据组成,如下所示:

myticks_xts[1:10,]
                         V3      V4            V5
2014-01-01 21:55:34.378 1.37622 1.37693 1.37666900000
2014-01-01 21:55:40.410 1.37624 1.37698 1.37673727273
2014-01-01 21:55:47.210 1.37619 1.37696 1.37673702703
2014-01-01 21:55:57.963 1.37616 1.37696 1.37673702703
2014-01-01 21:56:03.117 1.37616 1.37694 1.37670529412
2014-01-01 21:56:07.253 1.37616 1.37692 1.37665407407
2014-01-01 21:56:16.911 1.37620 1.37695 1.37673411765
2014-01-01 21:56:19.433 1.37615 1.37692 1.37665407407
2014-01-01 21:56:24.970 1.37615 1.37691 1.37668466667
2014-01-01 21:56:24.971 1.37615 1.37689 1.37667203390

我可以使用以下方法将此刻度数据转换为10秒柱(OHLC数据):

to.period(myticks_xts,'seconds',10)

但是,我希望有一个额外的列代表'Volume',它会计算每个柱内的刻度数 . 例如,在上面,条形码21:55:30-21:55:40将有1个刻度,条形图21:55:40-21:55:50将有2个刻度,依此类推 . 有一个简单的方法吗?

1 回答

  • 1

    最简单的方法是创建一个名为 Volume 的列 . 然后 to.period 会神奇地为你做 .

    x <- cbind(myticks_xts$V5, Volume=1)
    to.period(x, "seconds", 10)
    #                             x.Open      x.High       x.Low     x.Close x.Volume
    #2014-01-01 21:55:34.378 1.376669000 1.376669000 1.376669000 1.376669000        1
    #2014-01-01 21:55:47.210 1.376737273 1.376737273 1.376737027 1.376737027        2
    #2014-01-01 21:55:57.963 1.376737027 1.376737027 1.376737027 1.376737027        1
    #2014-01-01 21:56:07.253 1.376705294 1.376705294 1.376654074 1.376654074        2
    #2014-01-01 21:56:19.433 1.376734118 1.376734118 1.376654074 1.376654074        2
    #2014-01-01 21:56:24.970 1.376684667 1.376684667 1.376672034 1.376672034        2
    

    否则,你需要使用 period.apply

相关问题