初学者macd测试

本人初学者,纯小白,用系统提供的macd 尝试加载,编译可以通过,但是只有一个开仓信号,有没有其他的信号了,一直不知道问题出在哪,麻烦老师给看看,谢谢。Params Numeric FastLength(12); Numeric SlowLength(26); Numeric MACDLength(9); Numeric lots(1);Vars Numeric MACDDiff; Numeric AvgMACD; series<Numeric> MACDValue;Events OnBar(ArrayRef<Integer> indexs) { Range[0:DataSourceSize() - 1] { MACDDiff = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ; //计算快速均线与慢速均线的差值 AvgMACD = XAverage(MACDDiff,MACDLength); //再次计算平均 MACDValue = MACDDiff - AvgMACD; //计算差值 PlotNumeric(\"MACDDiff\",MACDDiff); //输出线 PlotNumeric(\"MACDDEA\",AvgMACD); //输出线 If (MACDValue >= 0) //如果MACDValue的值大于或等于零,金叉 PlotAuto(\"MACD\",MACDValue,0,Red,Enum_Bar); //输出红柱 Else //否则,死叉 PlotAuto(\"MACD\",MACDValue,0,Green,Enum_Bar); //输出绿柱 PlotNumeric(\"零线\",0); } //判断是否做多 If(MarketPosition<>1 And MACDValue[1]>0) //如果当前净持仓。。和金叉 { Buy(lots,open); } //判断是否做空 If(MarketPosition<>1 And MACDValue[1]<0) //如果当前净持仓。。和死叉 { SellShort(lots,open); } }

明白了,应该改成:If(MarketPosition<>-1 And MACDValue[1]<0) ,谢谢。

改成MarketPosition<=0,>=0就正常了,非常感谢。

再仔细想想这里怎么回事