您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

老师请问代码的运行机制 [金字塔]

  • 咨询内容:

    variable:cc=0;

    /////////////////////////////////模型1

    hi:=ref(hhv(h,10),1);

     lo:=ref(llv(l,10),1);

     PKKD:=h>hi;

     PDKK:=l<lo;

     if cc>0 and PDKK  then begin

       Y1:cc>0 and PDKK ,linethick0;

       if islastbar then

       DEBUGFILE('E:\TEST.TXT','  Y1:%.0f',Y1);//输出Y1

       pc:=min(max(holding,0),SS);

       kc:=SS-pc;

       if pc>0 then  begin

          sell(1=1,pc,limitr,min(o,lo-0.2)-0.6);

          Y1pc:1,linethick0;

          if islastbar then

          DEBUGFILE('E:\TEST.TXT','   Y1pc:%.0f',Y1pc);//输出Y1pc 

       end  

       if kc>0  then begin

         buyshort(1,kc,limitr,min(o,lo-0.2)-0.6);

         Y1kc:1,linethick0;

         if islastbar then

         DEBUGFILE('E:\TEST.TXT','   Y1kc:%.0f',Y1kc);//输出Y1kc

       end  

      cc:=0;

     end

     if cc<0 and PKKD then begin

      Y2:cc<0 and PKKD ,linethick0;

      if islastbar then

      DEBUGFILE('E:\TEST.TXT','  Y2:%.0f',Y2);//输出Y2

      pc:=min(abs(min(holding,0)),SS);

      kc:=SS-pc;

      if pc>0 then  begin

        sellshort(1=1,pc,limitr,max(o,hi+0.2)+0.6);

        Y2pc:1,linethick0;

        if islastbar then

        DEBUGFILE('E:\TEST.TXT','   Y2pc:%.0f',Y2pc);//输出Y2pc

      end  

      if kc>0  then begin

        buy(1,kc,limitr,max(o,hi+0.2)+0.6)

        Y2kc:1,linethick0;

        if islastbar then

        DEBUGFILE('E:\TEST.TXT','   Y2kc:%.0f',Y2kc);//输出Y2kc

       end  

      cc:=0;

     end

     if cc=0 and PKKD then begin 

      Y3:cc=0 and PKKD ,linethick0;

      if islastbar then

      DEBUGFILE('E:\TEST.TXT','   Y3:%.0f',Y3);//输出Y3

      pc:=min(abs(min(holding,0)),SS);

      kc:=SS-pc;

      if pc>0  then  begin

        sellshort(1=1,pc,limitr,max(o,hi+0.2)+0.6);

        Y3pc:1,linethick0;

        if islastbar then

        DEBUGFILE('E:\TEST.TXT','   Y3pc:%.0f',Y3pc);//输出Y3pc 

      end  

      if kc>0  then begin

        buy(1,kc,limitr,max(o,hi+0.2)+0.6);

        Y3kc:1,linethick0;

        if islastbar then

        DEBUGFILE('E:\TEST.TXT','   Y3kc:%.0f',Y3kc);//输出Y3kc

       end  

      cc:=1;

     end

     if cc=0 and PDKK then begin 

      Y4:cc=0 and PDKK ,linethick0;

      if islastbar then

      DEBUGFILE('E:\TEST.TXT','  Y4:%.0f',Y4);//输出Y4

      pc:=min(max(holding,0),SS);

      kc:=SS-pc;

      if pc>0 then  begin

        sell(1=1,pc,limitr,min(o,lo-0.2)-0.6);

        Y4pc:1,linethick0;

        if islastbar then

        DEBUGFILE('E:\TEST.TXT','   Y4pc:%.0f',Y4pc);//输出Y4pc 

      end

      if kc>0  then begin

        buyshort(1,kc,limitr,min(o,lo-0.2)-0.6);

        Y4kc:1,linethick0;

        if islastbar then

        DEBUGFILE('E:\TEST.TXT','   Y4kc:%.0f',Y4kc);//输出Y4kc

       end  

      cc:=-1;

     end

     

     

    if time=closetime(0) then begin

       cc:=0;

     

     end 

     

    持仓:holding,linethick0;

    资产:asset,noaxis;

    可用现金:cash(0),linethick0;

     

     

    老师请问上述代码的运行机制。具体叙述如下:当holding=1,cc=1时,请问接下来触发PDKK后怎么走?1是沿着Y1返回1,Y1PC返回1(此时holding=0了),CC=0,Y4返回1,Y4KC返回1,CC=-1,此时holding=-1。2是沿着Y1返回1,Y1PC返回1(此时holding=1不变),CC=0,Y4返回1,Y4PC返回1(此时仍然holding=1),CC=-1,运行至持仓语句后此时holding=0了。这两种情况我在日记中都有发现,到底金字塔那种运行机制是正确的呢?关键是holding的值是开仓平仓后即自动跟着变,还是要运行至持仓语句后才变? <!--EndFragment-->

     

  • 金字塔客服: 您好,请稍后。

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容