怎么进行针对vnpy的不同期货品种行情数据清理
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这期内容当中小编将会给大家带来有关怎么进行针对vnpy的不同期货品种行情数据清理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。vnpy自带的行情清理功能较为简单,只
千家信息网最后更新 2026年11月03日怎么进行针对vnpy的不同期货品种行情数据清理
这期内容当中小编将会给大家带来有关怎么进行针对vnpy的不同期货品种行情数据清理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
vnpy自带的行情清理功能较为简单,只是在清除非交易时段,没有考虑周六日;而且只是笼统给了一个最大时间交易范围,像股指期货没有夜盘,螺纹钢晚上11点就结束,但是默认只是结束在凌晨两点半这个最大交易时间。 所以写了一个方法,按照不同品种,更细致的清理。
可以直接把这个方法插入\DataRecording\runDataCleaning.py, 然后替代原来方法。也可以自己另外调用。
# ----------------------------------------------------------------------def cleanDataAdv(dbName, collectionName, start): """清洗数据""" #新的静态数据 # 这里以商品期货为例 MORNING_START = time(9, 0) MORNING_REST = time(10, 15) MORNING_RESTART = time(10, 30) MORNING_END = time(11, 30) AFTERNOON_START = time(13, 30) AFTERNOON_END = time(15, 0) NIGHT_START = time(21, 0) NIGHT_END = time(2, 30) #股指期货 STOCK_FUTURE = ["IC", "IF", "IH"] MORNING_START_STOCK = time(9, 30) AFTERNOON_START_STOCK = time(13,0) AFTERNOON_END_STOCK = time(15, 0) #晚上11点结束交易,不全,请自行维护 PM11CLOSE_FUTURE = ['rb','ru','bu','hc','sp'] NIGHT_END_11 = time(23, 00) #晚上11点半结束交易,不全,请自行维护,大连只有一位标志,所以带1 PM1130CLOSE_FUTURE = ['FG','MA','SR','TA','RM','OI','CF','CY','ZC','i1','j1','m1','p1','y1'] NIGHT_END_1130 = time(23, 30) #凌晨1点半结束交易,不全,请自行维护 AM1CLOSE_FUTURE = ['cu','pd','al','zn'] NIGHT_END_AM1 = time(1, 00) print(u'\n清洗数据库:%s, 集合:%s, 起始日:%s' % (dbName, collectionName, start)) mc = MongoClient('localhost', 27017) # 创建MongoClient cl = mc[dbName][collectionName] # 获取数据集合 d = {'datetime': {'$gte': start}} # 只过滤从start开始的数据 cx = cl.find(d) # 获取数据指针 for data in cx: # 获取时间戳对象 dt = data['datetime'].time() # 默认需要清洗 cleanRequired = True ####如果是股指期货,这没有上午休息和夜盘,9点半到11点半,下午1点到下午三点,周六日无行情 if collectionName[:2] in STOCK_FUTURE: if data['datetime'].weekday() is not (5 or 6): if ((MORNING_START_STOCK <= dt < MORNING_END) or (AFTERNOON_START_STOCK <= dt < AFTERNOON_END_STOCK)): cleanRequired = False ####如果是11点结束,则周六日无行情 elif collectionName[:2] in PM11CLOSE_FUTURE: if data['datetime'].weekday() is not (5 or 6): if ((MORNING_START <= dt < MORNING_REST) or (MORNING_RESTART <= dt < MORNING_END) or (AFTERNOON_START <= dt < AFTERNOON_END) or ( NIGHT_START <= dt = NIGHT_START) or (dt < NIGHT_END_AM1)): cleanRequired = False else: # 如果在交易事件内,则为有效数据,无需清洗 if data['datetime'].weekday() is not 6: if ((MORNING_START <= dt < MORNING_REST) or (MORNING_RESTART <= dt < MORNING_END) or (AFTERNOON_START <= dt < AFTERNOON_END) or (dt >= NIGHT_START) or (dt < NIGHT_END)): cleanRequired = False # 如果需要清洗 if cleanRequired: print(u'删除无效数据,时间戳:%s' % data['datetime']) cl.delete_one(data) print(u'清洗完成,数据库:%s, 集合:%s' % (dbName, collectionName)) 上述就是小编为大家分享的怎么进行针对vnpy的不同期货品种行情数据清理了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
数据
交易
清洗
期货
时间
不同
品种
行情
只是
方法
最大
有效
事件
内容
数据库
分析
笼统
细致
专业
中小
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技企业
今日互联网科技
互联网与新科技
嘟嘟瓜互联网科技
亿策互联网科技
苏州互联网科技贷款公司
互联网科技公司做什么
宝灵互联网科技有限公司
崇明区互联网教育科技诚信经营
燊美集互联网科技有限公司
迪庆互联网科技招生
深圳市罗太互联网科技有限公司
山东有哪些互联网科技公司
上海同邻互联网科技有限公司规模
互联网科技手机排行榜
中国新注册互联网科技
悟空问答互联网科技
安徽零酒互联网科技有限公司
东风日产互联网科技公司叫什么
中国主要互联网科技公司
互联网科技名片
互联网与科技金融数据
互联网金融 科技
互联网金融 金融科技
湖南洣水互联网科技有限公司扣款
西藏七维空间互联网科技有限公司
北京大学互联网科技怎么样
乌苏新华互联网科技做什么的
畅思互联网科技
启辰互联网科技