MQL4日期时间函数详解与使用示例

这一系列函数主要用于处理日期时间类型的数据,其基准时间从1970年1月1日00:00开始计算,单位为秒。

Year() – 获取当前年份

Month() – 获取当前月份

Day() – 获取今日是本月第几天

DayOfWeek() – 获取今日是星期几

DayOfYear() – 获取今日是本年第几天

Hour() – 获取当前小时数

Minute() DLSM官网– 获取当前分钟数

Seconds() – 获取当前秒数

TimeCurrent() – 获取当前时间

TimeDay() – 获取指定日期中天数

TimeDayOfWeek() – 获取指定日期是星期几

TimeDayOfYear() – 获取指定日期是一年中第几天

TimeHour() – 获取指定日期中小时数

TimeMinute() – 获取指定时间中分钟数

TimeMonth() – 获取指日期的月份

TimeSeconds() – 获取指时间中秒数

TimeYear() – 获取指定日期的年份

TimeLocal() – 获取当前本地时间

Year() – 获取当前年份

int Year()返回当前的年份,也就是服务器时间中的年份。需要注意的是,在测试过程中,该函数会模拟最近已知的服务器时间。

示例:

// 如果时间范围在2006年1月到4月30日之间,返回。 if(Year()==2006 && Month()<5) return(0);Month() – 获取当前月份

int Month()在程序开始前,返回服务器时间中的月份数,取值范围为1到12。需要注意的是,在测试过程中,该函数会模拟最近已知的服务器时间。

示例:

if(Month()<=5) return("the first half year");Day() – 获取今日是本月第几天

int Day()返回本月已经过去的天数,也就是最新服务器时间对应的当天。需要注意的是,在测试过程中,该函数会模拟最近已知的服务器时间。

示例:

if(Day()<5) return(0);DayOfWeek() – 获取今日是星期几

int DayOfWeek()返回今天是本周的第几天,其中0表示星期天,1到6依次表示星期一至星期六。该时间基于最后已知的服务器时间。需要注意的是,在测试过程中,该函数会模拟最近已知的服务器时间。

示例:

// 假期不工作 if(DayOfWeek()==0 || DayOfWeek()==6) return(0);DayOfYear() – 获取今日是本年第几天

int DayOfYear()返回今日是本年的第几天,1代表1月1日,最后已知的服务器时间所对应的天数。365或366则对应12月31日。需要注意的是,在测试过程中,该函数会模拟最近已知的服务器时间。

示例:

if(DayOfYear()==245) return(true);Hour() – 获取当前小时数

int Hour()在程序开始前,返回服务器时间中的小时数,取值范围为0到23。需要注意的是,在测试过程中,该函数会模拟最近已知的服务器时间。

示例:

bool is_siesta=false; if(Hour()=12 || Hour()<17) is_siesta=true;Minute() – 获取当前分钟数

int Minute()在程序开始前,返回服务器时间中的分钟数,取值范围为0到59。需要注意的是,在测试过程中,该函数会模拟最近已知的服务器时间。

示例:

if(Minute()<=15) return("first quarter");Seconds() – 获取当前秒数

int Seconds()在程序开始前,返回服务器时间中的秒数。需要注意的是,在测试过程中,该函数会模拟最近已知的服务器时间。

示例:

if(Seconds()<=15) return(0);TimeCurrent() – 获取当前时间

datetime TimeCurrent()返回最后访问的服务器时间,也就是最新的行情输入时间,计算从1970年1月1日00:00开始所经过的总秒数。需要注意的是,在测试过程中,该函数会模拟最近已知的服务器时间。

示例:

if(TimeCurrent()-OrderOpenTime()<360) return(0);