以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 求助:VBA做参数优化时内存不断的耗尽 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=57119) |
-- 作者:sailwei -- 发布时间:2013/9/28 17:59:45 -- 求助:VBA做参数优化时内存不断的耗尽 用下面VBS对某个指标做参数优化时,内存会不断耗尽,请教大侠如何解决,谢谢!
for j=6 to 20 step 1 for i=0 to 1166-1 set MarketData1 = Nothing next |
-- 作者:王锋 -- 发布时间:2013/9/29 20:00:45 -- 建议检查一下是不是你的其他代码因为某种原因没有释放导致的问题,我们检查过金字塔代码,VBA在创建公式对象时不会多次分配内存的 |
-- 作者:sailwei -- 发布时间:2013/9/30 11:33:56 -- 谢谢回复!可能是我测试的指标 W_TEST2中又调用了VBA自定义的函数, 然后VBA函数中申请了返回数组返回出去了,是不是这个数组在外面没地方释放,出现了内存泄漏。 下面是测试的代码,请确认。
测试宏: Sub M_Test() dim sg, wn, sn, st, test for i=0 to 1166-1 MsgBox "计算完成!"
测试指标 W_TEST2 : INPUT: N(14, 1, 50),M(18, 0, 100); BS: CU_MA1(C, N) + CU_MA1(C, M);
系统自带的自定义函数 CU_MA1: \'计算序列模式下指定周期长度的收盘价均价 \'防止公式逐周期模式时调用 \'CLOSE数组数据长度一定会与Formula.DataSize-1相等 \'定义一个计算返回的数组 For i = Cyc-1 To Formula.DataSize-1 \'返回一个计算完毕的均线数组
|
-- 作者:王锋 -- 发布时间:2013/9/30 20:55:06 -- 提示缺少分号 这个做法恐怕不行,会导致问题,建议你不要在PEL中使用自定义函数,又拿VBA来做调用。 建议将你的PEL中的VBA自定义函数的算法,直接移植到VBA中,只直行简单的单次调用 |