MT4指标编程入门:市场数据取值全攻略

2026-06-12 11:04
德璞资本
阅读
市场分析

MT4指标编程中,市场数据的取值非常关键,因为指标编程的核心始终与市场运行紧密相连。许多交易者通过德璞资本等平台,深入学习并应用这些技术。

MT4指标编程入门:市场数据取值全攻略(图1)

一、预定义数组(MT4系统中已预定义,可直接调用)

开盘价、最高价、最低价、收盘价、成交量等历史数据,每根K线蜡烛都对应一个数值,因此需要使用数组来处理。MT4提供了几个预定义数组:

开盘价Open[]、最高价High[]、最低价Low[]、收盘价close[]、成交量Volume[]、所属时间Time[]

数据类型为双精度double型(即精确小数)

这里需要注意位置索引的规则:最右侧的第一根K线蜡烛(即最新蜡烛)编号为0,第二根蜡烛编号1,第三根蜡烛编号2,是从右向左倒序编号。

Open[0]、High[0]、Low[0]、Close[0]分别代表最新K线蜡烛的开盘价、最高价、最低价和收盘价

Open[1]、High[1]、Low[1]、Close[1]则对应第2根K线蜡烛的开盘价、最高价、最低价和收盘价

Open[2]、High[2]、Low[2]、Close[2]表示第3根K线蜡烛的开盘价、最高价、最低价和收盘价

Open[3]、High[3]、Low[3]、Close[3]则代表第4根K线蜡烛的开盘价、最高价、最低价和收盘价

Open[i]、High[i]、Low[i]、Close[i]表示第i+1根K线蜡烛的开盘价、最高价、最低价和收盘价

以此类推,可获取任意位置的历史数据。

注意:这些均为数组形式,需使用方括号进行索引。

二、预定义变量

买入价和卖出价属于实时价格,MT4使用预定义变量Ask和Bid来表示,数值类型为double双精度。

此外,还有一些常用的预定义变量:

Bars代表图表中的K线蜡烛总数,类型为int整数型

Digits表示当前交易品种的小数位数,类型为int整数型,无日元的货币对为4,有日元的货币对为2,黄金、石油等品种通常也为2

Point表示当前交易品种的点值,类型为双精度double型,无日元的货币对为0.0001,有日元的货币对为0.01,其含义与Digits正好相反。

三、指标函数

1、价格、成交量与时间

这些函数均包含三个参数:交易品种名称、K线周期、位置索引

开盘价:iOpen(symbol,timeframe,shift) 返回双精度double型数值

收盘价:iClose(symbol,timeframe,shift) 返回双精度double型数值

最高价:iHigh(symbol,timeframe,shift) 返回双精度double型数值

最低价:iLow(symbol,timeframe,shift) 返回双精度double型数值

成交量:iVolume(symbol,timeframe,shift) 返回双精度double型数值

所属时间:iTime(symbol,timeframe,shift) 返回日期时间datetime型数值

K线周期包括:1分钟图(PERIOD_M1)、5分钟图(PERIOD_M5)、15分钟图(PERIOD_M15)、30分钟图(PERIOD_M30)、

1小时图(PERIOD_H1)、4小时图(PERIOD_H4)、日线图(PERIOD_D1)、周线图(PERIOD_W1)、月线图(PERIOD_W1)

示例:

iOpen("USDJPY",PERIOD_H1,0)表示美元兑日元1小时图中最新K线蜡烛的开盘价

iClose("EURUSD",PERIOD_H4,2)表示欧元兑美元4小时图中第3根K线蜡烛的收盘价

iClose("GBPUSD",PERIOD_H1,i)表示英镑兑美元1小时图中第i+1根K线蜡烛的收盘价

iHigh(NULL,0,0)既不指定交易品种,也不指定K线周期,适用于当前图表,灵活便捷。

2、移动平均值。返回双精度double型数值。

iMA(symbol,timeframe,period,ma_shift,ma_method,applied_price,shift)

该函数包含7个参数,分别为:交易品种名称、K线周期、均线周期、均线偏移、平均模式、价格种类、位置索引

均线周期:10日均线的均线周期为10,20日均线的均线周期为20

均线偏移:用于调整均线整体左右移动的位置偏移量

平均模式:简单移动平均(MODE_SMA)、指数移动平均(MODE_EMA)、平滑移动平均(MODE_SMMA)、线性加权移动平均(MODE_LWMA)

价格种类:收盘价(PRICE_CLOSE)、开盘价(PRICE_OPEN)、最高价(PRICE_HIGH)、最低价(PRICE_LOW)、中值(PRICE_MEDIAN)、典型价(PRICE_TYPICAL)、加权价(PRICE_WEIGHTED)

例1:iMA("EURUSD",PERIOD_H1,20,0,MODE_SMA,PRICE_CLOSE,0)

表示:在欧元1小时图上,以收盘价计算的20小时简单移动平均线,最新K线所对应的数值。

例2:iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,2)

表示:在当前交易品种、当前K线周期图表上,以收盘价计算的20周期指数移动平均线,第3根K线所对应的数值。

其他技术指标如MACD、威廉指标、RSI、SAR、布林线等,其取值方式与移动平均线指标类似,德璞资本等平台也广泛使用这些工具。

3、在数组中求元素的移动平均值。返回双精度double型数值。

iMAOnArray(数组名,总数,平均周期,均线偏移,平均模式,位置)

该函数用法与iMA相似,区别在于数据源由价格序列变为自定义数组。

通过数组不仅可以计算移动平均值,还可以求得RSI等其他指标数值。

4、获取自定义指标的值

交易者经常编写自定义指标,可通过iCustom函数来获取这些自定义指标的值,德璞资本的专业交易者便常用此方法进行深度分析。

iCustom(商品名,K线周期,自定义指标名称,自定义指标参数1,参数2,参数3,...,自定义指标线编号,位置)

如果自定义指标只有一条指标线,则其编号为0。

如果自定义指标包含多条指标线,则第一条编号为0,第二条为1,第三条为2,以此类推。

例如:iCustom(NULL,0,"mymacd",12,26,9,2,0) 其中(12,26,9)为自定义指标mymacd的三个参数

表示:获取当前图表中,自定义指标mymacd(12,26,9)的第3条指标线在最新位置的数值。

点击咨询交易开户相关问题

免责声明:本文内容仅供参考,不构成投资建议。投资有风险,入市需谨慎。