PeriodSeconds

在一个周期内函数二次返回数字。

int  PeriodSeconds(
   ENUM_TIMEFRAMES  period=PERIOD_CURRENT      // 图表周期
   );

参量

period=PERIOD_CURRENT

[in]   ENUM_TIMEFRAMES中的图表周期值,如果参量未标明,在程序运行中,返回当前图表周期二次数字。

 

返回值

所选周期中的二次数字。

示例:

//--- 输入参数
input ENUM_TIMEFRAMES InpPeriod1 = PERIOD_CURRENT;   // First Period
input ENUM_TIMEFRAMES InpPeriod2 = PERIOD_M1;        // Second Period
 
//+------------------------------------------------------------------+
//| 脚本程序起始函数                                                   |
//+------------------------------------------------------------------+
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);
//--- 计算InpPeriod1图表周期的柱形图中包含了多少个InpPeriod2图表周期的柱形图
   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图表时间表日期和时间对象可见性