以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 调用vba自定义函数时,内存消耗极快 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=95750) |
-- 作者:microsoft -- 发布时间:2016/4/1 14:20:06 -- 调用vba自定义函数时,内存消耗极快 使用的是后台预警,监控期货主力合约和股票主要指数,一共57个品种,1、3、5、10、15、30、60分钟和1日周期, 使用指定数量500刷新计算,固定时间间隔1秒, 开始预警不到五分钟金之塔占用内存8G vba代码是 Function getBoDuan4(Formula,openArr,highArr,lowArr,closeArr,dateArr,timeArr,macdArr,macdDisArr) \'系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码 getBoDuan4=0 arrLen = ubound(openArr) dim rtnVal \'redim rtnVal(arrLen*6) getBoDuan4 = rtnVal End Function pel代码是 WARNING_DISABLE:6; arrayLen:=ubound(close); diff1:= EMA(CLOSE,S) - EMA(CLOSE,P); dea1:= EMA(diff1,M); macd1:=2*(diff1-dea1); macd_not_dis:barslast(macd1*ref(macd1,1) <=0),nodraw; boduan:=boduanTmp+1; tmp0:=boduan*3+1; tmp1:= boduan * (boduan-1)/2; VARIABLE:flag[boduan]=0; VARIABLE:dateArr[boduan]=0; variable:timeArr[boduan]=0; variable:boHighDArr[boduan]=0; variable:boHighTArr[boduan]=0; variable:boLowDArr[boduan]=0; variable:boLowTArr[boduan]=0; variable:boduanArr[boduan*11]=0; boduanArr:=getBoDuan4(open,high,low,close,date,time,macd1,macd_not_dis),nodraw,colorwhite; signal:0,nodraw,colorwhite; 参数boduanTmp为8,P、S、M随意。序列模式。
|
-- 作者:王锋 -- 发布时间:2016/4/1 14:25:28 -- 使用排除法试试,将 getBoDuan4 这个函数的调用注释掉呢? |
-- 作者:microsoft -- 发布时间:2016/4/1 14:29:41 -- 不调用自定义函数不会有这个问题,但是自定义函数已经删除得没什么功能了,还是会出现这种情况 |
-- 作者:admin -- 发布时间:2016/4/1 16:44:20 -- 您好,感谢您的问题提交,下个升级版本我们将修复该问题 |
-- 作者:microsoft -- 发布时间:2016/4/1 17:07:44 -- 翘首以待,十分感谢 |