MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5

Документация по языку автоматического трейдинга

Читайте финансовые журналы прямо в MetaTrader 4 и MetaTrader 5!

BarsCalculated

Возвращает количество рассчитанных данных для запрашиваемого индикатора.

int  BarsCalculated(
   int       indicator_handle,     // handle индикатора
   );

Параметры

indicator_handle

[in]  Хэндл индикатора, полученный соответствующей индикаторной функцией.

Возвращаемое значение

Возвращает количество рассчитанных данных в индикаторном буфере или -1 в случае ошибки (данные еще не рассчитаны).

Примечание

Функция полезна в тех случаях, когда необходимо получить данные индикатора сразу после его создания (получения хэндла индикатора).

Пример:

void OnStart()
  {
   double Ups[];
//--- установим для массивов признак таймсерии
   ArraySetAsSeries(Ups,true);
//--- создадим хэндл индикатора Fractals
   int FractalsHandle=iFractals(NULL,0);
//--- сбросим код ошибки
   ResetLastError();
//--- попытаемся скопировать значения индикатора
   int i,copied=CopyBuffer(FractalsHandle,0,0,1000,Ups);
   if(copied<=0)
     {
      Sleep(50);
      for(i=0;i<100;i++)
        {
         if(BarsCalculated(FractalsHandle)>0)
            break;
         Sleep(50);
        }
      copied=CopyBuffer(FractalsHandle,0,0,1000,Ups);
      if(copied<=0)
        {
         Print("Не удалось скопировать верхние фракталы. Error = ",GetLastError(),
         "i=",i,"    copied= ",copied);
         return
        }
       else
         Print("Удалось скопировать верхние фракталы.",
         " i = ",i,"    copied = ",copied);
     }
   else Print("Удалось скопировать верхние фракталы. ArraySize = ",ArraySize(Ups));
  }


Обновлено: 2013.12.20