手机版

MQL4价格数据相关函数

阅读 :
外_汇_邦 WaiHuiBang.com

用于获取货币对/时段内价格数据的一组函数。

如果请求数据(货币对名称/时段不同于当前图表)来自其他图表,这种情况可能是相应的图表没有在客户端内打开,并且需要从服务器端下载数据。这种情况下,错误信息ERR_HISTORY_WILL_UPDATED(4066-请求的历史数据正在更新中)将被放置到last_error变量中,并且不得不重新请求更新(参看ArrayCopySeries()范例)。

在测试中,同货币对价格数据或不同时段的价格数据被精确地模拟(除成交量外)。其他时段的成交量不模拟,其它货币对的价格数据同样也不模拟。无论何种情况,一个时段内柱子总数会被精确地模拟。

  • iBars() – 获取柱体数
  • iBarShift() – 搜索指定柱体
  • iClose() – 获取柱体收盘价
  • iHigh() – 获取柱体最高价
  • iHighest() – 柱体最高值偏移量
  • iLow() – 获取柱体最低价
  • iLowest() – 柱体最低值偏移量
  • iOpen() – 获取柱体开盘价
  • iTime() – 获取柱体开盘时间
  • iVolume() – 获取柱体成交量

 

iBars() – 获取柱体数

int iBars(string symbol, int timeframe)

返回指定的图表中柱体(K线)的数量。

对于当前图表,柱子数量的信息保存在预定义的变量Bars中。

参数:

symbol    - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。

示例:

Print("'EURUSD'在PERIOD_H1时段的柱数:",iBars("EUROUSD",PERIOD_H1)); 

iBarShift() – 搜索指定柱体

int iBarShift(string symbol, int timeframe, datetime time, void exact)

根据开盘时间搜索柱体(K线)。本函数返回带指定开盘时间的柱体。如果带指定开盘时间的柱体丢失,函数将返回-1或最近的柱体,这取决护exact参数设置。

参数:

symbol    - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。time - 柱体(K线)的开盘时间。exact - 未发现柱子的返回模式。false-返回最近的柱子,true-返回-1。

示例:

datetime some_time=D'2004.03.21 12:00';  int      shift=iBarShift("EUROUSD",PERIOD_M1,some_time);  Print("带有打开时间的柱体 ",TimeToStr(some_time)," 是 ",shift);

iClose() – 获取柱体收盘价

double iClose(string symbol, int timeframe, int shift)

返回带有时段和偏移量的指定货币对柱体(K线)的收盘价。如果本地历史表为空(历史数据未加载),函数返回0。

对于当前图表,收盘价的信息保存在 预定义数组Close[] 中。

参数:

symbol    - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。shift     - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。

示例:

Print("对于 USDCHF H1当前柱: ",iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",                                      iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",                                      iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

iHigh() – 获取柱体最高价

double iHigh(string symbol, int timeframe, int shift)

返回带有时段和偏移量的指定货币对柱体(K线)的最高价。如果本地历史表为空(历史数据未加载),函数返回0。

对于当前图表,最盘价的信息保存在 预定义数组High[] 中。

参数:

symbol    - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。shift     - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。

示例:

Print("对于 USDCHF H1当前柱: ",iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",                                      iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",                                      iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

iHighest() – 柱体最高值偏移量

int iHighest(string symbol, int timeframe, int type, void count, void start)

根据类型返回在一个指定时间周期内最大值的偏移量。

参数:

symbol    - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。type      - 序列数组的识别符。它可以是 序列数据识别符枚举 的任意值。count     - 要计算出的周期数(沿着开头柱子到后而柱子的方向)。start     - 开始柱子,相对于当前柱子,开始采集数据的柱子。

示例:

double val;  // 在20个连续柱子范围内计算最大值  // 在当前图表上从第4个至第23个的索引  val=High[iHighest(NULL,0,MODE_HIGH,20,4)];

iLow() – 获取柱体最低价

double iLow(string symbol, int timeframe, int shift)

返回带有时段和偏移量的指定货币对柱体(K线)的最低价。如果本地历史表为空(历史数据未加载),函数返回0。

对于当前图表,最盘价的信息保存在 预定义数组Low[] 中。

参数:

symbol    - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。shift     - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。

示例:

Print("对于 USDCHF H1当前柱: ",iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",                                      iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",                                      iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

iLowest() – 柱体最低值偏移量

int iLowest(string symbol, int timeframe, int type, void count, void start)

根据类型返回在一个指定时间周期内最低值的偏移量。

参数:

symbol    - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。type      - 序列数组的识别符。它可以是 序列数据识别符枚举 的任意值。count     - 要计算出的周期数(沿着开头柱子到后而柱子的方向)。start     - 开始柱子,相对于当前柱子,开始采集数据的柱子。

示例:

double val;  // 在20个连续柱子范围内计算最小值  // 在当前图表上从第4个至第23个的索引  val=Low[iLowest(NULL,0,MODE_LOW,20,4)];

iOpen() – 获取柱体开盘价

double iOpen(string symbol, int timeframe, int shift)

返回带有时段和偏移量的指定货币对柱体(K线)的开盘价。如果本地历史表为空(历史数据未加载),函数返回0。

对于当前图表,最盘价的信息保存在 预定义数组Open[] 中。

参数:

symbol    - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。shift     - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。

示例:

Print("对于 USDCHF H1当前柱: ",iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",                                      iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",                                      iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

iTime() – 获取柱体开盘时间

datetime iTime(string symbol, int timeframe, int shift)

返回带有时段和偏移量的指定货币对柱体(K线)的开盘时间。如果本地历史表为空(历史数据未加载),函数返回0。

对于当前图表,最盘价的信息保存在 预定义数组Time[] 中。

参数:

symbol    - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。shift     - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。

示例:

Print("对于 USDCHF H1当前柱: ",iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",                                      iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",                                      iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

iVolume() – 获取柱体成交量

datetime iVolume(string symbol, int timeframe, int shift)

返回带有时段和偏移量的指定货币对柱体(K线)的成交量。如果本地历史表为空(历史数据未加载),函数返回0。

对于当前图表,最盘价的信息保存在 预定义数组Volume[] 中。

:该成交量并非真正意义上的成交量,这是一个估计值,其值为该K线下tick价格变动的数量,其背后的意义为如果tick价格变动很快,表示成交量越大;tick价格变动越慢,表示成交量越小。

参数:

symbol    - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。shift     - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。

示例:

Print("对于 USDCHF H1当前柱: ",iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",                                      iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",                                      iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));
外_汇_邦 WaiHuiBang.com
本文标题:MQL4价格数据相关函数 - MT4平台MQL4编程学习
本文地址:https://www.waihuibang.com/fxschool/autotrading/mql4/49028.html

相关文章

  • MQL4编程中关于 Ask、Bid 用法的说明
    MQL4编程中关于 Ask、Bid 用法的说明

    Ask、Bid 搞错了,开仓指令会导致不能成交,指令返回-1。订单运行过程中,我们经常需要监控盈利点数(不是货币金额),对于买入订单,我们需要观察 Bid 价与开仓价之差:...

    MQL4编程学习
  • 如何对智能交易系统(EA)进行测试
    如何对智能交易系统(EA)进行测试

    1. 首先把你得到的智能系统的文件复制到mt4客户端的/experts/文件夹下。我的MT4装在D盘,如图下面以测试我最近做出的EA-yunkaicn.mq4这个智能交易系统举例说明。2. 然后启动MT4交易软件,点击“显示”菜单下面的“...

    MQL4编程学习
  • 阿里云产品代金券、阿里云ECS云服务器优惠券及其他Aliyun ECS最新优惠活动
    阿里云产品代金券、阿里云ECS云服务器优惠券及其他Aliyun ECS最新优惠活动

    最近几年国内云主机/VPS市场竞争异常激烈,包括阿里云、腾讯云等巨头纷纷涉足云计算市场。阿里云从开始合并万网域名开始,然后单独阿里云品牌平台,通过各种资源整合、高性价比的产品和活动促销吸引到很多的国内用户,逐渐坐...

    MQL4编程学习
  • MQL4价格数据相关函数

    用于获取货币对/时段内价格数据的一组函数。如果请求数据(货币对名称/时段不同于当前图表)来自其他图表,这种情况可能是相应的图表没有在客户端内打开,并且需要从服务器端下载数据。这种情况下,错误信息ERR_H...

    MQL4编程学习
  • MT4编程初级手册(8):循环语句

    一幅K线图有几千上万条K线(Bar,根据设定的样本数),每根K线Bar又各有开收盘价、收盘价、最高低价等数值,而且还有很多移动平均线、MACD、RSI等技术指标数值。 面对大量的数据,我们经常采用循环来实现数据的取值和赋值。下...

    MQL4编程学习
你可能感兴趣