诚信为本
量力而为
当前位置:峰汇在线 ea编程知识 正文

K线的开盘时间函数

一根K线的本身包含开盘时间、开盘价、最高价、最低价、收盘价五个基本参数。不管是编写EA还是编写指标,只要调用K线,都难免要用到这五个参数。对于K线相关开盘价、最高价、最低价、收盘价等价格获取,前面已有文章介绍给。本文就K线开盘时间的获取函数做简单介绍。

首先,还是要讲K线的排序,从图表右侧最新蜡烛开始往左排列,依次是0、1、2、3、4、5……..号K线。弄清楚K线排序规则,我们接下来熟悉K线的开盘时间函数,在mql4语言中,以 Time[] 函数存储K线的开盘时间。Time[0]就代表当前图表中最右侧0号K线的开盘时间,Time[1]就代表当前图表中从右侧往左数第二个K线的开盘时间,Time[2]就代表当前图表中从右侧往左数第三个K线的开盘时间,其它K线依次按序号入座即可。在MT4图表上,我们鼠标停放在某根K线上,那么在状态栏也可以清楚的看到这根K先开盘时间。如下图所示:

K线的开盘时间

在EA或者脚本文件中,我们以Time[]来获取当前图表中某个K线的开盘时间。而在指标文件中,我们先看下指标文件运行的OnCalculate主函数:

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {

从上面代码中可以看到 OnCalculate 函数本身就引入了存储时间的 time[] 数组,所以在指标文件中的OnCalculate 框架内,直接用 time[0]、time[1]等来获取当前图表的对应序号的K线的开盘时间。

有些时间,我们可能获取多周期或者多货币的开盘时间,那就需要用到 iTime() 函数。要正确使用 iTime(),我们弄清楚它的参量,然后根据需要填充参量即可。先看iTime()的构成:

datetime  iTime( 
   string           symbol,          // 货币名称
   int              timeframe,       // 图表时间周期
   int              shift            //序号
   );

看完 iTime() 函数的构成,我们也就十分清楚了。下面我们可以简单举例,比如获取欧元兑美元EURUSD一小时图表第二根K先开盘时间,代码如下:

datetime EURUSD_H1_time = iTime("EURUSD",PERIOD_H1,1);

K线开盘时间的调用在外汇EA编程中是十分广泛的,其调用方法可以在本文介绍的基础上根据需要演变。

版权所有转载请注明标题及链接:峰汇在线 » K线的开盘时间函数