MetaTrader 5 中的计数器实现:如何设置 X 次计数与等待

Mike 2024.04.14 19:15 22 0 0
附件

01. 计数 "X" 次后执行。

  • 步骤 01 - 创建一个变量来设定 计数限制,你可以将其作为 输入参数,便于代码优化。
  • 步骤 02 - 创建另一个变量来存储已计数的次数。
  • 步骤 03 - 一旦 计数器 达到你设定的 计数限制,这意味着是时候执行你指定的代码块了。
  • 步骤 04 - 执行完代码后,务必 重置计数器,否则它会无限计数。
你也可以为计数器块设置过滤条件,例如,>> "如果这个条件成立,则计数一次。"

input int count = 50; // 将计数限制设为输入

int Counter; // 计数器变量

// 专家初始化 --------------------
int OnInit()
{
 return(INIT_SUCCEEDED);
}

// 专家反初始化 -------------------
void OnDeinit(const int reason)
{

}

// 专家每个 tick 执行 --------------------------
void OnTick()
{
 Counter++; // 每个 tick 计数加 1。
 Comment("当前计数 -:", Counter);
 
 if(Counter == count) // 计数 "X" 次后执行 | 这个代码块每次计数达到时只执行一次。
 {
  
  // 你的代码在这里......
 Alert(count," 次已计数"); 
 Counter = 0; // 在代码块结束时重置计数器。这是必须的。
 } 

} // OnTick 结束  <<----------------------


02. 计数 "X" 次后等待 "X" 次再执行。

这种方法可以用来实现等待和执行、执行和等待的逻辑。

  • 步骤 01 - 创建变量来设定 计数限制等待限制,你可以将它们作为 输入参数,便于代码优化。
  • 步骤 02 - 创建另一个变量来存储计数和等待的次数。
  • 步骤 03 - 一旦 计数器 和你的 计数限制 相等,意味着是时候执行你的代码块。
  • 步骤 04 - 一旦 等待器 和你的 等待限制 相等,意味着是时候稍等一下。
  • 步骤 05 - 一旦达到等待限制,务必 重置计数器等待器,否则将会停止工作。
你也可以为计数器块和等待器块设置 过滤条件,例如,>> "如果这个条件成立,则等待一下"


input int count = 50; // 将计数限制设为输入
input int wait = 50; // 将等待限制设为输入

int Counter; // 计数器变量,默认值为 "0"
int Waiter; // 等待器变量,默认值为 "0"

// 专家初始化 --------------------
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }

// 专家反初始化 -------------------
void OnDeinit(const int reason)
  {

  }

// 专家每个 tick 执行 --------------------------
void OnTick()
  {
   Comment("已计数的 ticks -: ", Counter, "
", "已等待的 ticks -: ", Waiter);

   if(Counter < count) // 执行 "X" 次
     {
      Counter++; // 更新计数器

      // 你的代码在这里。

     }
   else
      if(Waiter < wait) // 等待 "X" 次
        {
         Waiter++; // 更新等待器

         // 你的代码在这里。

        }

   if(Waiter == wait) // 达到等待限制
     {
      Counter = 0; // 重置计数器
      Waiter = 0; // 重置等待器
     }



  } // OnTick 结束  <<----------------------
//+------------------------------------------------------------------+

特别提示 -:

你可以通过修改上面的代码,移除等待代码块,来实现 "执行 X 次后停止" 的功能。这样就会计数特定次数后停止工作,直到计数器被重置。如果你将这些变量创建为全局变量,可以在代码的任何地方进行重置。


列表
评论 0