诚信为本
量力而为
当前位置:峰汇在线 ea编程知识 正文

深入解析MT4指标编程中柱状图循环次数的三种计算方法

MetaTrader 4 (MT4)的编程语言MQL4为开发者提供了一套强大的工具,用于创建自定义的交易指标和策略。一个常见的任务是计算需要处理的柱状图的数量。在此,我们将解析三种不同的计算方法。

  1. 老版本的写法
int ExtCountedBars=IndicatorCounted();
if (ExtCountedBars<0) return(-1);
if (ExtCountedBars>0) ExtCountedBars--;
int pos=Bars-ExtCountedBars-1;

在此方法中,首先调用IndicatorCounted()函数,获取已经计算的柱子数量。如果返回值为负,程序会立即返回,终止执行。如果已经计算的柱子数量大于0,我们减1,以重新计算上一个柱子,防止漏掉新的数据。最后,我们通过从总柱子数量中减去已计算的柱子数量,得到新的开始位置pos

  1. 新版本常见写法
int limit=rates_total-prev_calculated;
if(prev_calculated>0)
  limit++;

此方法首先将总柱子数量(rates_total)与上一次已经计算的柱子数量(prev_calculated)相减,得到本次需要计算的柱子数量limit。如果上一次已经计算的柱子数量大于0,那么将本次需要计算的柱子数量加1,以重新计算上一个柱子,确保不会错过新的数据。

  1. AI 方法
int start;
if(prev_calculated <= 0)
  start = rates_total - 1;
else
  start = rates_total - prev_calculated;

AI方法采取了一种更直接的方式来确定需要进行计算的起始点start。如果上一次已经计算的柱子数量(prev_calculated)小于或等于0,意味着没有柱子被计算过,那么我们将从最后一个柱子开始计算。否则,我们会从总柱子数量中减去已经计算过的柱子数量的位置开始计算。

以上三种方法各有优缺点,需要根据具体的开发需求和环境选择适合的计算方式。

版权所有转载请注明标题及链接:峰汇在线 » 深入解析MT4指标编程中柱状图循环次数的三种计算方法