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

编译通过加载到图形上,运行不正常! [开拓者 TB]

  • 咨询内容: 求面积,比大小,下单

    Params
            Numeric FastLength(12);
            Numeric SlowLength(26);
            Numeric MACDLength(9);
    Vars
            NumericSeries MACDValue;
            NumericSeries AvgMACD;
            NumericSeries MACDDiff;
            Numeric I;
            Numeric lenth1;
            Numeric lenth2;
            Numeric mj1(0);
            Numeric mj2(0);
           
    Begin
            MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;       
            AvgMACD = XAverage(MACDValue,MACDLength);
            MACDDiff = MACDValue - AvgMACD;
            PlotNumeric("MACD",MACDValue);
            PlotNumeric("MACDAvg",AvgMACD);   
            If (MACDDiff >= 0)                               
                    PlotNumeric("MACDDiff",MACDDiff,0,Red);
            Else
                    PlotNumeric("MACDDiff",MACDDiff,0,Green);
            PlotNumeric("零线",0);                             //macd图形输出
            If (CrossOver(MACDDiff[2],0)){                  //判断:如果向前数第二根BAR满足macddiff上穿0(即金叉),那么从第三根K线开始累加macddiff的绝对值
                    I=3;
                While(CrossUnder(MACDDiff[I],0)==false){     //直到某根BAR满足死叉
                         mj1=Abs(MACDDiff[I])+mj1;
                             I=I+1;               
                    }
            }
            While(CrossOver(MACDDiff[I],0)==false){      //从刚才那根满足条件的BAR开始向前推寻找金叉
                    I=I+1;       
            }
            lenth1=I;
            While(CrossUnder(MACDDiff[I],0)==false){    //继续向前寻找死叉
                 I=I+1;
            }
            lenth2=I;       
            For I=lenth1 To lenth2{          //计算从死叉到金叉的面积
             mj2=mj2+Abs(MACDDiff[I]);
             I=I+1;
            }
            If(mj1<mj2)                    //  如果面积1<面积2,多单开仓
            Buy;   
              
    End

    有无逻辑错误?

     

  • TB技术人员: 每人理啊!自己顶起来

     

  • TB客服: 测试了你的公式,编译时没有完全通过,提示FOR,WHILE,IF,ELSE包含序列函数,可能存在潜在的逻辑错误,请确认代码无误……

    序列函数是一种特殊的用户函数,当它的参数或变量中使用了序列数据,我们就称之为序列函数,序列数据作为普通计算机语言和TB语言的重要区别,是进行金融序列数据计算的核心。为了保证序列数据的正确计算,序列函数需要每个Bar都被调用,如果有些Bar没有调用序列函数,序列函数中的序列数据则是上一个Bar的值。除非是您的算法需要,否则建议不要在条件语句,条件语句的判断表达式,循环语句中使用序列函数

     

  • 网友回复: 无标题.png (42.62 KB, 下载次数: 2) 2013-4-12 16:41:24 上传 下载次数: 2

     

  • 网友回复: 如4楼红色所示的位置

 

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

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


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

相关文章

    没有相关内容