首先,我的电脑是神舟笔记本超级战神,12线核(应该是6核切割成的12核),内存16G,CPU最大使用被限制在68%。
其次,数据时从oanda官网下载到的5s的31个货币对的bid和ask的K线报价,oanda限制每一次下载最多5000个K线(bar)。
最后,下载下来的结果得到80多万个csv文件,大小130多个G,每个文件是6小时时间长度的5s的bar数据
----
1、首先想的是使用os.listdir获取这个文件夹中的文件名称,做区分处理
os.listdir基本上跑不出来结果,文件夹文件太多。在网上找到了替代方法,使用os.scandir可以得到所有的文件名称
2、考虑把文件名分组,不同品种不同的小的文件夹,把大的文件夹拆分成62个小的文件夹
实际上,这个在下载的时候就应该考虑到,每下载一个,就直接放到子文件夹中
3、把每个文件夹中的文件,按照年份,形成每年每年的数据
如果是单线程跑的话,估计能跑好多天。使用多进程,加快效率(也不能开太多,磁盘读写有限制)
4、把每年每年的数据合并一个文件,这样就得到几百个每年每年的文件了。
5、把每年的bid,ask的价格合成为time,bid,ask的模式,以5s钟的收盘价作为bid和ask的价格
6、把每年的合并,成为一个总体的全部的数据。
------------------------
感悟:当最初的目标太大的时候,当问题似乎不可能解决的时候,学会拆分,把大的化小,把难的变容易,一点一点去完成。