以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  专业版参数优化问题  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=57740)

--  作者:hou731017
--  发布时间:2013/10/18 16:55:57
--  专业版参数优化问题
专业版参数优化是,点选“多核优化”

问题1:出错关闭,有时出现,有时不出现

问题2:画面暂停,持续长达数小时,计算机工作正常,cpu占用率显示无工作任务

问题3:终于可以工作了,扔出一排无交易参数组合,但用单核计算或者普通测试单组参数时可以看到交易数量与其他组合无异

请老大们参谋参谋,在下拜谢

--  作者:lichenghu
--  发布时间:2013/10/18 17:03:09
--  

1,这个情况应该是优化是机器运行负荷吧?节省内存运行模式勾选上

 

2,检查下代码,是不是优化的时候出现死循环!

 

 


--  作者:王锋
--  发布时间:2013/10/18 17:07:51
--  

先升级到最新版3.031后再看看


--  作者:hou731017
--  发布时间:2013/10/18 17:54:01
--  
已升级为3.031,似乎出错关闭少了。

但,无交易参数组合还是很多,单核测试就有交易了





--  作者:hou731017
--  发布时间:2013/10/18 17:56:19
--  
如果是我代码有问题,不会多核优化就无交易,单核优化就有交易吧?
--  作者:王锋
--  发布时间:2013/10/18 18:20:24
--  
这种情况你首先检查是不是模型里用到了EXTDATA等这种全局变量数据库了,或者一些其他的外部调用了,多核模式测试时由于多个模型同时读取设置而相互造成的干扰
--  作者:hou731017
--  发布时间:2013/10/18 18:40:37
--  
哦,感谢,不过这些还在学习
我这是一段测试代码,还请老大帮忙测试一下,看看到底是哪里出了问题?

用多核优化就会出很多无交易组合

--  作者:hou731017
--  发布时间:2013/10/18 19:10:22
--  

T:= time>093500  and  time<151300;

input:  e1(95,90,150,1) , e2(570,500,900,10) , p(6,1,10,1) , n(53,35,150,1),x(29,1,45,0.1),q(82,60,150,1),r(50,30,100,1),te(140,10,500,10);

ea1:=ma(c,e1);
ea2:=ma(c,e2);

eama1:= EMA(ea1,p);
eama2:= EMA(ea2,n);

ss:=1;

ter:=(HHV(HIGH,e2)-LLV(LOW,e2))/hhv(h,e2)*10000;

aa:= AVGENTERPRICE;


ddsd:=  ter>te  and  holding=0  and  cross(eama1,eama2)  and  T;
    
    if  ddsd then

begin
        sellshort(holding<0,0,thisclose);
buy(1,ss,thisclose);
END

      ddzy:=   eama1>eama2  and  (HIGH-aa)>=q/10  and   T;
      
      If ddzy then

 begin
 sell(1,ss,MARKETR);
 END

      ddzs:= LOW<aa-r/10   and   holding>0 ;
            
            if ddzs then
            begin
            sell(1,ss,MARKETR);
            end

kdsd:= ter>te  and  holding=0  and  cross(eama2,eama1)  and  T;

  If kdsd then

begin
sell(holding>0,0,thisclose);
buyshort(1,ss,thisclose);
end

          
          kdzy1:= holding<0 and c<enterprice-q/10  and  ter>Te;
          kdzy2:= eama1<eama2 and T;
          kdzy3:= kdzy1 and kdzy2;

          kdzs1:= holding<0 and c>enterprice + r/10;

       if kdzy3 then sellshort(1,0,MARKETR);

          if kdzs1 then sellshort(1,0,MARKETR);
 

SELL(TIME>151300  AND  HOLDING>0,0,thisclose);
sellshort(time>151300  and  holding<0,0,thisclose);



当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
上次开仓价:ENTERPRICE,colorgray,LINETHICK0;






--  作者:王锋
--  发布时间:2013/10/18 19:16:15
--  

你就是用上面的代码进行测试的?

可否具体截图一下,告知多核测试结果有哪些是无效的,而单核就正常,另外请告知多核的测试结果是否每次都固定还是随机的参数无效的?


--  作者:hou731017
--  发布时间:2013/10/18 20:30:30
--  
暂时不会发图,抱歉

大范围测试时,多核优化有时超过70%都是无效的,单核100%有效。

刚刚又发现,如果步长大一点,测试量小了,那么测试结果无效几乎为零。