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

EA编程中K线图数据的获取

市场波动离不开价格,在mt4图表中,K线图是图形化解读价格波动的最佳工具,图表中所有的k线都是根据指定周期的开盘价、最高价、最低价、收盘价四个数据绘制的。多根K线组合成K线图,以反映市场价格波动的状况及相关信息。

凡是根据价格波动进行交易的EA策略,都难免要用到K线数据,那么如何在EA中获取K线图相关数据呢?在图表上,当鼠标停放在一根K线上方时,状态栏就会显示它的相关数据,依次是开盘时间、开盘价、最高价、最低价、收盘价、成交量。如下图所示:

外汇K线图数据的获取

在获取数据前,我们还要先了解K线的排序规则,图表中那么多K线,我们只有依照它的排序规则才能准确的获取某根K线数据。在MQL4语言中,图表K线从右侧最新K线开始,依次以0、1、2、3、4…….的顺序排序。

EA中K线数据的获取函数是有现成的,不需要我们另行造函数。K线基本数据的获取函数依次是:iTime() 开盘时间、iOpen() 开盘价、iHigh() 最高价、iLow() 最低价、iClose() 收盘价、iVolume() 成交量。这几个函数括号类的参量都是一样的。依次是(货币对名称,时间周期,K线序号)。比如我们现在要获取欧元兑美元EURUSD的一小时H1图表中最新0号K线的数据,示范代码如下:

iTime("EURUSD",PERIOD_H1,0);//开盘时间
iOpen("EURUSD",PERIOD_H1,0);//开盘价格
iHigh("EURUSD",PERIOD_H1,0);//最高价
iLow("EURUSD",PERIOD_H1,0);//最低价
iClose("EURUSD",PERIOD_H1,0);//收盘价
iVolume("EURUSD",PERIOD_H1,0));//成交量

货币名称如果是当前窗口货币,则可以直接用 Symbol() 代替,时间周期当前图表可以用 0 代替。另外,如果EA只在当前图表获取数据交易,不涉及其它周期或其它货币,那么可以用最简洁的代码获取相关数据,如获取当前图表第二个K线的数据,示范代码:

Time[1];//第二根K线开盘时间
Open[1];//第二根K线开盘价格
High[1];//第二根K线最高价
Low[1];//第二根K线最低价
Close[1];//第二根K线收盘价
Volume[1];//第二根K线成交量

在图表已经收盘的K线,也就是从第二根1号K线开始,其相关数据都是不会在改变的了,而当前最新的0号K线除开盘时间和开盘价外的其它数据都是有可能改变的。这点在确认一些EA开仓条件时要注意,比如价格突破布林上轨,最好就是用两根或两根以上单位的K线收盘大于上轨来确认,仅仅用当前最新0号K线的话,那可能一会突破,一会又回头,是随价格涨跌而摆动的。

熟悉了智能交易EA获取K线数据的相关函数,我们就可以根据具体策略要求来编写各种K线形态,也可以灵活运用获取的数据跟其它指标进行比较以确定开平仓条件。

版权所有转载请注明标题及链接:峰汇在线 » EA编程中K线图数据的获取