📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    MQL4技术指标相关函数(四)

    2013-08-13 · 6534 阅读
    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)

    iMFI() – 资金流量指标[size=1em]
    1

    double iMFI(string symbol, int timeframe, int period, int shift)




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

    if(iMFI(NULL,0,14,0)>iMFI(NULL,0,14,1)) return(0);




    Back to Top

    iMA() – 移动平均线[size=1em]
    1

    2

    double iMA(string symbol, int timeframe, int period, int ma_shift,

               int ma_method, int applied_price, int shift)




    计算移动平均线
    参数:
    symbol        - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe     - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。period        - MA计算的周期数。ma_shift      - MA偏移量。ma_method     - MA方法。它可以是其中 任意移动平均计算方法。applied_price - 应用的价格。它可以是 应用价格枚举 的任意值。shift         - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。
    示例:
    [size=1em]
    1

    AlligatorJawsBuffer=iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i);




    Back to Top

    iMAOnArray() – 基于数组计算移动平均线[size=1em]
    1

    2

    double iMA(double array[], int total, int period, int ma_shift,

               int ma_method, int shift)




    基于数值型数组中数据,计算移动平均线。不同于 iMA() ,iMAOnArray函数并不通过货币对名称、图表时段、请求价格的方式获取数据,而是要求价格数据必须事先准备好,再从左边到右边计算指标。为了能按照序列数组那样存取数组元素(即从右到左),你必须使用 ArraySetAsSeries 函数。
    参数:
    array[]   - 需要计算数据的数组。total     - 要参与计算的元素个数。0意味着使用整个数组。period    - MA计算的周期数。ma_shift  - MA偏移量。ma_method - MA方法。它可以是其中 任意移动平均计算方法。shift     - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。
    示例:
    [size=1em]
    1

    2

    3

    4

    5

    6

    7

    8

       double macurrent=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,0);

       double macurrentslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,0);

       double maprev=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,1);

       double maprevslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,1);

       //----

       if(maprev

    <maprevslow &&="" macurrent="">=macurrentslow)

         Alert("穿过");</maprevslow>




    Back to Top

    iOsMA() – OsMA指标[size=1em]
    1

    2

    3

    double iOsMA(string symbol, int timeframe,

                 int fast_ema_period, int slow_ema_period,

                 int signal_period, int applied_price, int shift)




    计算移动平均震荡指标。在一些系统中显示为 MACD 直方柱。
    参数:
    symbol          - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe       - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。fast_ema_period - 快速移动平均线计算的周期数。slow_ema_period - 慢速移动平均线计算的周期数。signal_period   - 信号线移动平均计算的周期数。applied_price   - 应用的价格。它可以是 应用价格枚举 的任意值。shift           - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。
    示例:
    [size=1em]
    1

    if(iOsMA(NULL,0,12,26,9,PRICE_OPEN,1)>iOsMA(NULL,0,12,26,9,PRICE_OPEN,0)) return(0);




    Back to Top

    iMACD() – MACD指标[size=1em]
    1

    2

    3

    double iMACD(string symbol, int timeframe,

                 int fast_ema_period, int slow_ema_period,

                 int signal_period, int applied_price, int shift)




    计算MACDOsMA称作MACD直方柱。MACD和OsMA分别显示在不同的窗口。
    参数:
    symbol          - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe       - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。fast_ema_period - 快速移动平均线计算的周期数。slow_ema_period - 慢速移动平均线计算的周期数。signal_period   - 信号线移动平均计算的周期数。applied_price   - 应用的价格。它可以是 应用价格枚举 的任意值。shift           - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。
    示例:
    [size=1em]
    1

    if(iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)>iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0)) return(0);




    Back to Top

    iOBV() – OBV指标[size=1em]
    1

    double iOBV(string symbol, int timeframe, int applied_price, int shift)




    计算OBV指标(On Balance Volume indicator)。
    参数:
    symbol        - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe     - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。applied_price - 应用的价格。它可以是 应用价格枚举 的任意值。shift         - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。
    示例:
    [size=1em]
    1

    double val=iOBV(NULL, 0, PRICE_CLOSE, 1);




    Back to Top

    iSAR() – SAR抛物线指标[size=1em]
    1

    2

    double iSAR(string symbol, int timeframe, double step,

                double maximum, int shift)




    计算SAR抛物线指标
    参数:
    symbol    - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。step      - 步长(增量),通常为0.02。maximum   - 最大值,通常为0.2。shift     - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。
    示例:
    [size=1em]
    1

    if(iSAR(NULL,0,0.02,0.2,0)>Close[0]) return(0);




    Back to Top

    iRSI() – RSI指标[size=1em]
    1

    2

    double iRSI(string symbol, int timeframe, int period,

                int applied_price, int shift)




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

    if(iRSI(NULL,0,14,PRICE_CLOSE,0)>iRSI(NULL,0,14,PRICE_CLOSE,1)) return(0);




    Back to Top

    iRSIOnArray() – 基于数组计算RSI指标[size=1em]
    1

    double iRSIOnArray(double array[], int total, int period, int shift)




    基于数值型数组中数据,计算RSI。不同于 iRSI() ,iRSIOnArray函数并不通过货币对名称、图表时段、请求价格的方式获取数据,而是要求价格数据必须事先准备好,再从左边到右边计算指标。为了能按照序列数组那样存取数组元素(即从右到左),你必须使用 ArraySetAsSeries 函数。
    参数:
    array[] - 需要计算数据的数组。total   - 要参与计算的元素个数。0意味着使用整个数组。period  - 计算的周期数。shift   - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。
    示例:
    [size=1em]
    1

    if(iRSIOnArray(ExtBuffer,1000,14,0)>iRSI(NULL,0,14,PRICE_CLOSE,1)) return(0);




    Back to Top

    iRVI() – RVI指标[size=1em]
    1

    2

    double iRVI(string symbol, int timeframe, int period,

                int mode, int shift)




    计算RVI指标
    参数:
    symbol    - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe - 时间周期。 可以 时间周期列举 任意值。0表示当前图表的时间周期。period    - 计算的周期数。mode      - 指标线的标识符。可以是 指标线标示符 里对应值shift     - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。
    示例:
    [size=1em]
    1

    double val=iRVI(NULL, 0, 10,MODE_MAIN,0);




    Back to Top

    iStdDev() – 标准差指标[size=1em]
    1

    2

    3

    double iStdDev(string symbol, int timeframe, int ma_period,

                   int ma_shift, int ma_method, int applied_price,

                   int shift)




    计算标准差指标
    参数:
    symbol        - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe     - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。ma_period     - MA计算的周期数。ma_shift      - MA偏移量。ma_method     - MA方法。它可以是其中 任意移动平均计算方法。applied_price - 应用的价格。它可以是 应用价格枚举 的任意值。shift         - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。
    示例:
    [size=1em]
    1

    double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0);




    Back to Top

    iStdDevOnArray() – 基于数组计算标准差[size=1em]
    1

    2

    3

    double iStdDevOnArray(double array[], int total,

                         int ma_period, int ma_shift,

                         int ma_method, int shift)




    基于数值型数组中数据,计算标准差。不同于 iStdDev() ,iStdDevOnArray函数并不通过货币对名称、图表时段、请求价格的方式获取数据,而是要求价格数据必须事先准备好,再从左边到右边计算指标。为了能按照序列数组那样存取数组元素(即从右到左),你必须使用 ArraySetAsSeries 函数。
    参数:
    array[]   - 需要计算数据的数组。 total - 要参与计算的元素个数。0意味着使用整个数组。ma_period - MA计算的周期数。ma_shift  - MA偏移量。ma_method - MA方法。它可以是其中 任意移动平均计算方法。shift     - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。
    示例:
    [size=1em]
    1

    double val=iStdDevOnArray(ExtBuffer,100,10,0,MODE_EMA,0);




    Back to Top

    iStochastic() – 随机震荡指标(KDJ)[size=1em]
    1

    2

    3

    4

    double iStochastic(string symbol, int timeframe,

                       int %Kperiod, int %Dperiod,

                       int slowing, int method,

                       int price_field, int mode, int shift)




    计算随机震荡指标(KDJ指标)。
    参数:
    symbol      - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe   - 时间周期。 可以 时间周期列举 任意值。0表示当前图表的时间周期。%Kperiod    - %K线周期数。%Dperiod    - %D线周期数。slowing     - 减速值(Slowing value)。ma_method   - MA方法。可以是任意的移动平均计算方法。price_field - 价格参数。可以是下列值:              0:Low/High 或者 1:Close/Closemode        - 指标线的标识符。可以是 指标线标示符 里对应值shift       - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。
    示例:
    [size=1em]
    1

    2

    if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0))

        return(0);




    Back to Top

    iWPR() – WPR指标(%R)[size=1em]
    1

    double iWPR(string symbol, int timeframe, int period, int shift)




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

    if(iWPR(NULL,0,14,0)>iWPR(NULL,0,14,1)) return(0);





    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 4 个

    美女矜持点 LV3

    发表于 2014-11-4 11:49:31 | 显示全部楼层

    没有使用说明书

    幸福烟灰 LV3

    发表于 2014-11-5 15:30:46 | 显示全部楼层

    赚钱,赚积分。顶....

    drengen LV5

    发表于 2014-12-8 07:37:25 | 显示全部楼层

    EA真的能赚钱么?

    云兮若雨 LV3

    发表于 2014-12-21 09:34:10 | 显示全部楼层

    xiexiefenxiang
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服