WHILE运行结果异常
我想编一段程序,求出最近多少根bar,组成的区间,其高点,低点之间的振幅,达到我设定的参数。比如近100根bar组成的区间,才能满足高低点相差5%的要求,则返回值100。编完了之后,运行出bug,在有的bar上运行结果是正确的,在大多数bar上又是不正确的。找不到原因。。。求老师指导。 代码: Params Numeric FD(2);//振幅 Vars NumericSeries BARNO(0);//bar编号 Numeric N(0);//bar根数 Numeric GD(0);// 区间高点 Numeric DD(0);// 区间低点 Numeric ZDF(0);//涨跌幅 Begin //BARNO 编号: if (BarStatus==0 ) BARNO=0; else BARNO=BARNO+1; Commentary("BARNO="+Text(BARNO)); While (ZDF<FD ) { GD=Highest(high,N); DD=Lowest(low,N); ZDF=(GD/DD-1)*100; N=N+1; If(N>BARNO or ZDF>=FD) Break; } GD=Highest(high,N); DD=Lowest(low,N); ZDF=(GD/DD-1)*100; Commentary("GD="+Text(GD)); Commentary("DD="+Text(DD)); Commentary("ZDF="+Text(ZDF)); Commentary("N="+Text(N)); End