-- 占用内存数值不断增大,求解救方案
以下为日K线数据:
1、AA:close*openint*multiplier; AA为自定义数据指标线,上交所/郑交所/大交所,3个交易所所有品种,横向数据统计,对AA所有数值进行累加;
2、新建立一个交易系统,BB:=selfdata(\'data1\'); // (data1为AA的自定义数据),其余语句忽略。
3、建立后台程序化交易(里面变量引用到自定义数据),日K线模式,后台程序化交易品种选择3个交易所全品种(总共大约四五百个品种),1秒钟轮询;
本人观察到的现象如下:
1)没有启动后台程序化交易,内存占用正常;
2)启动后台程序化交易,内存每2分钟左右会增加1个点,一旦内存达到100,电脑会死机,人工强制重启电脑后,金字塔可能会提示某个交易所的历史日K数据出现异常,是否恢复默认值;
3)重新修改AA:if(openint>200000,1,0); 目的为了降低AA的计算复杂度,排除算法复杂度对内存影响。测试结果同上。
问题点概述如下:
只要对全市场启用某种自定义数据(跟算法复杂度无关,不论横向数据统计功能,还是证券序列相关),交易系统有调用到selfdata自定义数据,在启动后台程序化交易后(加载的品种数量越多,效果越明显),后台程序化的启动会引起内存占用不断增大(有行情数据的情况下),并最终有可能导致电脑死机。
求原因和后续针对此问题的有效解决方案,谢谢~