MetaTrader4
Comment détecter le début d'une nouvelle bougie sur MetaTrader 4
Salut les traders ! Aujourd'hui, on va parler d'un sujet essentiel pour nous tous : comment détecter le début d'une nouvelle bougie sur MetaTrader 4. En effet, lorsque vous utilisez un Conseiller Expert (CE), il est crucial de savoir quand une nouvelle bougie commence pour optimiser vos stratégies de trading.
Dans MetaTrader, à chaque fois qu'un nouveau tick est reçu, le terminal appelle la fonction de gestion des événements par défaut OnTick(). Cependant, il n'existe pas de fonction par défaut pour détecter le début d'une nouvelle bougie.
Pour y remédier, nous devons surveiller le temps d'ouverture de la bougie la plus récente. Dès que celui-ci change, cela signifie qu'une nouvelle bougie a débuté, et nous pouvons alors réagir en conséquence. Voici un exemple de code, compatible avec MQL4 et MQL5, qui illustre cette méthode :
// Gestionnaire d'événements par défaut pour les ticks
void OnTick()
{
// Vérifier s'il y a une nouvelle bougie (compatible MQL4 et MQL5).
static datetime dtBarCurrent = WRONG_VALUE;
datetime dtBarPrevious = dtBarCurrent;
dtBarCurrent = iTime(_Symbol, _Period, 0);
bool bNewBarEvent = (dtBarCurrent != dtBarPrevious);
// Réagir à l'événement de nouvelle bougie.
if (bNewBarEvent)
{
// Détecter si c'est le premier tick reçu.
if (dtBarPrevious == WRONG_VALUE)
{
// Gérer le premier tick ...
}
else
{
// Gérer le début d'une bougie normale ...
};
// Autres actions ...
}
else
{
// Autres actions ...
};
// Faire d'autres choses ...
};
Dans ce code, la variable statique permet de suivre le temps d'ouverture de la bougie, même après la sortie de la fonction OnTick(). Contrairement à une variable locale normale, elle retient ses données et ne les efface pas à la sortie de la fonction, ce qui est essentiel pour détecter un changement dans l'heure d'ouverture de la bougie actuelle.
Il est également important de noter que lorsque le CE est placé pour la première fois sur un graphique, le code ci-dessus réagit comme si une nouvelle bougie venait d'ouvrir. Cette situation nécessite une gestion particulière si elle doit être traitée différemment.
Pensez à consulter mes publications dans CodeBase, le code source est également disponible dans l'onglet "Projets Publics" de MetaEditor sous le nom "FMIC".
2022.04.24