这里讨论的不是如何画k线,而是如何生成特定周期k线的最高价,最低价,开盘价,收盘价。
在vnpy的vn.trader的ctaDemo中,群主大人给出了生成1分钟K线的数据的方法:只要tick.datetime.minute不同就是一条新的K线。
但怎么生成3分钟,5分钟,10分钟,15分钟的k线呢?
从群里的讨论,目前有两种方式:
1、利用tick.datetime.minute, 如果 tick.datetime.minute 能被3,5,10,15整除(也就是余数为0),那么就可以是一条新k线。
tickMinute % 3 == 0
tickMinute % 5 == 0
tickMinute % 10 == 0
tickMinute % 15 == 0
对于期货来说,这种方法到15分钟就为止了,因为期货有中间休盘时间,上午的10:15-10:30。所以15分钟以上的时间周期,要看你的策略需要的是什么样的K线。
2、利用pandas.resample
既然已经知道1分钟的k线了,那可不可以在1分钟的基础上来计算出其他时间k线呢?当然可以,请使用较新版本的pandas:
假设df为:
5分钟的:
其他的时间周期,修改一下就好了。
以上参考了群里的讨论,以及 http://stackoverflow.com/questio ... h-python-and-pandas
在vnpy的vn.trader的ctaDemo中,群主大人给出了生成1分钟K线的数据的方法:只要tick.datetime.minute不同就是一条新的K线。
但怎么生成3分钟,5分钟,10分钟,15分钟的k线呢?
从群里的讨论,目前有两种方式:
1、利用tick.datetime.minute, 如果 tick.datetime.minute 能被3,5,10,15整除(也就是余数为0),那么就可以是一条新k线。
tickMinute % 3 == 0
tickMinute % 5 == 0
tickMinute % 10 == 0
tickMinute % 15 == 0
对于期货来说,这种方法到15分钟就为止了,因为期货有中间休盘时间,上午的10:15-10:30。所以15分钟以上的时间周期,要看你的策略需要的是什么样的K线。
2、利用pandas.resample
既然已经知道1分钟的k线了,那可不可以在1分钟的基础上来计算出其他时间k线呢?当然可以,请使用较新版本的pandas:
假设df为:
5分钟的:
其他的时间周期,修改一下就好了。
以上参考了群里的讨论,以及 http://stackoverflow.com/questio ... h-python-and-pandas