使用历史K线检测新K线的高效代码块 - MetaTrader 5专家

Mike 2024.04.11 21:05 14 0 0
附件

在之前的代码中,我使用了时间来检测新K线。这次我们换个方式,利用K线数量来检测新K线。这个方法比使用时间的方法更轻便且更快速

  • 声明一个整数类型的变量来存储K线数量。
  • 在初始化时,为"BarsTotal_OnInt"赋值K线数量。
  • 使用iBars();函数在实时图表中为"BarsTotal_OnTick"变量赋值K线数量。这个变量会在每次波动时更新。
  • 使用注释警报来检查代码的准确性。

int BarsTotal_OnInt; 
int BarsTotal_OnTick;
//+------------------------------------------------------------------+
//| 专家初始化函数                                   |
//+------------------------------------------------------------------+
int OnInit()
  {  
   BarsTotal_OnInt = iBars(NULL,PERIOD_CURRENT); // 初始化时赋值总K线数量
   return(INIT_SUCCEEDED);
  }
  
void OnTick() // 每次波动函数
  {   
   BarsTotal_OnTick = iBars(NULL,PERIOD_CURRENT); // 存储最新的K线数量
   
   if(BarsTotal_OnTick > BarsTotal_OnInt) // 新K线到达
   {
    BarsTotal_OnInt = BarsTotal_OnTick; // 更新历史记录。
    Alert("新K线到达!");
    Comment("历史K线数量 -: ", BarsTotal_OnInt, "\n", "实时K线数量 -: ", BarsTotal_OnTick);

     // 你的代码可以在这里添加。--------------------------
    
    // 你可以更新一个"标志"/变量用于后续使用。

   }
  }
    列表
    评论 0