Notifications push MT5 depuis un EA MQL5 : Alertes sur mobile en temps réel
Recevez instantanément les signaux de votre Expert Advisor sur votre smartphone, où que vous soyez. Découvrez comment configurer les notifications push MT5 avec votre EA MQL5 pour ne jamais manquer une opportunité de trading.
Dans le trading algorithmique, la réactivité est un facteur clé de succès. Votre Expert Advisor (EA) MQL5 analyse les marchés 24h/24, mais si vous n’êtes pas devant votre écran, comment savoir qu’un signal critique a été généré ? La solution réside dans les notifications push MT5, un système d’alerte mobile qui transforme votre smartphone en terminal de trading déporté.
Ce guide complet vous explique comment intégrer les notifications push dans votre EA MQL5, depuis la configuration de MetaTrader 5 jusqu’à l’implémentation du code. Que vous soyez développeur débutant ou trader expérimenté, vous apprendrez à envoyer des alertes personnalisées sur votre mobile, avec des exemples concrets de code et des bonnes pratiques pour une fiabilité maximale. À la fin de cet article, vous serez capable de programmer votre propre système d’alertes push et de rester connecté à vos trades en permanence.
1. Comprendre le système de notifications push MT5
Les notifications push MT5 fonctionnent via le service de notification MetaQuotes, intégré nativement dans la plateforme. Contrairement aux alertes par email qui nécessitent un serveur SMTP, les push utilisent un canal direct et crypté entre le terminal MetaTrader et l’application mobile MetaTrader 5 sur votre smartphone. Ce système est particulièrement adapté aux traders qui ont besoin d’alertes en temps réel sans délai.
Le principe est simple : votre EA MQL5 exécute une fonction dédiée qui envoie un message textuel au serveur MetaQuotes. Ce serveur relaie instantanément le message vers tous les appareils mobiles associés à votre compte de trading. L’application mobile affiche alors une notification standard (iOS ou Android) avec le contenu de votre message. Vous pouvez ainsi recevoir des informations sur l’ouverture de positions, les niveaux de stop-loss atteints, les signaux d’entrée, ou tout événement personnalisé que vous programmez.
Pour que le système fonctionne, vous devez préalablement configurer votre terminal MetaTrader 5. Rendez-vous dans le menu “Outils” > “Options” > onglet “Notifications”. Activez l’option “Activer les notifications push” et saisissez votre identifiant MetaQuotes (celui de votre compte de trading). Téléchargez ensuite l’application MetaTrader 5 sur votre smartphone, connectez-vous avec le même compte, et vous êtes prêt à recevoir les alertes.
2. Configurer votre EA MQL5 pour les notifications push
L’implémentation des notifications push dans un EA MQL5 repose sur une fonction unique mais puissante : SendNotification(). Cette fonction accepte une chaîne de caractères comme paramètre et l’envoie directement au service de notification. Voici comment l’intégrer dans votre code existant.
Commencez par définir une variable de contrôle pour activer ou désactiver les notifications facilement. Cela vous permet de tester votre EA sans être submergé d’alertes. Ensuite, créez une fonction personnalisée qui formate votre message et appelle SendNotification(). Par exemple, pour envoyer une alerte lorsqu’une position est ouverte, vous pouvez utiliser ce code :
// Paramètre de contrôle
input bool EnablePushNotifications = true;
// Fonction d'envoi de notification
void SendPushAlert(string message)
{
if(EnablePushNotifications)
{
if(!SendNotification(message))
Print("Erreur d'envoi de notification push : ", GetLastError());
else
Print("Notification push envoyée avec succès");
}
}
// Exemple d'utilisation dans OnTrade()
void OnTrade()
{
if(PositionSelect(_Symbol))
{
string alert = "Position ouverte sur " + _Symbol +
" | Volume: " + DoubleToString(PositionGetDouble(POSITION_VOLUME), 2) +
" | Prix: " + DoubleToString(PositionGetDouble(POSITION_PRICE_OPEN), _Digits);
SendPushAlert(alert);
}
}
Ce code vérifie d’abord si les notifications sont activées, puis tente d’envoyer le message. En cas d’échec, il affiche l’erreur dans le journal de l’EA pour faciliter le débogage. La fonction GetLastError() est essentielle pour identifier les problèmes de connexion ou de configuration.
Pour les traders utilisant des prop firms comme FTMO ou The Funded Trader, les notifications push sont particulièrement utiles pour respecter les règles de gestion des risques. Vous pouvez programmer votre EA pour envoyer une alerte lorsque le drawdown approche de la limite autorisée, vous permettant d’intervenir manuellement si nécessaire.
3. Personnaliser le contenu des alertes push
Une notification push efficace doit être concise, informative et immédiatement compréhensible. Évitez les messages trop longs (limite technique de 255 caractères) et privilégiez les informations clés : symbole, type d’événement, prix, volume, et éventuellement un timestamp. Voici comment structurer vos alertes pour maximiser leur utilité.
Créez un système de templates pour différents types d’événements : ouverture de position, fermeture, modification de stop-loss, atteinte de take-profit, ou signal technique (croisement de moyennes mobiles, sortie de zone de consolidation, etc.). Chaque template doit inclure un préfixe pour identifier rapidement le type d’alerte. Par exemple : “[ENTREE] EURUSD Buy 0.10 lot @ 1.1050” ou “[ALERTE] Drawdown 8.5% – Seuil 10% approché”.
Pour les signaux techniques, vous pouvez intégrer des indicateurs personnalisés dans vos notifications. Voici un exemple qui envoie une alerte lorsqu’une condition de trading est remplie :
// Exemple d'alerte sur condition technique
void CheckAndSendSignal()
{
double rsi = iRSI(_Symbol, _Period, 14, PRICE_CLOSE, 0);
double maFast = iMA(_Symbol, _Period, 10, 0, MODE_SMA, PRICE_CLOSE, 0);
double maSlow = iMA(_Symbol, _Period, 30, 0, MODE_SMA, PRICE_CLOSE, 0);
if(rsi < 30 && maFast > maSlow)
{
string signal = "[SIGNAL] " + _Symbol + " RSI=" + DoubleToString(rsi, 1) +
" | MA10=" + DoubleToString(maFast, _Digits) +
" | MA30=" + DoubleToString(maSlow, _Digits);
SendPushAlert(signal);
}
}
N’oubliez pas d’ajouter des informations de contexte comme le timeframe et la date/heure de l’événement. Utilisez la fonction TimeToString() pour inclure un timestamp lisible. Pour les traders qui gèrent plusieurs comptes ou plusieurs EA, vous pouvez même inclure un identifiant unique dans chaque notification pour savoir exactement quel EA a généré l’alerte.
Astuce pro : Pour éviter de saturer votre téléphone avec des notifications inutiles, implémentez un système de cooldown. Utilisez une variable statique qui stocke le timestamp du dernier envoi, et n’autorisez une nouvelle notification que si un délai minimum (par exemple 60 secondes) s’est écoulé. Cela empêche les alertes en rafale lors de conditions de marché volatiles. Voici un exemple :
static datetime lastAlertTime = 0;
if(TimeCurrent() - lastAlertTime >= 60) { SendPushAlert(message); lastAlertTime = TimeCurrent(); }
4. Gérer les erreurs et assurer la fiabilité
Les notifications push MT5 sont généralement fiables, mais plusieurs facteurs peuvent perturber leur fonctionnement : problème de connexion internet, serveur MetaQuotes temporairement indisponible, ou configuration incorrecte du terminal. Pour garantir que votre EA continue de fonctionner même si les notifications échouent, vous devez intégrer une gestion d’erreurs robuste.
La fonction SendNotification() retourne un booléen : true si l’envoi réussit, false en cas d’échec. Utilisez toujours cette valeur de retour pour journaliser les échecs et, si nécessaire, tenter un envoi alternatif (par exemple via email avec SendMail()). Voici une approche complète :
// Gestion d'erreurs avancée
bool SendAlertWithFallback(string message)
{
bool success = SendNotification(message);
if(!success)
{
int error = GetLastError();
Print("Échec notification push (erreur ", error, "). Tentative email...");
// Fallback vers email
success = SendMail("Alerte Trading - " + _Symbol, message);
if(!success)
Print("Échec email également (erreur ", GetLastError(), ")");
}
return success;
}
Pour les erreurs les plus courantes, voici un tableau récapitulatif avec les solutions :
| Code erreur | Cause probable | Solution |
|---|---|---|
| ERR_NOTIFICATION_SEND_FAILED (4109) | Problème de connexion au serveur MetaQuotes | Vérifiez votre connexion internet et les paramètres du proxy |
| ERR_NOTIFICATION_WRONG_PARAMETER (4110) | Message trop long ou caractères non autorisés | Limitez le message à 255 caractères et évitez les caractères spéciaux |
| ERR_NOTIFICATION_NOT_CONFIGURED (4111) | Notifications push non activées dans les options | Configurez l’onglet “Notifications” dans les options de MT5 |
| ERR_NOTIFICATION_WRONG_ID (4112) | Identifiant MetaQuotes incorrect | Vérifiez votre identifiant dans les paramètres du compte |
Testez toujours votre système de notifications dans un environnement de démonstration avant de l’utiliser sur un compte réel. Créez un script de test simple qui envoie une notification toutes les minutes pendant une heure pour vérifier la stabilité du service. Si vous rencontrez des échecs récurrents, envisagez d’utiliser un service tiers comme Telegram (via des librairies MQL5) comme solution de secours.
5. Optimiser les notifications pour le trading mobile
Recevoir une notification push sur son mobile est pratique, mais encore faut-il pouvoir agir rapidement. Pour les traders qui utilisent des prop firms avec des règles strictes, chaque seconde compte. Optimisez vos alertes pour qu’elles soient exploitables immédiatement, sans avoir à ouvrir MetaTrader 5 sur votre téléphone.
Incluez systématiquement les informations nécessaires à la prise de décision : direction de l’ordre (Buy/Sell), volume, prix d’entrée, stop-loss et take-profit suggérés. Formattez ces données de manière à pouvoir les copier-coller rapidement dans une éventuelle application de gestion de trades. Par exemple : “EURUSD Buy 0.10 SL:1.1020 TP:1.1080” est plus utile que “Position ouverte sur EURUSD”.
Pour les signaux complexes, utilisez des emojis ou des symboles pour une lecture rapide : 🟢 pour un achat, 🔴 pour une vente, ⚠️ pour une alerte de risque. Ces symboles sont supportés par les notifications push MT5 et améliorent considérablement la lisibilité. Voici un exemple complet de fonction de notification optimisée :
// Notification optimisée pour mobile
void SendTradeAlert(string symbol, int type, double price, double sl, double tp, double volume)
{
string direction = (type == ORDER_TYPE_BUY) ? "🟢 BUY" : "🔴 SELL";
string alert = direction + " " + symbol +
" Vol:" + DoubleToString(volume, 2) +
" @ " + DoubleToString(price, (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS)) +
" SL:" + DoubleToString(sl, (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS)) +
" TP:" + DoubleToString(tp, (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS));
SendPushAlert(alert);
}
Enfin, pensez à la gestion des fuseaux horaires. Si vous tradez sur plusieurs marchés (Forex, indices, cryptos), incluez l’heure de votre serveur de trading dans la notification. Utilisez TimeToString(TimeCurrent(), TIME_DATE|TIME_SECONDS) pour que vous sachiez exactement quand l’événement s’est produit, même si vous consultez vos notifications plus tard dans la journée.
Besoin d’un EA sur-mesure avec notifications push avancées ? Demander un devis gratuit
Questions fréquentes
Les notifications push MT5 fonctionnent-elles avec MetaTrader 4 ?
Oui, le système de notifications push est identique sur MT4 et MT5. La fonction s’appelle SendNotification() dans les deux plateformes. La configuration dans les options du terminal est également similaire. Cependant, si vous utilisez un EA développé en MQL4, vérifiez que votre broker supporte les notifications push, car certains brokers MT4 plus anciens peuvent ne pas les activer.
Puis-je envoyer des notifications push à plusieurs appareils simultanément ?
Oui, une fois que vous avez configuré votre identifiant MetaQuotes dans le terminal, toutes les notifications sont envoyées à tous les appareils connectés à ce compte. Si vous utilisez l’application MetaTrader 5 sur plusieurs smartphones ou tablettes, vous recevrez les alertes sur tous ces appareils en même temps. Il n’est pas possible de filtrer par appareil depuis le code MQL5.
Que faire si mes notifications push ne s’affichent pas sur mon mobile ?
Plusieurs causes possibles : vérifiez d’abord que l’application MetaTrader 5 est ouverte ou en arrière-plan sur votre téléphone (les notifications peuvent être bloquées si l’application est complètement fermée). Assurez-vous que les notifications système sont activées pour l’application dans les paramètres de votre téléphone. Vérifiez également que votre identifiant MetaQuotes dans les options de MT5 correspond exactement à celui de votre compte de trading. Enfin, testez avec un script simple qui envoie “Test notification” pour isoler le problème.
Y a-t-il une limite au nombre de notifications push que je peux envoyer ?
MetaQuotes n’impose pas de limite stricte, mais les brokers peuvent avoir leurs propres restrictions. En pratique, l’envoi de plus de 100 notifications par minute peut être considéré comme un abus et entraîner un blocage temporaire. Utilisez un système de cooldown dans votre EA pour éviter d’envoyer des notifications en rafale. Pour les alertes de tick par tick, envisagez plutôt de les regrouper dans un message récapitulatif périodique.
Puis-je personnaliser le son de notification pour les alertes trading ?
Non, le système de notifications push MT5 utilise les paramètres de notification standard de votre smartphone. Vous ne pouvez pas définir un son spécifique depuis le code MQL5. Cependant, sur iOS et Android, vous pouvez configurer des sons personnalisés pour l’application MetaTrader 5 dans les paramètres système. Certains traders utilisent cette fonctionnalité pour distinguer les alertes trading des autres notifications.