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

均线为什么不在图表上显示? [开拓者 TB]

  • 咨询内容: Params
            Numeric MALength(20);
    Vars
            NumericSeries MA;           //基准均线
            Numeric Counter(0);         //关于K线有多少根的计数器
            BoolSeries CrossUp;         //是否上穿基准均线
            BoolSeries CrossDown;       //是否下穿基准均线
            Numeric CrossOverCon;       //上穿基准均线次数
            Numeric CrossUnderCon;      //下穿基准均线次数
    Begin
            If(!CallAuctionFilter()) Return;    // 集合竞价和小节休息过滤
            Counter = BarCount;
            If(Counter >= MALength)             //要求至少有基准均线的参数一样多的Bar
            {
                    MA = Average((O+H+L+C)/4,MALength);  //计算基准均线值
                    PlotNumeric("MA",MA);                //图表上输出显示均线MA
            }       
           
            CrossUp = CrossOver(H,MA);           //判断最高价是否上穿均线MA
            CrossDown = CrossUnder(L,MA);        //判断最低价是否下穿均线MA
            //CountIf获取最近N周期条件满足的计数
            If(CrossUp == True)
            {
                    CrossOverCon = CountIf(CrossUp,Counter);     //High上穿MA的次数
            }
            If(CrossDown == True)
            {
                    CrossUnderCon = CountIf(CrossDown,Counter);  //Low下穿MA的次数
            }
           
    End       

     

  • TB技术人员: 如果是这样均线就显示了
    Params
            Numeric MALength(20);
    Vars
            NumericSeries MA;           //基准均线
            Numeric Counter(0);         //关于K线有多少根的计数器
            BoolSeries CrossUp;         //是否上穿基准均线
            BoolSeries CrossDown;       //是否下穿基准均线
            Numeric CrossOverCon;       //上穿基准均线次数
            Numeric CrossUnderCon;      //下穿基准均线次数
    Begin
            If(!CallAuctionFilter()) Return;    // 集合竞价和小节休息过滤
            Counter = BarCount;
            If(Counter >= MALength)             //要求至少有基准均线的参数一样多的Bar
            {
                    MA = Average((O+H+L+C)/4,MALength);  //计算基准均线值
                    PlotNumeric("MA",MA);                //图表上输出显示均线MA
            }        
    End      

     

  • TB客服: 不支持这样写CountIf(CrossUp,Counter),支持如下写法:
    Params
            Numeric MALength(20);
            Numeric CC(30);   //统计上穿下穿的时间周期
    Vars
            NumericSeries MA;           //基准均线
            Numeric Counter(0);         //关于K线有多少根的计数器
           
            BoolSeries CrossUp;         //是否上穿基准均线
            BoolSeries CrossDown;       //是否下穿基准均线
            Numeric CrossOverCon;       //上穿基准均线次数
            Numeric CrossUnderCon;      //下穿基准均线次数
    Begin
            If(!CallAuctionFilter()) Return;    // 集合竞价和小节休息过滤
            Counter = BarCount;
            MA = Average((O+H+L+C)/4,MALength);  //计算基准均线值
            PlotNumeric("MA",MA);                //图表上输出显示均线MA
            CrossUp = CrossOver(H,MA);           //判断最高价是否上穿均线MA
            CrossDown = CrossUnder(L,MA);        //判断最低价是否下穿均线MA
            //CountIf获取最近N周期条件满足的计数
           
            If(CrossUp == True)
            {
                    CrossOverCon = CountIf(CrossUp,CC);     //High上穿MA的次数
            }
            If(CrossDown == True)
            {
                    CrossUnderCon = CountIf(CrossDown,CC);  //Low下穿MA的次数
            }
           
    End       

     

  • 网友回复: 代码问题挺多的,不一一解释了,大概改一下,先看看。
    1. Params
    2.         Numeric MALength(20);
    3. Vars
    4.         NumericSeries MA;           //基准均线
    5.         Numeric Counter(0);         //关于K线有多少根的计数器
    6.         Bool CrossUp;         //是否上穿基准均线
    7.         Bool CrossDown;       //是否下穿基准均线
    8.         NumericSeries CrossOverCon;       //上穿基准均线次数
    9.         NumericSeries  CrossUnderCon;      //下穿基准均线次数
    10. Begin
    11.         If(!CallAuctionFilter()) Return;    // 集合竞价和小节休息过滤
    12.         If(barcount<=malength)return;
    13.        // If(Counter >= MALength)             //要求至少有基准均线的参数一样多的Bar
    14.       //  {
    15.                 MA = Average((O+H+L+C)/4,MALength);  //计算基准均线值
    16.                 PlotNumeric("MA",MA);                //图表上输出显示均线MA
    17.       //  }        
    18.         
    19.         CrossUp = CrossOver(H,MA);           //判断最高价是否上穿均线MA
    20.         CrossDown = CrossUnder(L,MA);        //判断最低价是否下穿均线MA
    21.         //CountIf获取最近N周期条件满足的计数
    22.         If(CrossUp == True)
    23.         {
    24.                 CrossOverCon = crossovercon +1;     //High上穿MA的次数
    25.         }
    26.         If(CrossDown == True)
    27.         {
    28.                 CrossUnderCon = crossundercon+1;  //Low下穿MA的次数
    29.         }
    30.         Commentary("over:"+Text(crossovercon));
    31.         Commentary("under:"+Text(crossundercon));
    32.         
    33. End  
    复制代码

 

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

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


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

相关文章

    没有相关内容