MQL5

Detección de nueva vela

Compara el timestamp de apertura de la vela actual con el memorizado: la lógica se ejecuta una sola vez por vela, sea cual sea el flujo de ticks. Versión compatible con multi-símbolo.

Requisitos

MetaTrader 5, MQL5

MQL5
bool IsNewBar(string symbol, ENUM_TIMEFRAMES tf)
{
   static datetime lastBarTime = 0;

   datetime barTime = iTime(symbol, tf, 0); // ouverture de la bougie courante
   if(barTime == 0)
      return false; // données pas encore synchronisées

   if(barTime != lastBarTime)
   {
      lastBarTime = barTime;
      return true;
   }
   return false;
}

void OnTick()
{
   if(!IsNewBar(_Symbol, PERIOD_CURRENT))
      return; // gestion intra-bougie éventuelle ici (trailing...)

   EvaluateSignals(); // logique lourde : 1 fois par bougie seulement
}

Resultado

2026.06.10 14:00:00.018  BarGate (EURUSD,M15)  Nouvelle bougie 14:00 -> EvaluateSignals()
2026.06.10 14:00:00.532  BarGate (EURUSD,M15)  Tick suivant, même bougie : logique lourde sautée
2026.06.10 14:15:00.011  BarGate (EURUSD,M15)  Nouvelle bougie 14:15 -> EvaluateSignals()
2026.06.10 14:15:00.012  BarGate (EURUSD,M15)  412 ticks filtrés sur la bougie précédente, 1 seule évaluation
New BarOnTickiTimePattern

Snippets relacionados

Volver al Data Lab