栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【python】datetime在VeighNa中的使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【python】datetime在VeighNa中的使用

目录
  • 介绍
  • 1.datetime基础
    • 导入相关包
    • 获取当前时间
    • 转化为日期
    • 转化为时间
    • 创建自定义时间
    • 求时间差值
    • 检查偏移量
    • 计算相对日期
    • datetime转化为字符串
    • 字符串转datetime
  • 2.VeighNa中底层接口的时间处理

–

介绍

本文以量化交易实战为学习导向,介绍了datetime模块在量化交易中的使用,学习本文可以满足交易中对时间数据格式的常用处理方法。


1.datetime基础 导入相关包
from datetime import date,time,datetime,timedelta
获取当前时间
current_dt = datetime.now()
print(current_dt,type(current_dt))
2022-06-07 21:08:05.708484 
转化为日期
current_date = current_dt.date()
print(current_date,type(current_date))
2022-06-07 
转化为时间
current_time = current_dt.time()
print(current_time,type(current_time))
21:08:05.708484 
endtime = time(14,55)
print(endtime)
if current_time >= endtime:
    print("执行平仓操作")
else:
    print("执行正常交易")
14:55:00
执行平仓操作
创建自定义时间
option_expiry = datetime(2023,6,7,21,13,0)
print(option_expiry)
2023-06-07 21:13:00
求时间差值
time_left = option_expiry - current_dt
print(time_left,type(time_left))
365 days, 0:04:54.291516 
检查偏移量
print("剩余天数",time_left.days)
print("剩余秒数",time_left.total_seconds())
剩余天数 365
剩余秒数 31536294.291516
计算相对日期
today = datetime.now()
yesterday = today - timedelta(days=1)
tomorrow = today + timedelta(days=1)
print(today)
print(yesterday)
print(tomorrow)
2022-06-07 21:19:38.127347
2022-06-06 21:19:38.127347
2022-06-08 21:19:38.127347
datetime转化为字符串
current_dt.strftime("%Y-%m-%d %H:%M:%S.%f China Beijing Time")
'2022-06-07 21:08:05.708484 China Beijing Time'
字符串转datetime
demo_str = "2022/6/7 204635"
demo_dt = datetime.strptime(demo_str,"%Y/%m/%d %H%M%S")
print(demo_str,type(demo_dt))
2022/6/7 204635 
2.VeighNa中底层接口的时间处理

在ctp_gateway文件中我们可以在这个回调函数中打印出来:这个函数每2秒会被调用一次,打印出交易所推送的信息。


运行VegihNa后,输出信息:


在数据库中记录时间戳的时候,我们需要把两个交易所的时间转换为同一时间,不然一个是北京时间一个是芝加哥时间,后面跑回测的时候还需要自己再做转换,非常麻烦。

我们在之前一片文章中有聊到这个问题【VeighNa】VeighNa载入csv历史数据

我们看到下面这个代码,用了datetime.strptime将字符串转化为datetime对象,然后再调用pytz包下的locallize实例化这个dt对象,转化为设置好的带有时区的datetime对象。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/953758.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号