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

创建环形缓冲区的类 - MetaTrader 5 的库

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

环形缓冲区是存储数据的组织形式之一。通常,它代表自身的有限长度数组,其中最旧的元素被最新的数据替换。因此,总是可以访问一定数量的最后数据。主要用于流数据的异步读/写。欲了解更多详情看这里

编写 EA 交易和指标时,通常不需要存储所有柱的计算值。保留最后的数据就足够了,例如 100 个柱。环形缓冲区适合于此。明显优势:

CArrayRing

标题

#include 

CArrayRing.mqh 类的文件需要放置在 IncOnRingBuffer 文件夹中,该文件夹需要在 MQL5\Include\ 中创建。下面的链接中有该类使用的示例。

类方法 

//--- 缓冲区初始化方法:
布尔值初始化(// 如果出错则返回 false,如果成功则返回 true  整数    尺寸,            // 环形缓冲区大小  双倍的体积=空_VALUE // 空位置缓冲区的含义   );
//--- 新元素添加到缓冲区的方法:
空白添加(
  常量 双倍的元素  // 添加元素值   );
//--- 该方法用给定索引覆盖元素值:
布尔值更新(            // 如果出错则返回 false,如果成功则返回 true  常量 双倍的元素,// 元素的新值  常量 整数索引=0    // 元素索引   );  
//--- 该方法返回具有给定索引的元素值:
双倍的在(        // 返回元素值  常量 整数指数// 元素索引   )常量;
//--- 该方法返回最后写入缓冲区元素的值:
双倍的最后的()常量;
//--- 该方法覆盖缓冲区中的最后一个元素值:
空白最后的(
  常量 双倍的元素  // 元素的新值   );  
//--- 该方法返回环形缓冲区大小:
整数尺寸();
//--- 该方法更改环形缓冲区大小:
布尔值调整大小(
  常量 整数尺寸  // 新尺寸   );

笔记:

截至本文发布,共有三个使用环形缓冲区的示例:


附件下载

📎 carrayring.mqh (6.57 KB)

Source: MQL5 #1340

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