在编写智能交易ea的时候,我们经常需要用到K线的开盘时间,比如说,要在新的K线出现时平仓指定类型的持仓单,那就可以通过比较订单的开仓时间和K线的开盘时间来执行,如果订单的开仓时间小于当前K线的开盘时间,那就执行平仓。
mql4语言对于获取K的开盘时间,是有现成的iTime()函数的。在编写ea时,可以通过给iTime()函数赋值不同的参数来获取想要的时间值。
首先,要明白K线开盘时间的数据类型是datetime ,这点不能搞错,然后在看一下iTime()函数的构成。
iTime(string sym,int timeframe,int cnt);
iTime()函数的三个参数:
- sym,交易品种名称,string类型,可以用NULL或Symbol()表示当前图表的交易品种。在用具体名称时不要忘记加双引号,如”EURUSD”。
- timeframe,时间周期,int 类型,在mt4上面是一分钟至月线中间的一个。0表示当前图表周期。
- cnt,K线序号,图表自右往左,最新的当前K线为0,接着1、2、3、4……。
弄明白了iTime()函数的构成及其参数的意义,现在我们就可以调用它获取想要的数值,比如获取当前图表最新K线的开盘时间代码就是:
datetime Time_0 = iTime(Symbol(),0,0);
再如获取美元兑日元5分钟图表上一根K线的开盘时间代码为:
datetime uTime_1 = iTime("USDJPY",PERIOD_M5,1);
在mt4图表上,我们鼠标停留在蜡烛上,就会浮出对应的K线参数注释层,其中的第一个参数Time就是指对应蜡烛的开盘时间。