MQL4技术指标函数详解:常用函数一览

MQL4不仅可以计算当前图表中的任何指标,还可以计算任何有效货币对或图表时段的数据。如果请求的数据(货币对名称或图表时段)与当前图表不同,且相应的图表未在客户端内打开,那么数据需要从服务器下载。此时,错误信息ERR_HISTORY_WILL_UPDATED(4066-历史数据正在更新中)会被放入last_error变量中,需要再次请求以更新数据(参见ArrayCopySeries()范例)。

iAC() – 加速震荡指标

iAD() – 离散指标

iAlligator() – 鳄鱼指标

iADX() – ADX指标

iATR() – ATR指标

iAO() – 动量震荡指标

iBearsPower() – 熊力指标

iBands() – 布林线指标

iBandsOnArray() – 基于数组计算布林线指标

iBullsPower() – 牛力指标

iCCI()澳汇外汇– CCI指标

iCCIOnArray() – 基于数组计算CCI指标

iCustom() – 自定义指标

iDeMarker() – DeMarker指标

iEnvelopes() – Envelopes包络线指标

iEnvelopesOnArray() – 基于数组计算包络线指标

iForce() – 强力指标

iFractals() – 分型指标

iGator() – 鳄鱼振荡指标

iIchimoku() – Ichimoku云图指标

iBWMFI() – BWMFI指标

iMomentum() – 动量指标

iMomentumOnArray() – 基于数组计算动量指标

iMFI() – 资金流量指标

iMA() – 移动平均线

iMAOnArray() – 基于数组计算移动平均线

iOsMA() – OsMA指标

iMACD() – MACD指标

iOBV() – OBV指标

iSAR() – SAR抛物线指标

iRSI() – RSI指标

iRSIOnArray() – 基于数组计算RSI指标

iRVI() – RVI指标

iStdDev() – 标准差指标

iStdDevOnArray() – 基于数组计算标准差

iStochastic() – 随机震荡指标(KDJ)

iWPR() – WPR指标(%R)

iAC() – 加速震荡指标

double iAC(string symbol, int timeframe, int shift) 计算比尔.威廉姆斯的加速震荡指标。

参数:

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

double result=iAC(NULL, 0, 1);iAD() – 离散指标

double iAD(string symbol, int timeframe, int shift) 计算离散指标。

参数:

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

double result=iAD(NULL, 0, 1);iAlligator() – 鳄鱼指标

double iAlligator(string symbol, int timeframe, int jaw_period, int jaw_shift, int teeth_period, int teeth_shift, int lips_period, int lips_shift, int ma_method, int applied_price, int mode, int shift) 计算比尔.威廉姆斯的鳄鱼指标。

参数:

symbol - 要计算指标数据的货币对名称。NULL表示当前货币对。timeframe - 时间周期。可以设置为时间周期枚举中的任意值。0表示当前图表的时间周期。jaw_period - 蓝线平均周期(鳄鱼的下颌)。jaw_shift - 蓝线偏移量。teeth_period - 红线平均周期(鳄鱼的牙齿)。teeth_shift - 红线偏移量。lips_period - 绿线平均周期(鳄鱼的嘴唇)。lips_shift - 绿线偏移量。ma_method - MA方法。可以是任意的移动平均计算方法。applied_price - 应用的价格。可以是应用价格枚举中的任意值。mode - 指标线的标识符。可以是以下任意值:MODE_GATORJAW - 鳄鱼下颌(蓝色)指标线,MODE_GATORTEETH - 鳄鱼牙齿(红色)指标线,MODE_GATORLIPS - 鳄鱼嘴唇(绿色)指标线。shift - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。 示例:

double jaw_val=iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW, 1);iADX() – ADX指标

double iADX(string symbol, int timeframe, int period, int applied_price, int mode, int shift) 计算ADX指标。

参数:

symbol - 要计算指标数据的货币对名称。NULL表示当前货币对。timeframe - 时间周期。可以设置为时间周期枚举中的任意值。0表示当前图表的时间周期。period - 计算的周期数。applied_price - 应用的价格。可以是应用价格枚举中的任意值。mode - 指标线的标识符。可以是指标线标示符中对应的值。shift - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。 示例:

if(iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0)iADX(NULL,0,14,PRICE_HIGH,MODE_PLUSDI,0)) return(0);iATR() – ATR指标

double iATR(string symbol, int timeframe, int period, int shift) 计算ATR指标。

参数:

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

if(iATR(NULL,0,12,0)iATR(NULL,0,20,0)) return(0);iAO() – 动量震荡指标

double iAO(string symbol, int timeframe, int shift) 计算比尔.威廉姆斯的动量震荡指标。

参数:

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

double result=iAO(NULL, 0, 1);iBearsPower() – 熊力指标

double iBearsPower(string symbol, int timeframe, int period, int applied_price, int shift) 计算熊力指标。

参数:

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

double val=iBearsPower(NULL, 0, 13, PRICE_CLOSE, 0);iBands() – 布林线指标

double iBands(string symbol, int timeframe, int period, int deviation, int bands_shift, int applied_price, int mode, int shift) 计算布林线指标。

参数:

symbol - 要计算指标数据的货币对名称。NULL表示当前货币对。timeframe - 时间周期。可以设置为时间周期枚举中的任意值。0表示当前图表的时间周期。period - 计算的周期数。deviation - 与主线的偏差。bands_shift - 指标相对图表的偏移。mode - 指标线的标识符。可以是指标线标示符中对应的值。applied_price - 应用的价格。可以是应用价格枚举中的任意值。shift - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。 示例:

if(iBands(NULL,0,20,2,0,PRICE_LOW,MODE_LOWER,0)Low[0]) return(0);iBandsOnArray() – 基于数组计算布林线指标

double iBandsOnArray(double array[], int total, int period, int deviation, int bands_shift, int mode, int shift) 基于数值型数组中的数据计算布林线指标。与iBands()不同,iBandsOnArray函数不通过货币对名称、图表时段或请求价格获取数据,而是要求价格数据事先准备好,并从左到右计算指标。为了能按序列数组方式存取数组元素(即从右到左),需要使用ArraySetAsSeries函数。

参数:

array[] - 需要计算数据的数组。total - 要参与计算的元素个数。0意味着使用整个数组。period - 计算的周期数。deviation - 与主线的偏差。bands_shift - 指标相对图表的偏移。mode - 指标线的标识符。可以是指标线标示符中对应的值。shift - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。 示例:

if(iBandsOnArray(ExtBuffer,total,2,0,MODE_LOWER,0)Low[0]) return(0);