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

CountIf不能用在IF 语句的条件中吗? [开拓者 TB]

  • 咨询内容: 如下语句,CountIf 如果出现在语句中不能得到正确的结果,就是说:

    CountIf(BBI<BBI[1],9)==9

    BBI<BBI[1] && BBI[1]<BBI[2] && BBI[2]<BBI[3]&& BBI[3]<BBI[4]&& BBI[4]<BBI[5]&& BBI[5]<BBI[6]&& BBI[6]<BBI[7] && BBI[7]<BBI[8] && BBI[8]<BBI[9]
    应该是一样的吧,可实际执行结果不一样啊,在语句中计算结果是错误的,IF语句中只要有当次BBI<BBI[1],系统就认为满足条件,就执行开多语句。而我需要的是连续9次       

    IF (L10-Close>=5 && CountIf(BBI<BBI[1],9)==9 && DIFF<DIFF[1] &&  MACD<MACD[1] && ROC<=ROCMA && MACD<ZCS) // && ROC<=ROCMA
            {
                    MMXH=-1;
                    Commentary("卖行号:241<35,下突破SPK2-");
            }       
    IF (MarketPosition<>1 && MMXH==1 )
    {
            Buy(lots,jyjg );
           
            //Commentary("Buy交易行号:  "+JYHH);
    }

     

     来源:CXH99.COM

  • TB技术人员: countif是序列函数,其运算使用不能放到条件中。
    加一个中间变量来修改一下代码吧。
    1. AA = countif(BBI<BBI[1],9);
    2. IF (L10-Close>=5 && AA==9 && DIFF<DIFF[1] &&  MACD<MACD[1] && ROC<=ROCMA && MACD<ZCS) // && ROC<=ROCMA
    3.         {
    4.                 MMXH=-1;
    5.                 Commentary("卖行号:241<35,下突破SPK2-");
    6.         }        
    7. IF (MarketPosition<>1 && MMXH==1 )
    8. {
    9.         Buy(lots,jyjg );
    10.         
    11.         //Commentary("Buy交易行号:  "+JYHH);
    12. }
    复制代码

     

  • TB客服: 明白了,原来如此,谢谢版主

 

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

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


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

相关文章

    没有相关内容