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

这样转换策略有什么问题呢~~ [金字塔]

  • 咨询内容: //////////////////////////// 原来的TB的策略   策略说明: 基于通道突破的判断
    // 系统要素:
    // 1. 计算50根k线最高价的区间
    // 2. 计算30根k线最低价的区间
    //
    // 入场条件:
    //     1.价格高于50根K线最高价的区间入场
    // 出场条件:
    // 1. 当前价格低于30根K线最低价的区间出场
    // 2. 当前价格低于入场价一定ATR波动率幅度出场
    //
    //----------------------------------------------------------------------//
    Params
    Numeric Length1(50); //长周期区间参数
    Numeric Length2(30); //短周期区间参数
    Numeric IPS(4); //保护止损波动率参数
    Numeric AtrVal(10); //波动率参数
    Vars 
    NumericSeries ProtectStopL;
    NumericSeries ATR;
    NumericSeries Upperband;
    NumericSeries Lowerband; 
    NumericSeries Exitlong;
    NumericSeries Exitshort;
    Numeric L2;
    Numeric L1;
    Numeric Minpoint;
    Begin

    // 集合竞价和小节休息过滤
    If(BarStatus == 2 And IsCallAuctionTime) Return;

    Minpoint = Minmove*PriceScale;
        ATR = AvgTrueRange(AtrVal);       //定义ATR
    L1 = Max(Length1,Length2);       //出场周期选择较大的区间参数
    L2 = Min(Length1,Length2);       //出场周期选择较小的区间参数
    Upperband = Highest(High, L1);       //长周期最高价区间
    Lowerband = lowest(Low,L1);           //长周期最低价区间
    Exitlong = Lowest(Low,L2);       //短周期最低价区间
    Exitshort = Highest(high,L2);       //短周期最高价区间

    //系统入场 
    If(Marketposition == 0 and High >= Upperband[1] + Minpoint And Vol > 0)      //价格大于长周期最高价区间入场做多
    {
    Buy(0, Max(Open, Upperband[1] + Minpoint));
    ProtectStopL = Entryprice - IPS*ATR[1];
    }

    //系统出场
    If(MarketPosition == 1 and BarsSinceEntry >0 And Vol > 0)
    {
    If( Low <= ProtectStopL[1] and ProtectStopL[1] >= Exitlong[1])  //价格低于入场价以下一定ATR幅度止损
    {
    Sell (0,Min(Open,ProtectStopL[1]));
    }
    Else if (Low <= Exitlong[1] - Minpoint)                    //价格低于短周期最低价区间出场
    {
    Sell(0, Min( Open, Exitlong[1] - Minpoint));
    }
    }

    End
    //////////////////////////////////////////////////////////////////   /////////////////////////////////////////////////////////////////// 我自己转换的PEL策略

    INPUT:LENGTH1(50,1,100,5),LENGTH2(30,1,100,5),IPS(4,1,100,5),ATRVAL(10,1,100,5);
    SS:=2;
    MINPOINT:=MINDIFF()*MULTIPLIER();
    ATR:=MA(TR,ATRVAL);
    L1:=MAX(LENGTH1,LENGTH2);
    L2:=MIN(LENGTH1,LENGTH2);
    UPPERBAND:=HHV(H,L1);
    LOWERBAND:=LLV(L,L1);
    EXITLONGING:=LLV(L,L2);
    EXITSHORTING:=HHV(H,L2);
    UPPERBAND1:=REF(UPPERBAND,1);
    ATR1:=REF(ATR,1);
    PROTECTSTOPL :=ENTERPRICE()-IPS*ATR1;
    PROTECTSTOPL1:=REF(PROTECTSTOPL,1);
    EXITLONGING1:=REF(EXITLONGING,1);
    IF HOLDING =0 AND H>(UPPERBAND1 +MINPOINT) AND VOL>0  THEN BEGIN
      BUY(1,SS,MAX(OPEN,UPPERBAND1+MINPOINT));
      PROTECTSTOPL :=ENTERPRICE()-IPS*ATR1;
    END

    IF ( HOLDING>0 AND ENTERBARS>0 AND VOL>0 ) THEN BEGIN
      IF ( LOW <PROTECTSTOPL1 AND PROTECTSTOPL1>=EXITLONGING1 ) THEN BEGIN
      SELL(1,SS,MIN(OPEN,PROTECTSTOPL1));
      END
      IF ( LOW<=EXITLONGING1-MINPOINT ) THEN BEGIN
      SELL(1,SS,MIN(OPEN,EXITLONGING1-MINPOINT));
      END
    END

    ////////////////////////////////////////////////////


    但是为什么转出来的策略回测数据都是0呢

         

     

  • 金字塔客服:

    补充好需要的数据后,在回测看下、、

    本地测试有信号

 

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

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


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

相关文章

    没有相关内容