VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 13
声望: 0

目前在使用 VNPY做回测,遇到的问题 是load data 为什么会占用很大的内存?
mongodb 单个数据库 一共才2.7G(而且里面包含了2个品种+其合约的数据),简单理解 load了数据库2/3的分钟bar,内存使用 21G左右? 怎么会占用怎么大空间?请教下 如何解决?还是说是使用上有不当的地方?
description

Member
avatar
加入于:
帖子: 1484
声望: 105

这里内存占用量确实有点大,正常期货10年分钟线(100-110W条)也就4G以内的样子,建议查下具体的K线数据有多少根

Member
avatar
加入于:
帖子: 13
声望: 0

我加载的数据是50ETF及其合约,2015-2022年的全部数据,大概2700W左右的数据项
每条bar数据,大概占用750字节的内存空间(这点我之前并没有意识到,1,python的消耗确实大。2,load data 装载的数据项,个人认为可以优化 精简一些内容,例如字典对比列表 就多出很多不必要的key信息)

Member
avatar
加入于:
帖子: 13
声望: 0

这里 我想再问个问题,在这个基础上 按照vnpy的实例 做参数优化(遗传算法)。
假设启动了12个线程的情况下:
1,每个线程需要重新load data么?
2,每个线程占用的内存 都会21G么?(基于当前示例)

Member
avatar
加入于:
帖子: 1484
声望: 105
  1. 目前来看是的
Member
avatar
加入于:
帖子: 1484
声望: 105

aiobird wrote:

我加载的数据是50ETF及其合约,2015-2022年的全部数据,大概2700W左右的数据项
每条bar数据,大概占用750字节的内存空间(这点我之前并没有意识到,1,python的消耗确实大。2,load data 装载的数据项,个人认为可以优化 精简一些内容,例如字典对比列表 就多出很多不必要的key信息)

你是要做期权策略?期权回测的模式不一样,数据要逐日加载的(每天合约范围会变)

Member
avatar
加入于:
帖子: 13
声望: 0

MTF wrote:

aiobird wrote:

我加载的数据是50ETF及其合约,2015-2022年的全部数据,大概2700W左右的数据项
每条bar数据,大概占用750字节的内存空间(这点我之前并没有意识到,1,python的消耗确实大。2,load data 装载的数据项,个人认为可以优化 精简一些内容,例如字典对比列表 就多出很多不必要的key信息)

你是要做期权策略?期权回测的模式不一样,数据要逐日加载的(每天合约范围会变)

是的,我们现在主要在期权上,其次是股票。
请教下 “数据要逐日加载的” 这个是哪个回测模块支持的? 我现在使用的是 vnpy_portfoliostrategy 。
(我需要回测6年的期权数据,这个每日加载数据 在哪里设置?能指点下么?)

Member
avatar
加入于:
帖子: 1484
声望: 105

有个针对期权的vnpy_optionstrategy模块,不过目前尚未开源

Member
avatar
加入于:
帖子: 13
声望: 0

MTF wrote:

有个针对期权的vnpy_optionstrategy模块,不过目前尚未开源
哦,好的。
基于vnpy,在期权回测上 我们做了些内存上的优化。
1,加载历史数据的时候,忽略所有bar 一致的信息。
2,用列表替换了字典。
3,load bar, 可以选择数据项。
现在测试结果,内存使用大约节约了35%的空间,回测的速度会慢10%左右(速度会慢,是因为再播放bar的过程中,会把load bar中的精简数据 恢复到初始状态。这样代码改动会小一些。)。

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

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】