ошибка 4806

 

Здравствуйте, ситуация в следующем:

Работал себе советник, работал, отправлял через Webrequest запросы на REST сервис, все было хорошо, а потом смотрю, сигналы перестали обновляться.

Вывел в алерте метатрейдера 5 GetLastError (), а он мне показывает, что не может найти данные индикатора. Раньше - находил, а сейчас - не находит. Внимание вопрос: почему?

Выкладываю код советника (без стартовых значений переменных -по соображениям безопасности, видимо, ошибка у меня где-то именно в условиях)

int OnInit()

  {

  EventSetTimer(Timer);  

char           data[];

char           result[];

string         aQuery;

string         headers;

int            MA_handle;

double         MA_buffer[];


//WebRequest ("GET", URL+"54902", key, 500, data, result, headers);

//Alert (CharArrayToString (result, 0, WHOLE_ARRAY, CP_UTF8)); 

int ID = 226;    

for (int x=0; x<23; x++)

{    

for (int y=0; y<9; y++)

            {

            MA_handle = iMA(aSymbol(x), tf(y),30,0, MODE_SMA, PRICE_CLOSE);

            CopyBuffer (MA_handle, 0,0,10, MA_buffer);

            if (((((((iHigh(aSymbol(x),tf(y), 1)+iLow(aSymbol(x),tf(y), 1))/2)> iHigh(aSymbol(x),tf(y), 2))&&(MA_buffer[1]>MA_buffer[2]))&&(iClose(aSymbol(x), tf (y), 1)>MA_buffer[1])))&&(iClose(aSymbol(x), tf (y), 2)>MA_buffer[2]))

               {//ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_COLOR, Color_StrongUpTrade);       

               aQuery = "Id="+IntegerToString(ID)+"&Symbol="+IntegerToString(x)+"&TimeFrame="+IntegerToString(y)+"&Direction="+"strong_UP"+"&Strategy="+"BWSignal"+"&Price="+ DoubleToString(iOpen(aSymbol(x),tf(y), 0), 5)+"&Tp="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)+0.004,  5)+"&Sl="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)-0.002, 5);

               StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, CP_UTF8);

               ArrayResize(data, StringLen(aQuery));

               

               WebRequest("POST", URL+IntegerToString(ID), key, 5000, data, result, headers);

               ID++;

               //Alert (CharArrayToString(data, 0,WHOLE_ARRAY, CP_UTF8);

               Alert (GetLastError());

               } 

            else

            {

               if (((((((iHigh(aSymbol(x),tf(y), 1)+iLow(aSymbol(x),tf(y), 1))/2)< iLow(aSymbol(x),tf(y), 2))&&(MA_buffer[1]<MA_buffer[2]))&&(iClose(aSymbol(x), tf (y), 1)<MA_buffer[1])))&&(iClose(aSymbol(x), tf (y), 2)<MA_buffer[2]))

                 { //ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_COLOR, Color_StrongDownTrade);

                  

                  aQuery = "Id="+IntegerToString(ID)+"&Symbol="+IntegerToString(x)+"&TimeFrame="+IntegerToString(y)+"&Direction="+"strong_DOWN"+"&Strategy="+"BWSignal"+"&Price="+ DoubleToString(iOpen(aSymbol(x),tf(y), 0), 5)+"&Tp="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)+0.004,  5)+"&Sl="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)-0.002, 5);

                  StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, CP_UTF8);

                  ArrayResize(data, StringLen(aQuery));         

                  WebRequest("POST", URL+IntegerToString(ID), key, 5000, data, result, headers);

                  ID++;

                  //Alert (CharArrayToString(data, 0,WHOLE_ARRAY, CP_UTF8);

                  Alert (GetLastError()); 

                  }

            else

            {

            if ((((iHigh(aSymbol(x),tf(y), 1)+iLow(aSymbol(x),tf(y), 1))/2)> iHigh(aSymbol(x),tf(y), 2))&&(MA_buffer[1]<70))

               {

               //ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_COLOR, Color_UpTrade); 

               aQuery = "Id="+IntegerToString(ID)+"&Symbol="+IntegerToString(x)+"&TimeFrame="+IntegerToString(y)+"&Direction="+"UP"+"&Strategy="+"BWSignal"+"&Price="+ DoubleToString(iOpen(aSymbol(x),tf(y), 0), 5)+"&Tp="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)+0.004,  5)+"&Sl="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)-0.002, 5);

               StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, CP_UTF8);

               ArrayResize(data, StringLen(aQuery));

               WebRequest("POST", URL+IntegerToString(ID), key, 5000, data, result, headers);

               ID++;

               //Alert (CharArrayToString(data, 0,WHOLE_ARRAY, CP_UTF8);

               Alert (GetLastError()); 

               }

            else

               {

               if ((((iHigh(aSymbol(x),tf(y), 1)+iLow(aSymbol(x),tf(y), 1))/2)< iLow(aSymbol(x),tf(y), 2))&&(MA_buffer[1]>30))

               

               {

               //ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_COLOR, Color_DownTrade);

               

               aQuery = "Id="+IntegerToString(ID)+"&Symbol="+IntegerToString(x)+"&TimeFrame="+IntegerToString(y)+"&Direction="+"DOWN"+"&Strategy="+"BWSignal"+"&Price="+ DoubleToString(iOpen(aSymbol(x),tf(y), 0), 5)+"&Tp="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)+0.004,  5)+"&Sl="+DoubleToString(iOpen(aSymbol(x),tf(y), 0)-0.002, 5);

               StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, CP_UTF8);

               ArrayResize(data, StringLen(aQuery));

               

               WebRequest("POST", URL+IntegerToString(ID), key, 5000, data, result, headers);

               ID++;

               //Alert (CharArrayToString(data, 0,WHOLE_ARRAY, CP_UTF8);

               Alert (GetLastError()); 

               }

               else 

               {

               //ObjectSetInteger (0,"signal"+IntegerToString(x)+IntegerToString(y), OBJPROP_COLOR, Color_DontTrade);

               aQuery = "Id="+IntegerToString(ID)+"&Symbol="+IntegerToString(x)+"&TimeFrame="+IntegerToString(y)+"&Direction="+"FLAT"+"&Strategy="+"BWSignal";

               StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, CP_UTF8);

               ArrayResize(data, StringLen(aQuery));

               WebRequest("POST", URL+IntegerToString(ID), key, 5000, data, result, headers);

               ID++;

               //Alert (CharArrayToString(data, 0,WHOLE_ARRAY, CP_UTF8);

               Alert (GetLastError()); 

               }

             }

             }

}

  }

  }

   return(0);

//---

   return(INIT_SUCCEEDED);

  }

ENUM_TIMEFRAMES tf(int index)

  {

   switch(index)

     {

      case 0:return(PERIOD_M1);

      case 1:return(PERIOD_M5);

      case 2:return(PERIOD_M15);

      case 3:return(PERIOD_M30);

      case 4:return(PERIOD_H1);

      case 5:return(PERIOD_H4);

      case 6:return(PERIOD_D1);

      case 7:return(PERIOD_W1);

      case 8:return(PERIOD_MN1);

     }

   return(PERIOD_CURRENT);

  }

string tfs (int index)

   {

      switch (index)

      {

         case 0:return("M1");

         case 1:return("M5");

         case 2:return("M15");

         case 3:return("M30");

         case 4:return("H1");

         case 5:return("H4");

         case 6:return("D1");

         case 7:return("W1");

         case 8:return("MN1");

      }

      return(NULL);

   } 

string aSymbol (int index)

   {

      switch (index)

         {

            case 0: return ("EURUSD");

            case 1: return ("EURGBP");

            case 2: return ("GBPJPY");

            case 3: return ("EURJPY");

            case 4: return ("GBPUSD");

            case 5: return ("USDJPY");

            case 6: return ("AUDCAD");

            case 7: return ("NZDUSD");

            case 8: return ("EURRUB");

            case 9: return ("USDRUB");

            case 10: return ("USDCHF");

            case 11: return ("XAUUSD");

            case 12: return ("XAGUSD");

            case 13: return ("AUDUSD");

            case 14: return ("USDCAD");

            case 15: return ("AUDJPY");

            case 16: return ("GBPCAD");

            case 17: return ("GBPCHF");

            case 18: return ("GBPAUD");

            case 19: return ("EURAUD");

            case 20: return ("USDNOK");

            case 21: return ("EURNZD");

            case 22: return ("USDSEK"); 

         }

      return (Symbol());

   }

double iHigh (string symbol,ENUM_TIMEFRAMES timeframe,int index)

{

   if(index < 0) return(-1);

   double Arr[];

   if(CopyHigh(symbol,timeframe, index, 1, Arr)>0) 

      return(Arr[0]);

   else return(-1);

}


double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)

   {

   if(index < 0) return(-1);

   double Arr[];

   if(CopyLow(symbol, timeframe, index, 1, Arr)>0) 

      return(Arr[0]);

   else return(-1);

   }  

double iOpen(string symbol,ENUM_TIMEFRAMES timeframe,int index)

   {

   if(index < 0) return(-1);

   double Arr[];

   if(CopyOpen(symbol, timeframe, index, 1, Arr)>0) 

      return(Arr[0]);

   else return(-1);

   }

   

double iClose(string symbol,ENUM_TIMEFRAMES timeframe,int index)

   {

   if(index < 0) return(-1);

   double Arr[];

   if(CopyClose(symbol, timeframe, index, 1, Arr)>0) 

      return(Arr[0]);

   else return(-1);

   }

Причина обращения: