量化交易经常需要和时间打交道,对于一些日内策略或交易频率比较高的策略,对日期和时间的处理至关重要。Python提供了time、calendar、datetime等库,用于处理日期和时间,其中较为常用的是time库和datetime库。
在Python中,处理时间需要使用time库,导入time库非常简单,使用import关键字即可。在导入time库后,即可调用该库中的函数对时间数据进行处理。例如,使用time.time()函数可以读取当前时间的秒级时间戳,示例代码如下:
输出结果如下:
在这个例子中,首先使用import关键字导入time库,然后调用time库中的time()函数获取当前时间戳,最后使用Log()函数将当前时间戳打印到日志中。
时间戳是指自1970年1月1日(00:00:00 GMT)至当前时间的总秒数,常用的有秒级时间戳和毫秒级时间戳。时间戳具有唯一性,是用于验证某个时间点存在的数据。严格来说,无论在地球的哪个地方、哪个时区,任意时间的时间戳都是相同的。示例代码如下:
输出结果如下:
在上述代码中,调用time库中的time()函数获取当前时间戳,然后使用type()函数判断该时间戳的数据类型。根据返回结果可知,该时间戳是float型数据。
根据前面的例子可知,时间戳是一个数字,在商品期货中,所有数据都是基于时间戳的。但如果数据以时间戳形式显示,看起来不直观,不利于观察和分析数据,因此需要将时间戳转换为时间。
将时间戳转换为时间,可以使用time库中的函数转换,也可以使用发明者量化SDK中的_D()函数转换。示例代码如下:
输出结果如下:
注意:时间戳是不分时区、全球统一的,在量化交易中一般不需要考虑时区的问题。