欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

使用环形缓冲区绘制 ADX 的类 - MetaTrader 5脚本

author emer | 515 人阅读 | 0 人评论 |

The class for drawing the ADX using the ring buffer - indicator for MetaTrader 5

The class for drawing the ADX using the ring buffer - indicator for MetaTrader 5

The class for drawing the ADX using the ring buffer - indicator for MetaTrader 5

CADXOnRingBuffer 类旨在计算技术指标平均方向运动指数 (平均定向运动指数,ADX)使用算法  环形缓冲区。 

班级环形缓冲区上的CADX

标题

#include 

CADXOnRingBuffer.mqh 类的文件应放置在需要在 MQL5\Include\ 中建立的 IncOnRingBuffer 文件夹中。描述中附加了两个文件,其中包含该文件夹中的类所使用的示例。类为的文件环形缓冲区 和类移动平均线 也必须在此文件夹中。

//--- 初始化方法:
布尔值初始化(                                // 如果出错则返回 false,如果成功则返回 true  整数            ma_period =14,      // 移动平均线平滑周期  ENUM_MA_METHODma_method =模式_EMA,// 移动平均平滑方法  整数            缓冲区大小=256,      // 环形缓冲区的大小,存储数据的数量  布尔值           as_series   =错误的    // 如果是时间序列则为 true,如果输入数据的通常索引则为 false   );            
//--- 基于时间序列或指标缓冲区的计算方法:          
整数MainOnArray(                  // 返回已处理元素的数量    常量 整数     费率_总计,    // 数组的大小  常量 整数     先前计算的,// 上次调用时处理的元素  常量 双倍的&高的[]          // 最大值数组  常量 双倍的&低的[]            // 最小值数组  常量 双倍的&关闭[]          // 收盘价数组   );
//--- 基于数组的单独系列元素的计算方法           
双倍的主要值(              // 返回集合元素的 ADX 值  常量 整数    费率_总计,    // 数组的大小  常量 整数    先前计算的,// 处理后的数组元素  常量 整数    开始,          // 从数组的有效值开始的位置  常量 双倍的高的,            // 最大值  常量 双倍的低的,            // 最小值  常量 双倍的关闭,          // 收盘价  常量 整数    指数            // 元素索引   );
//--- 访问数据的方法:
整数    酒吧要求();  // 返回绘制指标所需的柱数
细绳名称ADX();        // 返回指标的名称
细绳名称NDI();        // 返回负向运动指标线的名称
细绳名称PDI();        // 返回名称正向运动指标线
细绳MA方法();      // 以文本行的形式返回平滑的方法  
整数    MAPeriod();      // 返回平滑周期
整数    尺寸();          // 返回环形缓冲区的大小

可以像从通常的数组中一样从环形缓冲区中获取指标的计算数据。例如:

#include CADXOnRingBuffer adx;

...//+------------------------------------------------------------------+
//|自定义指标迭代函数                              |
//+------------------------------------------------------------------+
整数 计算时常量 整数费率_总计,
                常量 整数先前计算的,
                常量 日期时间& 时间[],
                常量 双倍的& 打开[],
                常量 双倍的& 高的[],
                常量 双倍的& 低的[],
                常量 双倍的& 关闭[],
                常量 长的& 刻度量[],
                常量 长的& 体积[],
                常量 整数& 传播[])
  {//--- 指标的计算:   adx.MainOnArray(rates_total,prev_calculated,最高价,最低价,收盘价);

   ...
    //--- 将数据从“adx”环形缓冲区复制到指标:  为了整数i=开始;i1-我];      // 平均定向运动指数      PDI_Buffer[i]=adx.pdi[rates_total-1-我];  // 正方向指标      NDI_Buffer[i]=adx.ndi[rates_total-1-我];  // 负方向指标     }

   ...
  }

请注意,环形缓冲区中的索引与时间序列

The class for drawing the ADX using the ring buffer - indicator for MetaTrader 5

Test_ADX_OnArrayRB.mq5 的工作结果,环形缓冲区大小为 256 个元素

The class for drawing the ADX using the ring buffer - indicator for MetaTrader 5
Test_ADX_OnValueRB.mq5 的工作结果,环形缓冲区大小为 256 个元素

编写代码时的发展MetaQuotes 软件公司整数 和 哥斯拉被使用。


附件下载

📎 cmaonringbuffer.mqh (14.9 KB)

📎 carrayring.mqh (6.64 KB)

📎 cadxonringbuffer.mqh (10.04 KB)

📎 test_adx_onarrayrb.mq5 (3.91 KB)

📎 test_adx_onvaluerb.mq5 (5.6 KB)

Source: MQL5 #1343

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录