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

求大神帮忙完成下面的代码。 [开拓者 TB]

  • 咨询内容: 公式的要求:快慢线在0轴以上,发生一次死叉(有一次回撤)后,再次发生金叉,就进场做多。
    快慢线在0轴以下,发生一次金叉(有一次反弹)后,再次发生死叉,进场做空。
    下面是不完整的,不知道该如何确定发生的一次死叉。
    Params
            Numeric FastLength(12); //12
            Numeric SlowLength(26);//26
            Numeric MACDLength(9);//9
    Vars
            NumericSeries MACDValue; 
            Numeric AvgMACD;
            NumericSeries MACDDiff;        
            BoolSeries        condition1;
            BoolSeries        condition2;
            
    Begin
            MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;        
            AvgMACD = XAverage(MACDValue,MACDLength);
            MACDDiff = MACDValue - AvgMACD;
            PlotNumeric("MACDValue",MACDValue);
            PlotNumeric("AvgMACD",AvgMACD);
            /*if (MACDDiff>0)
                    PlotNumeric("macddiff",macddiff,0,Red);
            Else
                    PlotNumeric("macddiff",macddiff,0,Green);
            PlotNumeric("零线",0);*/
            
            condition1=CrossOver(MACDValue,AvgMACD);//金叉做多
            condition2=CrossUnder(MACDValue,AvgMACD);//死叉做空
            
            if(condition1[1] )
            {
                    Buy(1,open);
            }
            
            if(condition2[1])
            {
                    SellShort(1,open);
            } 
    End

     

  • TB技术人员: Params
            Numeric FastLength(12);
            Numeric SlowLength(26);
            Numeric MACDLength(9);
    Vars
            NumericSeries MACDValue;
            Numeric AvgMACD;
            Numeric MACDDiff;
            BoolSeries Con1;
            BoolSeries Con2;
            BoolSeries Con3;
            BoolSeries Con4;
            BoolSeries Con5;
            BoolSeries Con6;
    Begin
            // 集合竞价和小节休息过滤
            If(!CallAuctionFilter()) Return;
           
            MACDValue = XAverage(Close,FastLength ) - XAverage(Close,SlowLength ) ;       
            AvgMACD = XAverage(MACDValue,MACDLength);
            MACDDiff = MACDValue - AvgMACD;

            Con1 = (MACDValue > 0) And (AvgMACD > 0);
            Con2 = CrossOver(MACDValue,AvgMACD);
            Con3 = (MACDValue < 0) And (AvgMACD < 0);
            Con4 = CrossUnder(MACDValue,AvgMACD);
            If(Con1 and Con4)
            {
                    Con5 = True;
            }Else If(Con3)
            {
                    Con5 = False;
            }
            If(Con2 and Con3)
            {
                    Con6 = True;
            }Else If(Con1)
            {
                    Con6 = False;
            }
           
            If(MarketPosition != 1 And Con1[1] And Con2[1] and Con5[1])
            {
                    Buy(1,Open);
            }
           
            If(MarketPosition != -1 And Con3[1] and Con4[1] and Con6[1])
            {
                    SellShort(1,Open);
            }       
           
    End

     

  • TB客服: 垃圾策略,MACD只能用来手工交易判断,程序化完全是垃圾。
    比如背离的时候,有的MACDvalue很高,有的却很低;你不能用一个固定的范围或差值去确定背离。判断上涨下跌也一样。

 

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

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


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

相关文章

    没有相关内容