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

CArrayRing256 环形缓冲区的简化类 - MetaTrader 5 库

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

CArrayRing256 类是该类的简化版本CArrayRing环形缓冲区,但速度更快,并且允许组织迷你时间序列、指标迷你缓冲区、短尺寸缓冲区以在 EA 交易或指标内存储中间流数据。 

基于uchar-variable的属性进行简化,用作数组索引。例如,在代码中

双倍的大批[UCHAR_MAX+1];  // 环形缓冲区数据
乌查尔  索引=0;            // 缓冲区元素索引

尽管(!已停止())
  {
   数组[++索引];          // 转到缓冲区的下一个元素   ...
  }

数组索引始终取0到255之间的值,并且永远不会超出数组维数的范围。通过简化方法本身并提高性能,它允许从与数组退出之外的索引可能退出相关的方法中删除所有检查。但缓冲区大小将始终保持不变,并且大小为 256 个元素。对于许多任务来说,这是通用类的可接受的替代方案CArrayRing 以换取工作效率的提高。

CArrayRing256

标题

#include 

CArrayRing256.mqh 类文件应放置在需要在 MQL5\Include\ 中建立的 IncOnRingBuffer 文件夹中。

类方法 

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

笔记:

这个类的使用类似于CArrayRing 。有几个区别:


附件下载

📎 carrayring256.mqh (2.85 KB)

Source: MQL5 #1379

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