QMT多策略同时跑,先解决资源占用这件事
发布时间:57分钟前阅读:6
一个人跑两三个策略很常见,问题往往不是策略冲突,而是机器扛不住。
先算一笔账。每个策略实例都要占内存、占CPU、占行情订阅额度。回测阶段的资源消耗和实盘不同,实盘是长时间低频占用,看着不重,但几个策略叠加、再加上行情缓存和历史数据加载,内存会一路涨上去。机器一旦开始用虚拟内存,延迟就会明显变大,信号触发变慢。
能做的优化有几件。一是错开启动时间,别在开盘前同一分钟把几个策略全拉起来;二是控制订阅范围,每个策略只订阅自己需要的标的,不要全市场;三是把历史数据加载和实时运行分开,回测在盘后做,别和实盘抢资源。
还有一个思路是拆机器。不同策略放到不同设备上,互不干扰,代价是管理成本上升。资金量不大的时候,先在一台机器上把资源占住的部分摸清楚,再决定要不要拆。
最该避免的是把几个策略写成一个大文件,共享变量、共享状态。看着省事,出了问题是连环崩,排查时连是哪个逻辑出的错都分不清。
多策略的第一原则是隔离,第二原则才是效率。
资源之外还有一层隔离容易被忽略:资金隔离。几个策略共用一个账户,仓位混在一起,谁占了多少资金、谁的持仓该止损,都会变得模糊。资金量允许的话,一个策略对应一个账户,账目清楚,出问题也容易定位。
如果只能共用一个账户,至少在策略里给每笔委托打上标记,比如在备注字段写上策略代号,事后能按代号把成交拆开对账。这个习惯在策略数量增长之后,价值会越来越明显。
还有一个成本容易漏算:行情订阅和历史数据下载本身也会占用带宽和磁盘。几个策略同时启动时,同时拉数据会把网络打满,看起来像行情延迟。把数据下载安排在盘前,错开高峰,能省掉很多莫名其妙的延迟。
股票/量化开户欢迎找我!满足条件股票佣金万0.854、etf 可转债佣金万0.5、国债逆回购一折(百万分之一)!期权1.8元一张全包价!量化软件QMT+ptrade免费使用!还有888、999资金靓号等你选!
温馨提示:投资有风险,选择需谨慎。



问一问
从业认证

+微信
分享该文章
