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

[原创]轮询交易,信号反复,导致多次开平。我参考了个程序,看看能否行? [金字塔]

  • 咨询内容:

    WARNING_DISABLE:4;
    ss:=1; //手数
    extgbdataset('t1_position',0);
    //0表示没有仓位,1表示持有多头, -1表示持有空头
    extgbdataset('t1_holding',0);
    //0表示没有仓位,>0表示持有多头, <0表示持有空头
    extgbdataset('t1_enterbarpos',0);//记录其开仓的K线

    maa:ema(c,10);
    bpk:=cross(c,maa);
    spk:=cross(maa ,c);
    //非最后一根K线退出
    if not(islastbar) or workmode<>1 then exit;

    //如果当是最后一根k线,执行
    IF islastbar and  time<151000 then begin

     // 如果最后一根k线发生过开仓信号,则那一根k线不再交易
     if extgbdata('t1_enterbarpos') = barpos then begin
      goto continueline ;
     end
     
    //没有持仓状态
    if extgbdata('t1_position')=0  and extgbdata('t1_holding')=0 then begin
         if  bpk then begin
          
            buy(1,ss,c);
            extgbdataset('t1_position',1);
            extgbdataset('t1_holding',ss);
            extgbdataset('t1_enterbarpos',barpos);
            goto continueline ;
          
          end

          if spk then begin
         
             buyshort(1,ss,c);
             extgbdataset('t1_position',-1);//程序化交易 www.cxh99.com
             extgbdataset('t1_holding',-ss);
             extgbdataset('t1_enterbarpos',barpos);
             goto continueline ;
           
          end
    end//没有持仓状态
       
    //持有仓位状态
       //持有空头
    if bpk and extgbdata('t1_position')=-1   and  extgbdata('t1_holding')<0 then begin

           sellshort(1,ss,c);
           buy(1,ss,c);
           extgbdataset('t1_position',1);
           extgbdataset('t1_holding',ss);
           extgbdataset('t1_enterbarpos',barpos);
           goto continueline ;
         
    end
        //持有多头
    if spk and extgbdata('t1_position')=1    and  extgbdata('t1_holding')>0  then begin

            sell(1,ss,c);
            buyshort(1,ss,c);
            extgbdataset('t1_position',-1);
            extgbdataset('t1_holding',-ss);
            extgbdataset('t1_enterbarpos',barpos);
            goto continueline ;
          
    end
    END//if  ISLASTBAR

    if  time>=151300 then begin

                 sell(extgbdata('t1_holding')>0,ss,c);
                 sellshort(extgbdata('t1_holding')<0,ss,c);
                 extgbdataset('t1_position',0);
                 extgbdataset('t1_holding',0);
                        
    end

    continueline@ 资产:tasset,linethick0;
    position:=extgbdata('t1_position');
    t1holding:=extgbdata('t1_holding');
    debugfile('d:\debug\803555.txt','position=%.0f' ,position) ;
    debugfile('d:\debug\803555.txt','t1holding=%.0f' ,t1holding) ;

     

     

    以上代码能在金子塔里测试吗?我用了,不能出信号。

     

  • 金字塔客服: 要学会自己测试+调试

 

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

可联系技术人员 QQ: 1145508240  有需要帮忙请点击这里留言!!!进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容