21 MQL4价格数据函数

任何可见货币对/时间周期的价格数据的一组函数。

。如果请求数据(货币对名称/时间周期不同于当前图表)来自其他图表,这种情况可能使相应的图表不能在客户端内打开,并且需要从服务器上请求数据。这种情况下, 错误
ERR_HISTORY_WILL_UPDATED (4066 – 请求历史数据并刷新)将被放置于last_error变量中,并且可以重新请求(查看ArrayCopySeries()范例)。

在测试中,相同货币对但不同时间周期的价格价位被塑造(除成交量外)。其他货币对的价格数据不被塑造。这些情况下,在时间数组的 柱总数被塑造。

21.1 iBars(K柱数量)

int iBars(    string symbol, int timeframe)

在指定的图表内返回柱的数量。
对于当前图表柱总量的信息在预定义的变量中命名为Bars

参量:

symbol      –      需应用到计算指标的货币对数据 NULL 意味当前货币对名称。

timeframe      –      从显示缓冲采取的值的索引(从当前K柱往回计算的K柱数量,0表示当前K柱)。

示例:

Print(“在货币对’EUROUSD’带有PERIOD_H1 柱数”,iBars(“EUROUSD”,PERIOD_H1));

21.2 iBarShift(开始柱时间)

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

搜索柱开始的时间。函数返回指定开始时间的柱。如果柱的指定开始时间是省缺值, 函数将返回-1或 最近的柱 exact。

参量:

symbol      –      需应用到计算指标的货币对数据 NULL 意味当前货币对名称。。

timeframe      –      时间周期。可以是时间周期列举的任意值。0 意味着当前图表的时间周期。

time      –      查找值 (柱的开始时间)。

exact      –      未发现柱的返回模式。false – iBarShift 返回最近。 true – iBarShift 返回 -1。

示例:

datetime some_time=D’2004.03.21 12:00′;

int shift=iBarShift(“EUROUSD”,PERIOD_M1,some_time);

Print(“带有打开时间平移柱 “,TimeToStr(some_time),” 是 “,shift);

21.3 iClose(收盘价)

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

对于带有时间周期和平移指定货币对的柱返回 关闭值。如果加载历史为空,函数返回0。
对于当前图表,关于收盘价格的信息在预定义数组中命名为 Close[]

参量:

symbol      –      需应用到计算指标的货币对数据 NULL 意味当前货币对名称。

timeframe      –      时间周期。可以是时间周期列举的任意值。0 意味着当前图表的时间周期。

shift      –      从显示缓冲采取的值的索引(从当前K柱往回计算的K柱数量,0表示当前K柱)。

示例:

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));

21.4 iHigh(最高价)

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

对于带有时间周期和平移指定货币对 的柱返回 高值。如果加载历史为空,函数返回0。
对于当前图表,关于高价格的信息在预定义数组中命名为High[].

参量:

symbol      –      需应用到计算指标的货币对数据 NULL 意味当前货币对名称。

timeframe      –      时间周期。可以是时间周期列举的任意值。0 意味着当前图表的时间周期。

shift      –      从显示缓冲采取的值的索引(从当前K柱往回计算的K柱数量,0表示当前K柱)。

示例:

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));

21.5 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)];

21.6 iLow(最低价)

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

对于带有时间周期和平移指定货币对 的柱返回 低值。如果加载历史为空,函数返回0。
对于当前图表,关于低价格的信息在预定义数组中命名为Low[].

参量:

symbol      –      需应用到计算指标的货币对数据 NULL 意味当前货币对名称。。

timeframe      –      时间周期。可以是时间周期列举的任意值。0 意味着当前图表的时间周期。

shift      –      从显示缓冲采取的值的索引(从当前K柱往回计算的K柱数量,0表示当前K柱)。

示例:

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));

21.7 iLowest(一段时间内的最低价)

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

根据类型返回最小值转移的一个具体数字。

参量:

symbol      –      需应用到计算指标的货币对数据 NULL 意味当前货币对名称。。

timeframe      –      时间周期。可以是时间周期列举的任意值。0 意味着当前图表的时间周期。

type      –      系列数组的识别符。它可以是系列数据识别符列举 的任意值。

count      –      时间周期。

start      –      移动显示与当前相关的柱,采取数据。

示例:

// 在范围内计算连续10个柱的最低值

// 在当前图表从第10个到第19个的索引

double val=Low[iLowest(NULL,0,MODE_LOW,10,10)];

21.8 iOpen(开盘价)

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

对于带有时间周期和平移指定货币对 的柱返回 开价格值。如果加载历史为空,函数返回0。
对于当前图表,关于开价格的信息在预定义数组中命名为 Open[].

参量:

symbol      –      需应用到计算指标的货币对数据 NULL 意味当前货币对名称。。

timeframe      –      时间周期。可以是时间周期列举的任意值。0 意味着当前图表的时间周期。

shift      –      从显示缓冲采取的值的索引(从当前K柱往回计算的K柱数量,0表示当前K柱)。

示例:

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));

21.9 iTime(K柱起始时间)

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

对于带有时间周期和平移指定货币对 的柱返回 时间值。如果加载历史为空,函数返回0。
对于当前图表,关于时间的信息在预定义数组中命名Time[].

参量:

symbol      –      需应用到计算指标的货币对数据 NULL 意味当前货币对名称。。

timeframe      –      时间周期。可以是时间周期列举的任意值。0 意味着当前图表的时间周期。

shift      –      从显示缓冲采取的值的索引(从当前K柱往回计算的K柱数量,0表示当前K柱)。

示例:

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));

21.10 iVolume(成交量)

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

对于带有时间周期和平移指定货币对 的柱返回 替克成交量值。如果加载历史为空,函数返回0。
对于当前图表,关于成交量的信息在预定义数组中命名Volume[].

参量:

symbol      –      需应用到计算指标的货币对数据 NULL 意味当前货币对名称。。

timeframe      –      时间周期。可以是时间周期列举的任意值。0 意味着当前图表的时间周期。

shift      –      从显示缓冲采取的值的索引(从当前K柱往回计算的K柱数量,0表示当前K柱)。

示例:

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));