返回列表 发布新帖

《极速回测利器:使用Feather加速行情数据读取,速度提升800倍!》

4955 5
发表于 2024-2-27 18:36:08 | 显示全部楼层 阅读模式

前言

在进行策略回测时,经常需要使用历史K线数据。尤其是在股票池较多、回测时间比较长的情况下,传统的数据读取方式往往效率低下,尤其对于配置较低的硬件来说,用户体验更是不佳。

为了提高K线数据的读取速度并改善用户体验,我们可以结合迅投的行情接口,采用更高效的数据结构——Feather。

如何使用?三大操作步骤如下:

  • 1.生成Feather数据文件——极速准备行情数据
  • 2.修改策略,将数据读取代码替换为Feather格式
  • 3.进行回测

详细指引:

1.生成Feather数据:操作轻松,速度提升近800倍

以下是已准备好的数据,您只需根据实际情况修改参数即可:

import os

# 参数设置
data_dir_path = r'E:\tokendatadir'
start_time      ='19990101'
end_time        ='20240227'
period          ='1d'
dividend_type   ='front_ratio'  # 等比前复权
token           ='' # 填自己的实际token,可以加群或者https://dict.thinktrader.net/dictionary/?id=I3DJ97#%E5%A6%82%E4%BD%95%E6%88%90%E4%B8%BA-vip-%E8%A1%8C%E6%83%85%E7%94%A8%E6%88%B7  了解详细信息


output_dir = os.path.join(data_dir_path, r'feather')
if not os.path.exists(output_dir):
    os.makedirs(output_dir)

if 1:
    # 导入 xtdatacenter 模块

    from xtquant import xtdatacenter as xtdc  
    xtdc.set_token(token)  
    xtdc.set_data_home_dir(data_dir_path) 
    print(help(xtdc.set_data_home_dir))  
    xtdc.init()


from xtquant import xtdata
#下载

xtdata.download_sector_data()
stock_lists = xtdata.get_stock_list_in_sector('沪深A股')


def on_download(info):
    print(info)


if 1:
    xtdata.download_history_data2(stock_lists, start_time=start_time, end_time=end_time, period=period,callback=on_download, incrementally=False)


ex_price = xtdata.get_market_data([],stock_lists,period=period,start_time=start_time,end_time=end_time,fill_data=False,dividend_type=dividend_type)
for col in ex_price:

    output = os.path.join(output_dir, col+period+'.feather')
    ex_price[col].T.to_feather(output)
print('完成')

注意:实际应用中,该脚本只需每天运行一次以更新数据。若仅需回测特定时间段的行情,则无需更新数据。

2.Feather与QMT速度对比:秒速读取,轻松体验

从下图可以看出,Feather的数据读取速度快了近800倍!而且几乎是秒速读取,完全没有卡顿感。 image.png

3.修改策略,使用Feather进行数据读取:极速回测,一键体验

最后,在您的策略中,将数据读取代码修改为使用Feather格式,快来体验极速回测吧!

觉得文章内容有帮助的话,在下方回复是激励笔者更新最好的鼓励!!

欢迎和我一起加入迅投组建的 QMT 实战交流社群,交流群内有许多做量化交易的高手和大佬,具有良好的分享和互助氛围。且迅投官方会不定期为多次分享、乐于助人的群友申请送投研专业版的机会。

一起分享见解、交换信息、并共同进步,就像群友说的:“就算周末,晚上也有地方沟通交流!”

企业微信截图_17235220909173.png

评论5

*******6371
发表于 2024-2-29 10:59:14 | 显示全部楼层
点赞
心如止水
发表于 2024-2-29 16:24:22 | 显示全部楼层

哈哈点赞+1!
*******2821
发表于 2024-7-11 18:34:23 | 显示全部楼层

如果能把用 feather 读取数据的代码也贴出来更好

如果能把用 feather 读取数据的代码也贴出来更好.


这里怎么 @ 人呢?
*******2821
发表于 2024-7-11 18:36:12 | 显示全部楼层
我想 @心如止水
*******2821
发表于 2024-7-11 18:36:34 | 显示全部楼层

怎么 @ 你呢?

回复

您需要登录后才可以回帖 登录 | 立即注册

客服专线

400-080-8112

用思考的速度交易,用真诚的态度合作,我们是认真的!
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2025 迅投QMT社区 版权所有 All Rights Reserved. 京ICP备2025122616号-3
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表