双均线策略修改后为啥不能开仓呢?
//------------------------------------------------------------------------// 简称: DualMA// 名称: 双均线交易系统// 类别: 策略应用// 类型: 内建应用//------------------------------------------------------------------------Params Numeric FastLength(5); // 短期指数平均线参数 Numeric SlowLength(10); // 长期指数平均线参数Vars Series<Numeric> AvgValue1; Series<Numeric> AvgValue2; Bool bGoldenCross(false); // 标记是否出现完全金叉 Bool bDeathCross(false); // 标记是否出现完全死叉 Integer crossCount(0); // 用来记录从金叉/死叉到现在的天数 Events OnBar(ArrayRef<Integer> indexs) { AvgValue1 = AverageFC(Close, FastLength); AvgValue2 = AverageFC(Close, SlowLength); PlotNumeric("MA1", AvgValue1); PlotNumeric("MA2", AvgValue2); // 判断是否发生金叉或死叉 if (AvgValue1[1] > AvgValue2[1] && AvgValue1[2] <= AvgValue2[2]) { bGoldenCross = true; bDeathCross = false; crossCount = 0; } else if (AvgValue1[1] < AvgValue2[1] && AvgValue1[2] >= AvgValue2[2]) { bDeathCross = true; bGoldenCross = false; crossCount = 0; } // 如果是金叉,开始计数 if (bGoldenCross) { crossCount=crossCount+1; // 检查是否达到完全金叉条件 if (crossCount >= 4) { if (MarketPosition <> 1) { Buy(0, Open); } bGoldenCross = false; // 清除标记,等待下一次金叉 } } // 如果是死叉,开始计数 if (bDeathCross) { crossCount=crossCount+1; // 检查是否达到完全死叉条件 if (crossCount >= 4) { if (MarketPosition <> -1) { SellShort(0, Open); } bDeathCross = false; // 清除标记,等待下一次死叉 } } }//------------------------------------------------------------------------