[求助]EA回测数组超限问题

 
说明:这个EA建立在TD指标上,大意是在出现完善TD买入结构时开多单。
//+------------------------------------------------------------------+
//|                                                       1EA-TD.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern color Setup=MediumSpringGreen;
extern color Countdown=Gold;
extern int NumBars=1000;
extern int Space=50;
double Support[], Resistance[], bPerfected[], sPerfected[], Buy[], Sell[];

extern int magic=12345;
datetime buytime=0;
extern double 下单量=0.1;
extern int 止损点数=100;
extern int 止盈点数=500;



//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
    for(int i=0;i<Bars;i++) 
     {
       ObjectDelete(""+i); 
       ObjectDelete("cd"+i);
     }
  }

void OnTick()
  {
    int counted_bars=IndicatorCounted();
    int bSetup, sSetup, bCountdown, sCountdown;
    int x;    
    double tfm=Space*Point;
    double CountTest;
    bool bSetupInd, sSetupInd, bPerfect, sPerfect;

    for(int i=0; i<=1000; i++)
      {
        ObjectDelete(""+i);
        ObjectDelete("cd"+i);

       if(Close[i]<=Close[i+4] && Close[i+1]>=Close[i+5] && bSetup==0)//start setup
          {  
            bSetup++;
            ObjectCreate(""+i,OBJ_TEXT,0,Time,Low-tfm);
            ObjectSetText(""+i,""+bSetup,8,"Arial",Setup);
          }
       if(Close<Close[i+4] && bSetup!=0 && ObjectFind(""+i)==-1) 
          {
            bSetup++;
            if(bSetup==9)
              {
               OrderSend(Symbol(),OP_BUY,0.1,Ask,0,0,0,0,magic,0,clrRed);
               ObjectCreate(""+i,OBJ_TEXT,0,Time,Low-tfm);
               ObjectSetText(""+i,""+bSetup,10,"Arial Black",Setup); 
               bSetup=0; 
               bSetupInd=true;
               sSetupInd=false;
               sCountdown=0;
               Print(""+GetLastError());
              }
            else 
              {
               ObjectCreate(""+i,OBJ_TEXT,0,Time,Low-tfm);
               ObjectSetText(""+i,""+bSetup,8,"Arial",Setup); 
              } 
            }

       //Deletes numbers that were created if there is a break in sequence before 9 is reached
       else if(Close>=Close[i+4] && bSetup!=0) 
          {
            for(x=i+1; x<=i+bSetup+1; x++) ObjectDelete(""+x);
            bSetup=0; 
          }

      }
回测提示错误如下,有两个,一个是分母有为0的情况,一个是数组超限了,请问如何修改:

Testing pass stopped due to a critica error in the EA
array out of range in 'EA.mq4'(54,26)
自动交易和策略测试
自动交易和策略测试
  • www.mql5.com
MQL5:MetaTrader 5客户端内置的交易策略语言。语言允许编写您自己的自动交易系统,技术指标,脚本和函数程序库
原因: