CCXT——Unix毫秒级时间戳处理Python实现

本文详细介绍了在使用CCXT进行加密货币量化交易时,如何处理时间戳问题,包括交易前后检查时间戳差异,以及如何将13位UNIX时间戳转换为ISO8601格式。作者还提供了Python代码示例,包括手动实现和使用内置函数的方法。

​ CCXT目前是加密货币量化交易者使用的最多的非常好用的库。尽管距离CCXT发布已经过去了好几年,笔者最近才刚开始深入接触CCXT库,该系列将致力于分享笔者在CCXT使用、真实交易中遇到的各类问题及解决方案。

​ 在真实交易前面临的第一个问题就是时间戳,时间戳是一个不可避免的问题。时间戳指的是UNIX时间戳,即从UTC时间1970年1月1日0时0分0秒到现在所过去的时间数。

​ 时间戳无论在交易还是数据研究中都具有重要意义。在实际交易中,当交易信号产生后,应检查本地时间戳与服务器时间戳的差异,若两个时间戳差距过大,应当停止当前交易,等待下一次交易信号产生。在回测数据的研究中,CCXT一般返回的都是13位的UNIX时间戳,因此也需要将时间戳转换成正常日期后,才方便进一步地回测研究。
UNIX时间戳与ISO8601
​ Unix时间戳根据精度不同,大致有10位(秒级)、13位(毫秒级)、19位(纳秒级)。

​ 大多数交易所,包括CCXT的接口目前提供的是13位的UNIX时间戳,即毫秒级时间戳。本文将针对13位UNIX时间戳与ISO8601时间格式转换进行。

​ 注:Unix毫秒级时间戳 = Unix秒级时间戳 * 1000

​ 注:交易所目前提供的ISO8601格式为 “2021-10-09T10:08:09.999Z”

Python代码实现
​ CCXT其实内嵌了UNIX时间戳对ISO8601格式时间的转换函数,但为了深入理解概念,笔者分别展示手撸代码部分和内嵌函数调用部分。

手撸timestamp2iso

import datetime
def timestamp2iso(timestamp,format='%Y-%m-%dT%H:%M:%S.%fZ'):
    """
    时间戳转换到ISO8601标准时间(支持微秒级输出 YYYY-MM-DD HH:MM:SS.mmmmmm)

    :param timestamp:时间戳,支持 秒,毫秒,微秒级别

    :param format:输出的时间格式 默认 iso=%Y-%m-%dT%H:%M:%S.%fZ;其中%f表示微秒6位
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

net1193379199

您的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值