莫名其妙的指标失效情况

使用沪镍主连测试策略的时候 发现6个指标中有两个再一个时间节点之后突然失效。然后每个参数让他显示出来。一个一个看。没有看出任何错误。恳请各位大佬帮忙。 //X11 X_7 = Abs(CLOSE-Lowest(LOW,8))/Abs(Highest(HIGH,8)-Lowest(LOW,8))*100; X_8 = SMA(X_7,3,1); X_9 = SMA(X_8,3,1); If(X_8>X_9) { X_11 = 2; } Else{ X_11 = 0; } PlotNumeric( X_11 ,X_11); PlotNumeric( X_7 ,X_7); PlotNumeric( X_8 ,X_8); PlotNumeric( X_9 ,X_9);以上是指标。 时间节点是21年 3月4 号的行情。

X_7 = Abs(CLOSE-Lowest(LOW,8))/Abs(Highest(HIGH,8)-Lowest(LOW,8))*100;数学基础规则:0不能用作分母。当出现涨跌停的时候,Abs(Highest(HIGH,8)-Lowest(LOW,8)) 是很容易就等于0的。

我看到你图上有交易信号然后你贴的代码甚至开平语句都没有把问题描述清楚

回复:你好 老师 这是 两个有问题的指标的代码。//------------------------------------------------------------------------// 简称: SLY001// 名称: 火炼金// 类别: 公式应用// 类型: 用户应用// 输出: Void//------------------------------------------------------------------------//----------------------------------------------------------------------// 开仓条件已更新//----------------------------------------------------------------------Params //此处添加参数 Numeric lots(0); Numeric adxlen(9); Numeric AfStep(0.01); Numeric AfLimit(5); Numeric level(35); Numeric adxlevel(20); //Numeric stopl(9);//止损点数 //Numeric proft(36);//止盈点数点数 //Numeric trailingpoint(29);//百分比 Numeric InitialStop(14); //初始止损(千分之N) Numeric TrailingStop1(28); //追踪止损启动(千分之N) Numeric TrailingStop2(41); //追踪止损回落(千分之N) //Numeric TT(3); Numeric Length1(36); Numeric DUO (24); Numeric KONG (1); Numeric PDUO (19); Numeric PKONG (5); Numeric LIAN (3); Vars //此处添加变量 Series<Numeric> Value1; Numeric oParCl; Numeric oParOp; Numeric oPosition; Numeric oTransition; Series<Numeric> oPo; Series<Numeric> highafterentry; Series<Numeric> lowafterentry; Numeric oDMIPlus; Numeric oDMIMinus; Numeric oDMI; Numeric oADX; Numeric oADXR; Numeric oVolty; Series<Numeric> ADX; //-------止损参数--------- Series<Numeric> HighestAfterEntry; Series<Numeric> LowestAfterEntry; Numeric StopLine; Numeric winLine; //string FF; Series<Numeric> X_7; Series<Numeric> X_8; Series<Numeric> X_9; Bool X_10; Series<Numeric> X_11; Series<Numeric> X_17; Series<Numeric> X_171; Series<Numeric> X_18; Series<Numeric> X_19; Bool X_20; Series<Numeric> X_21; Defs //此处添加公式函数 Events //此处实现事件函数 OnInit() //初始化事件函数,策略运行期间,首先运行且只有一次 { //AddDataFlag(Enum_Data_RolloverBackWard()); //后复权 AddDataFlag(Enum_Data_RolloverRealPrice()); //映射真实价格 AddDataFlag(Enum_Data_AutoSwapPosition()); //自动换月 //FF = text(tt) +\"m\"; // SubscribeBar(Symbol, FF, BeginDateTime, 0, Enum_Data_RolloverBackWard); } onBar(ArrayRef<Integer> indexs) //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 { If( Open == Q_UpperLimit() Or Open == Q_LowerLimit() ) { Return; //涨停跌停过滤 } //X11 X_7 = Abs(CLOSE-Lowest(LOW,8))/Abs(Highest(HIGH,8)-Lowest(LOW,8))*100; X_8 = SMA(X_7,3,1); X_9 = SMA(X_8,3,1); If(X_8>X_9) { X_11 = 2; } Else{ X_11 = 0; } PlotNumeric( \"X_11\" ,X_11); //PlotNumeric( \"X_7\" ,X_7); //PlotNumeric( \"X_8\" ,X_8); //PlotNumeric( \"X_9\" ,X_9); //X21 X_17 = (-(Highest(HIGH,13)-CLOSE))/(Highest(HIGH,13)-Lowest(LOW,13))*100; //X_171 = Abs(-(Highest(HIGH,13)-CLOSE))/Abs(Highest(HIGH,13)-Lowest(LOW,13))*100; X_18 = SMA(X_17,3,1); X_19 = SMA(X_18,3,1); If(X_18>X_19) { X_21 = 4 ; } Else{ X_21 = 0 ; } PlotNumeric( \"X_21\" ,X_21); //PlotNumeric( \"X_17\" ,X_17); //PlotNumeric( \"X_171\" ,X_171); //PlotNumeric( \"X_18\" ,X_18); //PlotNumeric( \"X_19\" ,X_19); //开仓平仓 //If( CurrentContracts<3 and CurrentContracts>-3 ) If(( X_11 + X_21 ) < KONG) { If( shortEntries<LIAN ) { sellshort(lots,Open); } } If(MarketPosition == -1 And ( X_11 + X_21 ) > PKONG) { BuyToCover (0,Open); Return; } Return; } //------------------------------------------------------------------------