以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- 公式测试参数优化,慢慢? (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=67872) |
-- 作者:netfox -- 发布时间:2014/7/26 9:02:01 -- 公式测试参数优化,慢慢? 2.2xx 时期的版本穷举参数优化速度也不慢。 出来虚拟内存后速度确实慢一些。 但,记得说过不用虚拟内存速度会提高?
公式测试-禁用虚拟内存 关与开似乎影像不大 选项-内存-禁用虚拟内存 没理解这个和公式测试有关系否。
总之遗传算法确实速度好,但早先穷举速度慢了。 是否在优化优化穷举效率? 还是说我设置错误? 可对比2.3xx 与 2.2xx 同样代码真的是早先版本效率好一些。 |
-- 作者:netfox -- 发布时间:2014/7/26 9:49:14 -- 穷举绝对有问题 , 36次优化 需要 10分钟,这不科学。 早前只要几秒。
|
-- 作者:netfox -- 发布时间:2014/7/26 11:21:17 -- 还特地搞了个新虚拟机测试2997的版本,不是金字塔版本问题,与统计函数有关。
总:=BARSCOUNT(C);
上面3行干掉立马秒速。。。 可这个我只是图标上参考下最大最小波动在哪里, 参数优化时候也参与吗? |
-- 作者:FexTel -- 发布时间:2014/7/28 8:49:17 -- 1,新版使用虚拟内存对应的处理速度会相对慢一点 2,这个我们要本地验证下,ADX取的是什么? |
-- 作者:netfox -- 发布时间:2014/7/28 8:57:33 -- 以下是引用FexTel在2014/7/28 8:49:17的发言:
1,新版使用虚拟内存对应的处理速度会相对慢一点 2,这个我们要本地验证下,ADX取的是什么?
提供源代码 TA00 5分钟 参数优化 kick 时间 2010年1月1日 2014年7月1日 , 单参数优化都慢,但是取消掉上面关于统计那部分立马秒速。
虚拟内存关闭照旧是慢。。。不知道为何这么统计函数上去后速度慢的太多太多。
INPUT:M(12,4,60,2),P(104,40,130,2);
INPUT:20K(20,10,30,1),50K(50,50,70,1); INPUT:KICK(100,50,120,2); //止损点 INPUT:SS(1,1,10,1); //DMI中间变量 TR1 := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),M); HD := HIGH-REF(HIGH,1); LD := REF(LOW,1)-LOW; PDM:= SUM(IF(HD>0 AND HD>LD,HD,0),M); MDM:= SUM(IF(LD>0 AND LD>HD,LD,0),M); PDI:PDM*100/TR1,NODRAW; MDI:MDM*100/TR1,NODRAW; ADX:MA(ABS(MDI-PDI)/(MDI+PDI)*100,P),NOAXIS; ADXR:=(ADX+REF(ADX,P))/2; //交易条件 开多条件:=CROSS(PDI,MDI) and ADX>20K and ADX>ref(ADX,1);//开多 平多条件:=CROSS(50K,ADX); 开空条件:=CROSS(MDI,PDI) and ADX>20K and ADX>ref(ADX,1);//开空 平空条件:=CROSS(50K,ADX); //交易系统 if ref(平空条件,1) then begin sellshort(holding<0,holding,limitr,open); //平空 end if ref(开多条件,1) then BEGIN buy(holding=0,SS,limitr,open); //开多 end if REF(平多条件,1) then begin sell(holding>0,holding,limitr,open); //平多 end if REF(开空条件,1) then BEGIN buyshort(holding=0,SS,limitr,open); //开空 end // 移动止损 最高:=HHV(H,OPENBAR+1); 最低:=LLV(L,OPENBAR+1); 多头止损:if(holding>0,最高-KICK,DRAWNULL); 空头止损:if(holding<0,最低+KICK,DRAWNULL); IF L<最高-KICK and H-L END IF H>最低+KICK and H-L END //运行状态 多头持仓:if(holding>0,holding,DRAWNULL),NODRAW; 空头持仓:if(holding<0,abs(holding),DRAWNULL),NODRAW; 持仓周期:if(holding=0,DRAWNULL,openbar+1),NODRAW; 平仓收益:valuewhen(holding=0,asset),noaxis; 总:=BARSCOUNT(C); 最大:hhv(ADX,总),NODRAW; 最小:llv(ADX,总),NODRAW; |
-- 作者:FexTel -- 发布时间:2014/7/28 9:30:11 -- 1,现象确实如此,已在和相关部门沟通 [此贴子已经被作者于2014/7/28 10:07:39编辑过]
|
-- 作者:fly -- 发布时间:2014/7/28 10:03:28 -- 统计函数本身就需要大量计算的,最后三句是多重循环 你看着没优化这部分参数,但实际写在代码里的东西,参数优化时候全部参与计算
如果只是图标上参考下最大最小波动在哪里,那就在参数优化时把这三句去掉吧 |