PeriodSeconds

Возвращает количество секунд в периоде.

int  PeriodSeconds(
   ENUM_TIMEFRAMES  period=PERIOD_CURRENT      // период графика
   );

Параметры

period=PERIOD_CURRENT

[in]  Значение периода графика из перечисления ENUM_TIMEFRAMES. Если параметр не указан, то возвращается количество секунд текущего периода графика, на котором запущена программа.

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

Количество секунд в указанном периоде.

Пример:

//--- input parameters
input ENUM_TIMEFRAMES InpPeriod1 = PERIOD_CURRENT;   // First Period
input ENUM_TIMEFRAMES InpPeriod2 = PERIOD_M1;        // Second Period
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- получим количество секунд в периодах графика InpPeriod1 и InpPeriod2
   int sec1=PeriodSeconds(InpPeriod1);
   int sec2=PeriodSeconds(InpPeriod2);
//--- выведем полученные значения в журнал
   PrintFormat("Seconds in period %s: %lu, in period %s: %lu",TimeframeDescription(InpPeriod1),sec1,TimeframeDescription(InpPeriod2),sec2);
//--- рассчитаем, сколько баров периода графика InpPeriod2 содержится в баре с периодом графика InpPeriod1
   int res=sec1/sec2;
   if(res==0)
      res=1;
//--- выведем полученное значение в журнал
   PrintFormat("One bar %s contains %d bars %s",TimeframeDescription(InpPeriod1),res,TimeframeDescription(InpPeriod2));
   /*
   Результат:
   Seconds in period M5300in period M160
   One bar M5 contains 5 bars M1
   */
  }
//+------------------------------------------------------------------+
//| Возвращает наименование таймфрейма                               |
//+------------------------------------------------------------------+
string TimeframeDescription(const ENUM_TIMEFRAMES period)
  {
   return(StringSubstr(EnumToString(period==PERIOD_CURRENT ? Period() : period), 7));
  }

Смотри также

_Period, Периоды графиков, Дата и время, Видимость объектов