手机版

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

阅读 :
外_汇_邦 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)

 

iBullsPower() – 牛力指标

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,PRICE_CLOSE,0);

iCCI() – CCI指标

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,PRICE_TYPICAL,0)>iCCI(NULL,0,20,PRICE_TYPICAL,0)) return(0);

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

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,PRICE_TYPICAL, 0)) return(0);

iCustom() – 自定义指标

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

iDeMarker() – DeMarker指标

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

计算DeMarker指标。

参数:

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

示例:

 double val=iDeMarker(NULL, 0, 13, 1);

iEnvelopes() – Envelopes包络线指标

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,PRICE_CLOSE,0.2,MODE_UPPER,0);

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

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 );
外_汇_邦 WaiHuiBang.com
本文标题:MQL4技术指标相关函数(二) - MT4平台MQL4编程学习
本文地址:https://www.waihuibang.com/fxschool/autotrading/mql4/49031.html

相关文章

  • MQL4对象操作函数(一)

    ObjectCreate() – 创建对象ObjectDelete() – 删除对象ObjectDescription() – 获取对象描述ObjectFind() – 查找指定对象ObjectGet() – 获取指定对象的属性值ObjectSet() &#...

    MQL4编程学习
  • Sidus v.2指标源码[MT4公式]
    Sidus v.2指标源码[MT4公式]

    有了这个指标,可以很容易的使用tick数据而不是HLOC数据来计算其它任何指标,如用 iMAOnArray(.....)来得到tick数据的MA。 注意:新加入本指标或在指标列表中修改参数,MT将会重新初始化指标,MT没提供tick数据数组记录,当然,本指标显示的tick是从初始化时刻开始收集获得的,初始化时历史数据缺省使用当前时间周期的close数据填充。所以从指标初始化开始,需要一段时间收集tick数据才有足够数据可观察显示。...

    MQL4编程学习
  • EA智能交易

      EA智能交易:  智能交易是Expert Advisor(简称EA)的中文译名,也可译作“专家问”,俗称智能交易系统,是由电脑模拟交易员的下单操作进行机器交易的过程;电脑根据预先编辑好的交易策略程序来执行交易定单。自动交易...

    MQL4编程学习
  • MT4平台使用说明和技巧

    目前很多平台都是用的MT4,简洁,快速,稳定。可是你知道一些小技巧的使用吗?下面介绍下MT4的快捷键使用,希望对大家有所帮助。热键(快捷键)是指用不同的键或多键组合快速运行不同的程序。 "ï" — 图表向左滚动;...

    MQL4编程学习
  • MT4智能交易的特性

    在MetaTrader 4交易系统中创建并测试智能交易存在以下列举特性。 在开仓之前必须验证账户内是否存在自由保证金。如果账户内的自由保证金不足,开仓交易将失败。您可以测试检验"FreeMargin"值不能够少于1000,因为测试期...

    MQL4编程学习
你可能感兴趣