vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 22
声望: 0

VNPY在进行参数优化的的时候,每一次calculate_result()都要load_data()一次。很多时候感觉数据载入很费时间,是否可以在参数寻优的时候不重复载入历史数据?如果要实现不重复载入不知道有什么难点?我用的sqlite的数据库。

Member
avatar
加入于:
帖子: 25
声望: 1

顶起,我刚想发个这样的帖子,合理的顺序应该是先 engine.load_data(),然后再engine.add_strategy(),否则调试策略的效率非常低。因为我是用tick来回测的,加载三年的数据要30分钟左右,根本没法玩~,虽然前期我也是只用一两个星期的时间来回测调试。

Member
加入于:
帖子: 130
声望: 34

jiu wrote:

VNPY在进行参数优化的的时候,每一次calculate_result()都要load_data()一次。很多时候感觉数据载入很费时间,是否可以在参数寻优的时候不重复载入历史数据?如果要实现不重复载入不知道有什么难点?我用的sqlite的数据库。

其实vnpy已经用lu_cache技术,缓存了数据库载入数据,而且其实现代数据都有最近缓存技术,我用cprofile计算过,从数据库载入并不是瓶颈;瓶颈反而在合并k线,比如数据库分钟线合并5分钟,10分钟这个地方;在1.9.2我是修改了,在启动参数优化时候,按照k线参数生成对应时间长度的多个k线队列并储入数据库,还要修改bargenertor,改为从数据库抓取而不是自己合成k线。

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3