在线客服

EA编程教程:日期时间函数详解

Eightcap易汇 分析团队
资深外汇分析师
781 阅读 566 收藏
专业分析

在EA编程中,日期时间函数主要用于处理与时间相关的数据。这些函数以1970年1月1日午夜为起点,按秒计算时间值。

下面介绍常用的日期时间函数及其用法。

Day

DayOfWeek

DayOfYear

Hour

Minute

Month

Seconds

TimeCurrent

TimeDay

TimeDayOfWeek

TimeDayOfYear

TimeHour

TimeLocal

TimeMinute

TimeMonth

TimeSeconds

TimeYear

Year

int Day( )

该函数返回当前月份的日期数字,依据的是最后一次访问服务器的时间。在测试环境中,时间格式为最后设定的服务器模式。

示例:

if(Day()<5) return(0);

int DayOfWeek( )

该函数返回当前星期的数字索引,其中0代表星期天,1代表星期一,依此类推。该值基于最后已知的服务器时间。在测试中,时间格式为最后设置的服务器模式。

示例:

// 假期不工作

if(DayOfWeek()==0 || DayOfWeek()==6) return(0);

int DayOfYear( )

该函数返回当前年份中的第几天,例如1代表1月1日,365或366代表12月31日。该值基于最后访问服务器的时间。在测试中,时间格式为最后已知的服务器模式。

示例:

if(DayOfYear()==245)

return(true);

int Hour( )

该函数返回程序启动前那一刻的小时数(0到23),该值来自最后一次访问的服务器时间,且在程序执行期间保持不变。在测试中,时间格式为最后设置的服务器模式。

示例:

bool is_siesta=false;

if(Hour()==12 || Hour()<17)

is_siesta=true;

int Minute( )

该函数返回程序启动前那一刻的分钟数(0到59),该值来自最后一次访问的服务器时间,且在程序执行期间保持不变。

示例:

if(Minute()<=15)

return("first quarter");

int Month( )

该函数返回程序启动前那一刻的月份数(1到12),该值来自最后一次访问的服务器时间,且在程序执行期间保持不变。在测试中,时间格式为最后设定的服务器模式。

示例:

if(Month()<=5)

return("the first half year");

int Seconds( )

该函数返回程序启动前那一刻的秒数(0到59),该值来自最后一次访问的服务器时间,且在程序执行期间保持不变。

示例:

if(Seconds()<=15)

return(0);

datetime TimeCurrent( )

该函数返回最后一次访问的服务器时间,即最新的行情输入时间,以自1970年1月1日00:00以来的秒数表示。在测试中,时间格式为最后设定的服务器模式。

示例:

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

int TimeDay( datetime date)

该函数返回指定日期中的日数字(1到31)。

参数:

date - 以自1970年1月1日00:00以来的秒数表示的日期。

示例:

int day=TimeDay(D'2003.12.31');

// 天数为31

int TimeDayOfWeek( datetime date)

该函数返回指定日期对应的星期数字索引,其中0代表星期天,1到6依次代表星期一至星期六。

参数:

date - 以自1970年1月1日00:00以来的秒数表示的日期。

示例:

int weekday=TimeDayOfWeek(D'2004.11.2');

// 数字2 - 星期二

int TimeDayOfYear( datetime date)

该函数返回指定日期在年份中的序号,例如1代表1月1日,365或366代表12月31日。

参数:

date - 以自1970年1月1日00:00以来的秒数表示的日期。

示例:

int day=TimeDayOfYear(TimeCurrent());

int TimeHour( datetime time)

该函数返回指定时间的小时数。

参数:

time - 以自1970年1月1日00:00以来的秒数表示的时间。

示例:

int h=TimeHour(TimeCurrent());

datetime TimeLocal( )

该函数返回当前电脑的本地时间,以自1970年1月1日00:00以来的秒数表示。在测试中,时间格式为最后设定的服务器模式。

示例:

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

int TimeMinute( datetime time)

该函数返回指定时间的分钟数。

参数:

time - 以自1970年1月1日00:00以来的秒数表示的时间。

示例:

int m=TimeMinute(TimeCurrent());

int TimeMonth( datetime time)

该函数返回指定时间的月份数。

参数:

time - 以自1970年1月1日00:00以来的秒数表示的时间。

示例:

int m=TimeMonth易汇外汇(TimeCurrent());

int TimeSeconds( datetime time)

该函数返回指定时间的秒数。

参数:

time - 以自1970年1月1日00:00以来的秒数表示的时间。

示例:

int m=TimeSeconds(TimeCurrent());

int TimeYear( datetime time)

该函数返回指定时间的年份,返回值范围在1970到2037之间。

参数:

time - 以自1970年1月1日00:00以来的秒数表示的时间。

示例:

int y=TimeYear(TimeCurrent());

int Year( )

该函数返回当前年份,即服务器时间中的年数字。在测试中,时间格式为最后设定的服务器模式。

示例:

// 如果时间范围在2006年1月到4月30日之间,返回。

if(Year()==2006 && Month()<5)

return(0);

Eightcap易汇 分析团队

资深外汇分析师

由多名资深外汇分析师组成的专业团队,拥有平均15年以上的市场分析经验,擅长技术分析和基本面分析相结合的交易策略。

相关分析

立即开启您的外汇交易之旅

加入我们的交易社区,享受专业的交易服务和优惠活动