您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

简单公式的莫名其秒的问题。朋友说是BUG [开拓者 TB]

  • 咨询内容: 本帖最后由 sssaaabbb 于 2016-2-29 09:43 编辑

    一个语句,A AND B 改为B AND A,,只是把顺序反了一下。结果完全不一样了。
    语句1
    Params

    Vars
    NumericSeries FastMA;
    NumericSeries slowMA;
    NumericSeries   EntPriceL;

    NumericSeries  ma5;
    NumericSeries  ma10;

    NumericSeries    ds;
    NumericSeries    ks;
    NumericSeries   MinPoint;



    BoolSeries kd;
    BoolSeries kk;

    BoolSeries pd;
    BoolSeries pk;

    begin



    ma5=Average(c,5);
    ma10=Average(c,10);

    FastMA = Average(c,9) ;
    SlowMA = Average(c,18) ;


    pd=CrossUnder(l,Lowest(l[1],8))  ;
    pk=Crossover(l,Highest(h[1],8)) ;

    PlotNumeric("Highest(h[1],50)",Highest(h[1],50));
    PlotNumeric("Lowest(l[1],50)",Lowest(l[1],50));

    //开仓条件
    if( (CrossOver(ma5,ma10)) &&  h>Highest(h[1],50) )
    {Buy(1,o);}
    if( (CrossUnder(ma5,ma10)) && l<Lowest(l[1],50) )
    {SellShort(1,o);}

    开仓条件的反顺序
    //if(  h>Highest(h[1],50) && (CrossOver(ma5,ma10)) )
    //{Buy(1,o);}
    //if( l<Lowest(l[1],50) &&  (CrossUnder(ma5,ma10)))
    //{SellShort(1,o);}

    if(pd[1])
    {sell(1,c);}

    if(pk[1])
    {BuyToCover(1,c);}

    end
    效果如图
    FT1.png (22.23 KB, 下载次数: 1) 2016-2-29 09:29:01 上传

     

  • TB技术人员: crossover,highest等是序列函数,不可放在条件中运算。
    使用中间变量,布尔型的,将crossover,highest,lowest等语句赋值 给中间变量。
    比如你现有的kd,kk等变量再加多二个,将&&前后的二个判断式分别赋值给中间变量,
    再将中间变量代入条件中,A&&B 或是 B&&A就没有区别了

 

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

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


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

相关文章

    没有相关内容