以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  占用内存数值不断增大,求解救方案  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=98010)

--  作者:chenfansky
--  发布时间:2016/5/30 22:37:45
--  占用内存数值不断增大,求解救方案
以下为日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自定义数据,在启动后台程序化交易后(加载的品种数量越多,效果越明显),后台程序化的启动会引起内存占用不断增大(有行情数据的情况下),并最终有可能导致电脑死机。

求原因和后续针对此问题的有效解决方案,谢谢~



--  作者:王锋
--  发布时间:2016/5/31 8:49:03
--  

你确定你的机器是这么设置的吗?

我们测试过按照你的说明,并不会造成这个问题

[此贴子已经被作者于2016-5-31 8:58:41编辑过]

--  作者:chenfansky
--  发布时间:2016/5/31 9:12:31
--  
需要在行情实盘跳动中进行测试,我的交易系统比这复杂,我分行去注释找内存增大的原因(代码逐行注释排除法),发现有用到的selfdata的地方都会引起内存逐渐变大。你们可以多多尝试下,建立一个程序化交易系统,引用自定义数据,监控的品种尽可能多。后来我改了代码,降低1秒钟轮询自定义数据频次(比如10分钟才执行自定义数据的语句),一切就正常了。
--  作者:王锋
--  发布时间:2016/5/31 9:20:16
--  

你试试将公式中所有代码去都去掉,只保留自定义数据使用这一行,然后看一下内存占用情况,如果是自定义数据的问题,那么一定会重现的


--  作者:pyd
--  发布时间:2016/5/31 13:52:06
--  
按1楼说的设置跟踪半个小时内存没有升到100%导致崩溃,内存从开始的77%升到83%之后也会降
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看