图表背后的秘密 | 如何用Python合成K线

在这篇文章中,我们会教大家自己用tick数据合成K线。我们使用的tick数据是一个事先保存的excel文件:

这是螺纹钢RB这一国内期货品种的tick数据,包含最新价、卖一价到卖五价、卖一量到卖五量、买一价到买五价、买一量到买五量、当日成交量、成交额、持仓量等数据。

国内期货的tick并不是逐笔的成交明细,而是每半秒截一次快照,是某一时刻市场交易情况的再现,并且这个tick数据是500ms有成交或委托有变化才会推送一次。

在用这个tick数据合成bar之前,我们先导入所需的模块:

然后把excel格式的数据文件加载成DataFrame格式:

我们可以看到第一列有一个叫“Unnamed:0”的一列,这是由于我们在保存数据的时候把它的index也一起保存了。现在我们不需要用到这一列,可以把它删除。我们也不需要数据文件中的'id','duration'这两列:

计算一下每个tick的成交量:

把datetime2这一列的格式改为只精确到分钟,因为后续我们会使用这个数据来分组。datetime2这一列是我们在下载数据的时候根据int类型的datetime转换得到的。

然后进行分组,我们按照分钟来分组,每分钟的数据分到一个组:

可以看到分组后的minute_grouped变量不是一个DataFrame,而是一个DataFrameGroupBy对象。

最后,计算K线数据:

这里的df变量已经包含了K线所需的数据,包括open、high、low、close、volume和时间数据。

以上就是把tick数据合成1分钟数据的简单代码,上述代码不是最优的,但基本实现了这一功能。大家可以尝试用其他方法去合成。

如果要把1分钟K线数据合成5分钟、15分钟、一小时等其他时间周期的K线,也是使用类似的方法。

猜你喜欢

转载自blog.csdn.net/m0_62038975/article/details/123814423