如何构建回测系统(七)
清洗数据
内存不足问题
- 单个对象粗略估算(刨除所有的对象辅助数据):438byte
- 约有5*60*60*3000条数据
- 为了使得在8GB左右的系统中也能顺利运行需要做改进
数据不连续问题
- ETF中成分股出现没有交易无法从逐笔还原
改进
- 切割导入时间,实践是每三十分钟一个段落导入
- 所有需要前置数据可以预留在内存
- 做到每个段落指执行读1次数据库,写一次数据库
- 将导入任务抽离,并且每进行一次导入保存当前进度以方便过程恢复
- 往前搜索直到股票第一次开市价格
- 需要保存股票的天数据
- 使用现金替代来代替无交易数据
结果
- 在8GB系统中,成功完成4GB数据导入
- iopv均有数据,但无法验证,下一步想办法验证