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

阅读 :
欢迎访问 外 汇 邦 WWW.WaiHuiBang.com

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() – 资金流量指标

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

计算资金流量指标。

参数:

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

示例:

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

iMA() – 移动平均线

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         - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。 

示例:

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

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

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     - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。 

示例:

   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=macurrentslow)     Alert("穿过");

iOsMA() – OsMA指标

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           - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。 

示例:

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

iMACD() – MACD指标

double iMACD(string symbol, int timeframe,              int fast_ema_period, int slow_ema_period,               int signal_period, int applied_price, int shift)

计算MACD。OsMA称作MACD直方柱。MACD和OsMA分别显示在不同的窗口。

参数:

symbol          - 要计算指标数据的货币对名称。 NULL表示当前货币对。timeframe       - 时间周期。 可以 时间周期列举 任意值。 0表示当前图表的时间周期。 fast_ema_period - 快速移动平均线计算的周期数。slow_ema_period - 慢速移动平均线计算的周期数。signal_period   - 信号线移动平均计算的周期数。applied_price   - 应用的价格。它可以是 应用价格枚举 的任意值。    shift           - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。 

示例:

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

iOBV() – OBV指标

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

计算OBV指标(On Balance Volume indicator)。

参数:

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

示例:

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

iSAR() – SAR抛物线指标

double iSAR(string symbol, int timeframe, double step,             double maximum, int shift)

计算SAR抛物线指标。

参数:

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

示例:

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

iRSI() – RSI指标

double iRSI(string symbol, int timeframe, int period,             int applied_price, int shift)

计算RSI指标。

参数:

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

示例:

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

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

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

基于数值型数组中数据,计算RSI。不同于 iRSI() ,iRSIOnArray函数并不通过货币对名称、图表时段、请求价格的方式获取数据,而是要求价格数据必须事先准备好,再从左边到右边计算指标。为了能按照序列数组那样存取数组元素(即从右到左),你必须使用 ArraySetAsSeries 函数。

参数:

array[] - 需要计算数据的数组。 total   - 要参与计算的元素个数。0意味着使用整个数组。 period  - 计算的周期数。   shift   - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。 

示例:

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

iRVI() – RVI指标

double iRVI(string symbol, int timeframe, int period,             int mode, int shift)

计算RVI指标。

参数:

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

示例:

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

iStdDev() – 标准差指标

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         - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。 

示例:

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

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

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     - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。 

示例:

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

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

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/Close  mode        - 指标线的标识符。可以是 指标线标示符 里对应值  shift       - 从指标缓冲区中获取值的索引(相对当前柱子向前移动一定数量周期的偏移量)。 

示例:

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

iWPR() – WPR指标(%R)

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

计算WPR指标(%R指标)。

参数:

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

示例:

if(iWPR(NULL,0,14,0)>iWPR(NULL,0,14,1)) return(0);
欢迎访问 外 汇 邦 WWW.WaiHuiBang.com
本文标题:MQL4技术指标相关函数(四) - MT4平台MQL4编程学习
本文地址:http://www.ea666.cn/fxschool/autotrading/mql4/49029.html

相关文章

  • Best Scalper EA:最佳剥头皮EA?
    Best Scalper EA:最佳剥头皮EA?

    当我们评论Smart Pips EA时,我们提到便宜的剥头皮EA很难找到,特别是当它涉及到有真实账户的历史。今天我们要探索的EA,使用一个剥头皮的交易策略,其价格不高,并表现出稳定的回报。专业的交易者,来看一下该外汇机器人的名...

    MQL4编程学习
  • 你的EA交易为什么不能获利?

    近来从我自己以及朋友身边的一些故事有些感受,要成功使用EA获利不仅仅是一个EA的问题,还有很大部分因素“人”因为最终执行EA的是人,如果这个“人”对EA不了解,没有执行力,那么他的EA交易也是不成功的。 所以在这里我总...

    MQL4编程学习
  • 做市商最高机密:MT4平台虚拟庄家插件
    做市商最高机密:MT4平台虚拟庄家插件

    目前MT4平台在金属、外汇交易中应用广泛。关于MT4,有一个公司不得不提,即波士顿科技(Boston Technologies)。 该公司提供的MT4平台虚拟庄家插件,见下图: 为了理解准确,将图片上内容直译: 虚拟庄家插件: “虚拟庄家”这个软...

    MQL4编程学习
  • 如何将MT4上的交易行为复制到其他账户里面?
    如何将MT4上的交易行为复制到其他账户里面?

    在本文中,我们将介绍如何将某一MT4账户的交易行为拷贝到其他的MT4账户上面,有可能是你自己另外的账户,或者是客户的账户、你朋友的账户、你家人的账户。只要你可以访问这些账户,你就可以将你的账户交易行为拷贝到其他...

    MQL4编程学习
  • 外汇投资者如何识别外汇EA骗局

    现如今骗子盛行,以前行骗的都是上什么街头、电话搞搞诈骗,而现在那些手段早已经不见了,大多数骗子变得更有文化、更有技术含量。能通过互联网手段等高深技术进行诈骗,让你防不胜防。在外汇金融行业同样如此,都知道外汇市场...

    MQL4编程学习
你可能感兴趣