遍历多个大型HDF5文件的最快方法?

问题描述

我正在用Python构建一个事件驱动的回测引擎,用于统计套利的大学研究项目。对于NVME SSD上的HDF5文件中的100多种证券,我大约有1.5tb的报价数据。每个文件均由4列组成,分别是日期时间,出价,要价和交易量,以用于单独的证券。

示例数据:

         DateTime        Bid      Ask     Volume
20070605 00:06:04.912  0.88197  0.88243       1
20070605 00:06:14.597  0.88207  0.88253       1
20070605 00:06:19.776  0.88215  0.88261       1
20070605 00:06:30.602  0.88224  0.88270       1
20070605 00:06:33.012  0.88263  0.88317       3

我的第一种方法是将文件合并为一个数据帧,然后使用Itertuples对其进行迭代,当仅分析一些适合内存的文件时,该方法可以很好地工作。但是,我想分析所有证券,这样我就可以连续运行测试,例如贝叶斯条件协整,以完善和/或更改将被传递到交易策略的证券池,而不是挑选一些证券从一开始。

迭代这种大小的数据的最佳方法是什么?在遍历它们之前,我应该将文件分开还是将它们全部合并为一个大HDF5文件吗?

我应该如何存储计算,NumPy数组,pandas Dataframe等中的值?

我正在使用Python 3.7.9 我的计算机运行Windows 10,具有64GB的RAM和Ryzen 3700X。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)