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)
double iBullsPower(string symbol, int timeframe, int period, int applied_price, int shift)
计算牛力指标。
参数:
symbol - 要计算指标报告的货币对名称。 NULL表明目前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表明目前图表的时间周期。period - 计算的周期数。 applied_price - 应用的单价。它可以是 应用价格枚举 的任意值。 shift - 从指标缓冲区中获取值的索引(相对目前柱子向前移动一定数量周期的偏移量)。
示例:
double val=iBullsPower(NULL, 0, 13,PR洲际交易所_CLOSE,0);
double iCCI(string symbol, int timeframe, int period, int applied_price, int shift)
计算CCI指标。
参数:
symbol - 要计算指标报告的货币对名称。 NULL表明目前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表明目前图表的时间周期。period - 计算的周期数。 applied_price - 应用的单价。它可以是 应用价格枚举 的任意值。 shift - 从指标缓冲区中获取值的索引(相对目前柱子向前移动一定数量周期的偏移量)。
示例:
if(iCCI(NULL,0,12,PR洲际交易所_TYPICAL,0)>iCCI(NULL,0,20,PR洲际交易所_TYPICAL,0)) return(0);
double iCCIOnArray(double array[], int total, int period, int shift)
基于数值型数组中报告,计算CCI指标。不同于 iCCI() ,iCCIOnArray函数并没有通过货币对名称、图表时段、请求价格的方式获取报告,而是要求价格报告务必事先做好准备,再从左边到右边计算指标。为了能依照序列数组那样存取数组元素(即从右到左),你务必运用 ArraySetAsSeries 函数。
参数:
array[] - 需要计算报告的数组。total - 要参与计算的元素个数。0代表着运用整个数组。period - 计算的周期数。 shift - 从指标缓冲区中获取值的索引(相对目前柱子向前移动一定数量周期的偏移量)。
示例:
if(iCCIOnArray(ExtBuffer,total,12,0)>iCCI(NULL,0,20,PR洲际交易所_TYPICAL, 0)) return(0);
double iCustom(string symbol, int timeframe, string name, ..., int mode, int shift)
计算指定的自定义指标并返回它的值。自定义指标程序文件(*.EX4文件)需要编译;而且自定义指标程序文件务必放在 terminal_directory/experts/indicators 目录内。
参数:
symbol - 要计算指标报告的货币对名称。 NULL表明目前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表明目前图表的时间周期。 name - 自定义指标编译过的程序名。... - 参数设置(假使需要)。传递的参数和他们的顺序务必与自定义指标外部参数声明的顺序和类型统一。mode - 指标线索引。可以从0到7;仁且务必与 SetIndexBuffer函数 运用的索引统一。 shift - 从指标缓冲区中获取值的索引(相对目前柱子向前移动一定数量周期的偏移量)。
示例:
double val=iCustom(NULL, 0, "示例Ind",13,1,0);
double iDeMarker(string symbol, int timeframe, int period, int shift)
计算DeMarker指标。
参数:
symbol - 要计算指标报告的货币对名称。 NULL表明目前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表明目前图表的时间周期。period - 计算的周期数。 shift - 从指标缓冲区中获取值的索引(相对目前柱子向前移动一定数量周期的偏移量)。
示例:
double val=iDeMarker(NULL, 0, 13, 1);
double iEnvelopes(string symbol, int timeframe, int ma_period, int ma_method, int ma_shift, int applied_price, double deviation, int mode, int shift)
计算Envelopes包络线指标。
参数:
symbol - 要计算指标报告的货币对名称。 NULL表明目前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表明目前图表的时间周期。ma_period - MA计算的周期数。ma_method - MA方法。它可以是任意的 移动平均方法枚举值。ma_shift - MA偏移量。 applied_price - 应用的单价。它可以是 应用价格枚举 的任意值。deviation - 与主线的百分比偏差。 mode - 指标线的标识符。可以是 指标线标示符 里对应值。 shift - 从指标缓冲区中获取值的索引(相对目前柱子向前移动一定数量周期的偏移量)。
示例:
double val=iEnvelopes(NULL, 0, 13,MODE_SMA,10,PR洲际交易所_CLOSE,0.2,MODE_UPPER,0);
double iEnvelopesOnArray(double array[], int total, int ma_period, int ma_method, int ma_shift, double deviation, int mode, int shift)
基于数值型数组中报告,计算Envelopes包络线指标。不同于 iEnvelopes() ,iEnvelopesOnArray函数并没有通过货币对名称、图表时段、请求价格的方式获取报告,而是要求价格报告务必事先做好准备,再从左边到右边计算指标。为了能依照序列数组那样存取数组元素(即从右到左),你务必运用 ArraySetAsSeries 函数。
参数:
array[] - 需要计算报告的数组。total - 要参与计算的元素个数。0代表着运用整个数组。ma_period - MA计算的周期数。ma_method - MA方法。它可以是任意的 移动平均方法枚举值。ma_shift - MA偏移量。 deviation - 与主线的百分比偏差。 mode - 指标线的标识符。可以是 指标线标示符 里对应值。 shift - 从指标缓冲区中获取值的索引(相对目前柱子向前移动一定数量周期的偏移量)。
示例:
double val=iEnvelopesOnArray(ExtBuffer, 0, 13, MODE_SMA, 0.2, MODE_UPPER,0 );