Trading Systématique

Vérifiez les Dernières Transactions Closes sur MetaTrader 5
MetaTrader5
Vérifiez les Dernières Transactions Closes sur MetaTrader 5

Salut les traders ! Aujourd'hui, je vais vous montrer comment obtenir les données de votre dernière transaction fermée sans avoir à utiliser de boucles dans votre code. C'est super pratique pour garder un œil sur vos performances ! Comment procéder ? Créez une variable pour définir l'heure de début de la journée. (Ce n'est pas une obligation, mais c'est un bon point de départ.) Créez d'autres variables pour afficher des résultats sur le graphique et les utiliser dans d'autres blocs de code. (Encore une fois, ce n'est pas nécessaire, mais c'est utile.) En utilisant ce code dans la fonction OnTick();, vous obtiendrez les résultats à chaque tick. Vous pouvez également le configurer pour qu'il s'exécute à chaque barre. Le Code // variables string DayStart = "00:00"; // Heure de Début de la Journée double LastClosed_Profit; // Profit de la Dernière Transaction Fermée string TradeSymbol, TradeType; // Initialisation de l'Expert -------------------- int OnInit()   {    return(INIT_SUCCEEDED);   } // Désinitialisation de l'Expert ------------------- void OnDeinit(const int reason)   {   } // Fonction OnTick -------------------------- void OnTick()   { // Vérification de la dernière transaction fermée.    CheckLastClosed();   } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void CheckLastClosed()   {    datetime HistoryTime = StringToTime(DayStart); // Historique de "Début de la Journée à l'heure actuelle"    if(HistorySelect(HistoryTime,TimeCurrent()))      {       int Total = HistoryDealsTotal();       // Obtenez le numéro de ticket de la dernière transaction et sélectionnez-le pour un traitement ultérieur.       ulong Ticket = HistoryDealGetTicket(Total -1);       // Obtenez les informations nécessaires.       LastClosed_Profit = NormalizeDouble(HistoryDealGetDouble(Ticket,DEAL_PROFIT),2);       TradeSymbol = HistoryOrderGetString(Ticket,ORDER_SYMBOL);       // Identifier une transaction de vente.       if(HistoryDealGetInteger(Ticket,DEAL_TYPE) == DEAL_TYPE_BUY)         {          TradeType = "Vente";         }       // Identifier une transaction d'achat       if(HistoryDealGetInteger(Ticket,DEAL_TYPE) == DEAL_TYPE_SELL)         {          TradeType = "Achat";         }       // Affichage sur le graphique.       Comment("\n","Total des Transactions - :  ", Total,               "\n","Numéro du Dernier Ticket - :  ", Ticket,               "\n", "Profit de la Dernière Transaction -:  ", LastClosed_Profit,               "\n", "La Dernière Transaction était -:  ", TradeType);      }   } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ N'oubliez pas, vous pouvez obtenir l'ensemble de l'historique des transactions (depuis le tout début de votre compte) en utilisant la fonction HistorySelect(); comme ceci : // Obtenez tout l'historique HistorySelect(0,TimeCurrent());

2024.04.22
Optimisez vos Trades avec le Système de Trailing et de Fermeture Automatique sur MetaTrader 5
MetaTrader5
Optimisez vos Trades avec le Système de Trailing et de Fermeture Automatique sur MetaTrader 5

Salut à tous les traders ! Aujourd'hui, je vais vous parler d'un outil qui pourrait bien améliorer votre expérience de trading sur MetaTrader 5 : un système de trailing et de fermeture automatique des ordres. Présentation de l'EA : Cet EA (Expert Advisor) est une modification d'un ancien système que vous pouvez consulter ici. Il offre des fonctionnalités intéressantes pour gérer vos ordres plus efficacement. Comment l'utiliser : 1. Ajoutez cet EA sur n'importe quel symbole. 2. Définissez les valeurs des variables pour vos objectifs de TP (Take Profit), SL (Stop Loss), trailing, et les seuils de profit ou de perte pour vos ordres. 3. Cet EA n'est pas basé sur un numéro magique spécifique, ce qui signifie que si vous passez une commande depuis votre mobile, l'EA adaptera automatiquement le SL, le TP et le trailing. Fonctionnalités de modification : 1. Séparation avec 5 boutons : 2. Fermeture automatique de tous les ordres lorsque le profit atteint le seuil défini par le paramètre : "CLOSE IF PROFIT-xxxx" (Remplissez avec 0 si vous ne souhaitez pas utiliser cette fonction) : Exemple : Remplir 100.0 fermera automatiquement tous les ordres lorsque le profit atteindra 100 €. Si vous remplissez 0.0, cette fonction sera désactivée. 3. Fermeture automatique de tous les ordres lorsque la perte atteint le seuil défini par le paramètre : "CLOSE IF LOSS-xxxx" (Remplissez avec 0 si vous ne souhaitez pas utiliser cette fonction) : Exemple : Remplir -70.0 fermera automatiquement tous les ordres lorsque la perte atteindra -70 €. Si vous remplissez 0.0, cette fonction sera désactivée. Alors, préparez-vous à trader avec plus de sérénité ! Historique des mises à jour : - Ajout du bouton pour fermer les ordres d'achat. - Ajout du bouton pour fermer les ordres de vente. - Suppression du paramètre non utilisé : Lots.

2024.04.21
Découvrez QuickTradeKeys123 : L'EA indispensable pour MetaTrader 5
MetaTrader5
Découvrez QuickTradeKeys123 : L'EA indispensable pour MetaTrader 5

Bienvenue dans le monde du trading efficace avec QuickTradeKeys 123 ! Cet Expert Advisor est conçu pour vous permettre de réagir rapidement et efficacement sur le marché. Grâce à une simple pression sur une touche, vous pouvez trader directement depuis votre graphique. Voici un aperçu de ses fonctionnalités : Fonctionnalités Clés Touche '1' : Ouvre une position d'achat avec une taille de lot prédéfinie. Touche '2' : Ouvre une position de vente avec une taille de lot prédéfinie. Touche '3' : Ferme toutes les positions ouvertes par l'EA en fonction du numéro magique spécifié. Que vous soyez débutant ou trader expérimenté, cet EA est très facile à utiliser et vous permet un contrôle immédiat de vos trades via le clavier. Champ d'Application Le QuickTradeKeys 123 est adapté à toutes les paires de devises et à tous les intervalles de temps. Pour des performances optimales et une exécution rapide, nous vous recommandons de viser un faible spread et un accès fluide au marché. Installation Pour l'installer, il vous suffit de glisser l'EA sur le graphique souhaité, de vous assurer que le trading automatique est activé dans MetaTrader, et que l'EA est autorisé à exécuter des trades. N'oubliez pas de configurer le numéro magique selon vos besoins dans les paramètres d'entrée. Important Attention : cet EA n'est pas destiné à être utilisé sur un compte de trading réel à moins que vous ne compreniez pleinement le concept sous-jacent et les risques associés. Il est conseillé de tester d'abord l'EA sur un compte démo pour vous familiariser avec son comportement.

2024.04.20
Comprendre le Trailing Classique et Virtuel sur MetaTrader 4 pour Maximiser vos Gains
MetaTrader4
Comprendre le Trailing Classique et Virtuel sur MetaTrader 4 pour Maximiser vos Gains

Salut les traders ! Aujourd'hui, on va plonger dans le monde du trailing sur MetaTrader 4, en explorant les différences entre le trailing classique et le trailing virtuel. Prêts à optimiser vos stratégies de trading ? C'est parti !Trailing ClassiqueLe trailing classique utilise un stop loss pour suivre vos positions. Cela signifie que chaque fois que le marché évolue en votre faveur, le stop loss s'ajuste automatiquement pour sécuriser vos gains. Ce type de trailing est directement géré par votre serveur de courtage, ce qui vous offre une protection continue.Trailing VirtuelÀ l'inverse, le trailing virtuel ne s'appuie pas sur un stop loss. Cela signifie qu'il n'apparaît pas sur le serveur de votre courtier, mais il fonctionne en interne dans votre plateforme. Cela peut être utile si vous préférez garder vos stratégies de trading à l'abri des yeux indiscrets, mais attention, car vous devrez surveiller vos positions de plus près !Comprendre les Termes ClésTrailing Gap : C'est l'écart entre le prix d'offre (Bid) et le prix de demande (Ask).Trailing Start : Cela correspond à la distance entre le prix d'entrée de votre ordre (prix d'ouverture) et le moment où le trailing commence à s'activer.En résumé, le choix entre le trailing classique et virtuel dépend de votre style de trading et de vos préférences personnelles. N'hésitez pas à tester les deux sur un compte démo pour voir ce qui vous convient le mieux. Bonne chance et bons trades !

2024.04.19
Comment Créer un Compteur dans MetaTrader 5 : Comptez et Passez
MetaTrader5
Comment Créer un Compteur dans MetaTrader 5 : Comptez et Passez

01. Comptez "X" fois puis passez. Étape 01 - Créez une variable pour définir la limite de comptage. Vous pouvez l'utiliser comme un paramètre d'entrée pour optimiser votre code. Étape 02 - Créez une autre variable pour stocker le nombre de fois comptées. Étape 03 - Lorsque le Compteur et votre limite de comptage sont égaux, cela signifie qu'il est temps de passer le bloc de code que vous avez spécifié. Étape 04 - Une fois le code exécuté, assurez-vous de réinitialiser le compteur. Sinon, il comptera indéfiniment. Vous pouvez également définir des conditions de filtrage pour le bloc de compteur, comme >> "SI c'est vrai, alors comptez une fois." input int count = 50; // Définissez la limite de comptage comme entrée int Compteur; // variable de compteur // Initialisation de l'Expert -------------------- int OnInit() { return(INIT_SUCCEEDED); } // Désinitialisation de l'Expert ------------------- void OnDeinit(const int reason) { } // Fonction OnTick -------------------------- void OnTick() { Compteur ++; // ajoute 1 au compteur à chaque tick. Comment("Compteur Actuel -:", Compteur); if(Compteur == count) // Comptez "X" fois et passez | Ce bloc s'exécute une seule fois par compte. {      // Votre code ici...... Alert(count," fois comptées"); Compteur = 0; // Réinitialisez le compteur à la fin de votre bloc de code. C'est essentiel. } } // Fin de OnTick  <<---------------------- 02. Passez "X" fois puis attendez "X" fois et passez. Cette méthode peut être utilisée pour alterner entre attendre et passer. Étape 01 - Créez une variable pour définir la limite de comptage et la limite d'attente, vous pouvez les utiliser comme paramètres d'entrée pour optimiser votre code. Étape 02 - Créez une autre variable pour stocker les limites de comptage et d'attente. Étape 03 - Lorsque le Compteur et votre limite de comptage sont égaux, cela signifie qu'il est temps de passer le bloc de code que vous avez spécifié. Étape 04 - Lorsque la limite d'attente est atteinte, assurez-vous de réinitialiser le compteur et le waiter. Sinon, cela cessera de fonctionner. Vous pouvez également définir des conditions de filtrage pour le bloc de compteur et les blocs d'attente, comme >> "SI c'est vrai, attendez un peu." input int count = 50; // Définissez la limite de comptage comme entrée input int wait = 50; // Définissez la limite d'attente comme entrée int Compteur; // variable de compteur, valeur par défaut "0" int Waiter; // variable d'attente, valeur par défaut "0" // Initialisation de l'Expert -------------------- int OnInit()   {    return(INIT_SUCCEEDED);   } // Désinitialisation de l'Expert ------------------- void OnDeinit(const int reason)   {   } // Fonction OnTick -------------------------- void OnTick()   {    Comment("Ticks Comptés -: ", Compteur, "\n", "Ticks Attendus -: ", Waiter);    if(Compteur < count) // Passez "X" fois      {       Compteur++; // mise à jour du compteur       // Votre code ici.      }    else       if(Waiter < wait) // Attendez "X" fois         {          Waiter++; // mise à jour de l'attente          // Votre code ici.         }    if(Waiter == wait) // La limite d'attente est atteinte      {       Compteur = 0; // réinitialiser le compteur       Waiter = 0; // réinitialiser l'attente      }   } // Fin de OnTick  <<---------------------- //+------------------------------------------------------------------+ Spécial -: Vous pouvez coder le "Passez X fois et arrêtez" en modifiant le code ci-dessus en retirant le bloc de code d'attente. Cela comptera un nombre spécifique et s'arrêtera jusqu'à ce que le compteur soit réinitialisé. Vous pouvez le réinitialiser n'importe où dans votre code si vous créez ces variables à l'échelle globale. (variables globales)

2024.04.14
Détecter une Nouvelle Bougie dans MetaTrader 5 : Astuce Efficace
MetaTrader5
Détecter une Nouvelle Bougie dans MetaTrader 5 : Astuce Efficace

Dans le code précédent, j'utilisais le temps pour détecter une nouvelle bougie. Cette fois, nous allons utiliser le nombre de bougies pour le faire. C'est beaucoup plus léger et rapide que la méthode basée sur le temps. Déclarez les variables en type entier pour stocker le nombre de bougies. Assignez le nombre de bougies à la variable "BarsTotal_OnInt" lors de l'initialisation. Utilisez la fonction iBars(); pour assigner le nombre de bougies à la variable "BarsTotal_OnTick" dans le graphique en direct. Cette variable est mise à jour à chaque tick. Utilisez des commentaires et des alertes pour vérifier la précision du code. int BarsTotal_OnInt; int BarsTotal_OnTick; //+------------------------------------------------------------------+ //| Fonction d'initialisation de l'Expert                                   | //+------------------------------------------------------------------+ int OnInit()   {      BarsTotal_OnInt = iBars(NULL,PERIOD_CURRENT); // Assigne le total des bougies à l'initialisation    return(INIT_SUCCEEDED);   }    void OnTick() // Fonction OnTick   {      BarsTotal_OnTick = iBars(NULL,PERIOD_CURRENT); // Stocke le dernier montant       if(BarsTotal_OnTick > BarsTotal_OnInt) // Une nouvelle bougie est arrivée    {     BarsTotal_OnInt = BarsTotal_OnTick; // Met à jour l'historique.     Alert("Une nouvelle bougie est arrivée");     Comment("Nombre de bougies dans l'historique -: ", BarsTotal_OnInt, "\n", "Nombre de bougies en direct -: ", BarsTotal_OnTick); // Votre code va ici. -------------------------- // Vous pouvez mettre à jour un "flag" / variable pour l'utiliser plus tard aussi.    }   }

2024.04.11
Gérez Vos Trades avec un SL Virtuel et TP Pending sur MetaTrader 4
MetaTrader4
Gérez Vos Trades avec un SL Virtuel et TP Pending sur MetaTrader 4

Bienvenue à tous les traders ! Aujourd'hui, nous allons parler d'un outil très pratique : Virtual_SL_TP_Pending_with_SL_Trailing.mq4. Ce script est conçu pour gérer vos trades en définissant des niveaux de stop loss et de take profit virtuels, tout en vous offrant la possibilité d'installer un ordre en attente avec un trailing stop loss. Voici un aperçu des fonctionnalités de ce script : Droits d'auteur et lien : Informations de copyright et lien vers le site du créateur. Version : Indique la version du script. Description : Détails concernant le script, y compris l'adresse e-mail du créateur, les informations sur la propriété intellectuelle et un avertissement sur l'utilisation du logiciel à vos propres risques. Paramètres d'entrée : Variables externes permettant de personnaliser le comportement de l’EA, incluant : StopLossPoints : Stop loss initial en points. TakeProfitPoints : Take profit initial en points. SpreadThreshold : Seuil de spread pour le stop loss/take profit virtuel en points. TrailingStopPoints : Trailing stop en points pour l'ordre en attente virtuel. EnableTrailing : Option pour activer ou désactiver le trailing stop. Variables globales : Variables utilisées dans tout le script pour stocker le spread initial, le stop loss virtuel, le take profit virtuel et le prix de l'ordre en attente. Fonction d'initialisation (OnInit) : Initialise l’EA lorsqu’il est attaché à un graphique, calculant le stop loss virtuel initial, le take profit et le prix de l'ordre en attente en fonction des paramètres d'entrée. Fonction de tick (OnTick) : Appelée à chaque variation de prix. Elle vérifie si le spread a dépassé le seuil et ajuste le stop loss virtuel, le take profit et le prix de l'ordre en attente en conséquence. Cette fonction surveille également si le prix atteint le stop loss ou le take profit virtuel et clôture la position. De plus, si le trailing stop est activé et que le prix atteint le prix de l'ordre en attente, il place un ordre en attente virtuel avec un trailing stop loss. Fonction de fermeture de position (ClosePosition) : Ferme la position lorsque le prix atteint le stop loss ou le take profit virtuel. Fonction de placement d'ordre en attente (PlacePendingOrder) : Place un ordre en attente virtuel avec un trailing stop loss si le trailing stop est activé. Ce EA offre une manière flexible de gérer vos trades en utilisant des niveaux virtuels et une fonction de trailing stop, permettant ainsi aux traders d'automatiser leur processus de gestion des trades sur MetaTrader 4.

2024.04.10
Fermez vos positions facilement avec Close Basket Pairs v1 pour MetaTrader 4
MetaTrader4
Fermez vos positions facilement avec Close Basket Pairs v1 pour MetaTrader 4

Salut les traders ! Aujourd'hui, je vais vous parler d'un script MQL4 très pratique : Close Basket Pairs. Ce petit outil est conçu pour fermer vos positions sur un ensemble de paires de devises lorsque vous atteignez certains seuils de profit ou de perte. Voici ce qu'il faut savoir : Le script s'appelle CloseBasketPairs.mq4. Il est protégé par les droits d'auteur de MetaQuotes Software Corp. en 2024. Vous pouvez trouver plus d'infos sur le site de MetaQuotes. La version actuelle du script est 1.01. Ce script a été créé par persinaru@gmail.com. Il est distribué sous la licence IP 2024 - open source et gratuit. Son objectif principal ? Fermer les positions de votre panier lorsque les seuils de profit ou de perte fixés sont atteints. Attention, utilisez ce script à vos risques et périls, l'auteur ne pourra pas être tenu responsable des pertes éventuelles. Le script définit les paires de devises de votre panier et leurs types d'ordres respectifs, ainsi que les seuils de profit et de perte. Il parcourt toutes vos positions ouvertes et vérifie si elles appartiennent aux paires définies. Si une position dépasse le seuil de profit ou de perte, elle se ferme automatiquement. En plus, le script inclut des fonctions pour l'initialisation, la désinitialisation et la gestion des événements de tick. La fonction PrintStrategyInfo() est utile pour afficher des informations sur votre stratégie.

2024.04.10
Stratégie de Suivi de Tendance Continue pour MetaTrader 4 : Guide Pratique
MetaTrader4
Stratégie de Suivi de Tendance Continue pour MetaTrader 4 : Guide Pratique

Dans cet article, nous allons explorer une stratégie simple de suivi de tendance continue pour acheter et vendre sur MetaTrader 4 (MT4), basée sur des conditions prédéfinies. Voici un aperçu du script : Initialisation : Le script s'initialise et affiche un message lorsque l'initialisation est réussie. Désinitialisation : Lors de la désinitialisation, un message est affiché. Fonction OnTick : Cette fonction s'exécute chaque fois qu'il y a un nouveau tick (changement de prix) sur le marché. Réinitialisation des Variables de Suivi de Position : Le script réinitialise les variables qui suivent les positions d'achat et de vente ouvertes. Vérification des Ordres Ouverts : Il boucle à travers tous les ordres ouverts pour déterminer s'il existe des positions d'achat ou de vente. Ouverture de Position d'Achat : S'il n'y a pas de position d'achat ouverte et que le drapeau "OpenBuyPosition" est activé, il tente d'en ouvrir une en se basant sur le prix d'offre actuel. Un stop loss et un take profit sont définis pour cet ordre d'achat. Ouverture de Position de Vente : S'il n'y a pas de position de vente ouverte et que le drapeau "OpenSellPosition" est activé, il tente d'en ouvrir une en se basant sur le prix de demande actuel. Un stop loss et un take profit sont définis pour cet ordre de vente. Vérification des Ordres Clos : Il vérifie les ordres fermés. Si un ordre d'achat ou de vente est clôturé avec un bénéfice, il réinitialise le drapeau de position correspondant. Paramètres d'Entrée : Le script propose des paramètres d'entrée pour la taille des lots, le stop loss, le take profit et des drapeaux pour contrôler l'ouverture des positions d'achat ou de vente. Avis de Non-Responsabilité : Ce script comprend un avertissement conseillant aux utilisateurs de l'utiliser à leurs propres risques et de dégager le créateur de toute responsabilité en cas de dommages ou pertes potentielles. En résumé, ce script vise à automatiser le processus d'exécution des ordres d'achat et de vente en fonction d'une stratégie de suivi de tendance continue, permettant aux utilisateurs de personnaliser des paramètres tels que la taille des lots et la direction des trades. Cependant, il est crucial d'exercer de la prudence et de réaliser des tests approfondis avant de l'utiliser dans des environnements de trading en direct.

2024.04.10
Optimisez votre Trading avec un Stop Suivant sur MetaTrader 5
MetaTrader5
Optimisez votre Trading avec un Stop Suivant sur MetaTrader 5

Ce bloc de code fonctionne que vous utilisiez un Stop Loss ou non.PrérequisVous devez inclure "Trade.mqh" pour accéder à la classe CTrade qui vous permet de gérer les positions et les ordres.#include &lt;Trade\Trade.mqh&gt; // &lt;&lt;------------------------------------------ Incluez ce "Trade.mqh" pour accéder à la classe CTrade Vous devez définir un paramètre d'entrée pour ajuster la distance de suivi comme vous le souhaitez. Ce n'est pas nécessaire, mais c'est plus pratique.input double Traling_Step = 3.0;Vous devez créer une instance de la classe CTrade. Le nom peut être n'importe quel. Il est préférable de la définir après le gestionnaire d'événements OnInit.Ensuite, vous devez créer une instruction if pour vérifier s'il y a une position ouverte à ce moment. Cette instruction appelle la fonction Check_TrailingStop(); pour chaque tick. C'est important car l'EA doit suivre de manière précise et fluide. N'oubliez pas de placer cette instruction en haut du gestionnaire d'événements OnTick pour qu'elle fonctionne correctement.//+------------------------------------------------------------------+ //| Fonction d'initialisation de l'Expert | //+------------------------------------------------------------------+ int OnInit() { //--- créer un timer EventSetTimer(60); return(INIT_SUCCEEDED); } CTrade trade; // &lt;&lt;------------------------------------------ Déclarez la classe "CTrade". Vous pouvez remplacer "trade" par le nom de votre choix void OnTick() { if(PositionsTotal() > 0) { // appelle la fonction de stop suiveur pour chaque tick s'il y a des positions ouvertes Check_TralingStop(); } }Vous devez déclarer une fonction personnalisée appelée Check_TrailingStop(); (dans ce cas ) pour faire le reste. Vous pouvez utiliser n'importe quel nom que vous souhaitez.Cette fonction personnalisée parcourt toutes les positions ouvertes et les suit selon la distance requise.void Check_TralingStop() { int totalPositions = PositionsTotal(); for(int count = 0; count < totalPositions; count++) { ulong TicketNo = PositionGetTicket(count); // Obtenez le numéro de ticket de la position en utilisant l'index de la position. if(PositionSelectByTicket(TicketNo)) { // Sélectionnez une position en utilisant le numéro de ticket (nous avons déjà récupéré le numéro de ticket). if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) { // Vérifiez le type de position. double openPrice = PositionGetDouble(POSITION_PRICE_OPEN); double stopLoss = PositionGetDouble(POSITION_SL); // &lt;&lt;-------------------Obtenez le Stop Loss actuel de la position double takeProfit = PositionGetDouble(POSITION_TP); double bidPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID); ulong ticket = PositionGetTicket(count); double trailingLevel = NormalizeDouble(bidPrice - (Traling_Step * Point()), _Digits); if(stopLoss < openPrice) { // Pas de stop loss est vrai. if(bidPrice > openPrice && trailingLevel > openPrice) { // S'exécute une seule fois par position. Définit le premier SL. trade.PositionModify(ticket, trailingLevel, takeProfit); // Modifiez le Stop suiveur en utilisant "CTrade.trade" } } if(bidPrice > openPrice && trailingLevel > stopLoss) { // vérifiez que le niveau de suivi est au-dessus du niveau précédent. trade.PositionModify(ticket, trailingLevel, takeProfit); // Modifiez le Stop suiveur en utilisant "CTrade.trade" } } if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) { double openPrice = PositionGetDouble(POSITION_PRICE_OPEN); double stopLoss = PositionGetDouble(POSITION_SL); double takeProfit = PositionGetDouble(POSITION_TP); double bidPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID); double askPrice = SymbolInfoDouble(_Symbol, SYMBOL_ASK); ulong ticket = PositionGetTicket(count); double trailingLevel = NormalizeDouble(askPrice + (Traling_Step * Point()), _Digits); if(stopLoss < openPrice) { if(askPrice < openPrice && trailingLevel < openPrice) { // S'exécute une seule fois par position. Définit le premier SL. trade.PositionModify(ticket, trailingLevel, takeProfit); // Modifiez le Stop suiveur en utilisant "CTrade.trade" } } if(askPrice < openPrice && trailingLevel < stopLoss) { // vérifiez que le niveau de suivi est au-dessus du niveau précédent. trade.PositionModify(ticket, trailingLevel, takeProfit); // Modifiez le Stop suiveur en utilisant "CTrade.trade" } } } } }

2024.04.05
Détection d'une Nouvelle Bougie dans MetaTrader 5 : Code Simple
MetaTrader5
Détection d'une Nouvelle Bougie dans MetaTrader 5 : Code Simple

Salut les traders ! Aujourd'hui, je vais vous présenter un code simple pour découvrir lorsqu'une nouvelle bougie est reçue dans MetaTrader 5. Le principe de ce code est assez basique. D'abord, il stocke l'heure de la bougie précédente. Ensuite, il ajoute 60 secondes (ce qui correspond à 1 minute, mais vous pouvez ajuster le temps selon vos besoins) à l'heure de cette bougie pour obtenir la valeur de fermeture de la bougie actuelle. Une fois que : l'heure actuelle = valeur de fermeture de la bougie actuelle, cela signifie qu'une nouvelle bougie est reçue ou que la bougie actuelle est clôturée. Dans ce code, le drapeau (la variable booléenne NewBarReceived) empêche les appels multiples de ce bloc de code. Cela signifie que ce bloc s'exécute une seule fois par bougie. La fonction Comment(); et playsound("ok.wav"); sont utilisées pour vérifier l'exactitude du bloc de code. Vous pouvez les retirer si vous le souhaitez. Le drapeau est réinitialisé à faux une fois que l'heure actuelle dépasse la valeur de fermeture de la bougie actuelle, afin de vérifier l'arrivée de la prochaine bougie (regardez les commentaires pour plus de détails). //+------------------------------------------------------------------+ //|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Détection Nouvelle Bougie.mq5 | //|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;par H A T Lakmal | //|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; https://t.me/Lakmal846 | //+------------------------------------------------------------------+ bool NewBarReceived = false; // Drapeau de contrôle. //+------------------------------------------------------------------+ //| Fonction d'initialisation de l'expert&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | //+------------------------------------------------------------------+ int OnInit() &nbsp;&nbsp;{ //--- créer un timer &nbsp;&nbsp; EventSetTimer(60); //--- &nbsp;&nbsp; return(INIT_SUCCEEDED); &nbsp;&nbsp;} //+------------------------------------------------------------------+ //| Fonction de désinitialisation de l'expert&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | //+------------------------------------------------------------------+ void OnDeinit(const int reason) &nbsp;&nbsp;{ //--- détruire le timer &nbsp;&nbsp; EventKillTimer(); &nbsp;&nbsp;} //+------------------------------------------------------------------+ //| Fonction de tick de l'expert&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | //+------------------------------------------------------------------+ void OnTick() &nbsp;&nbsp;{ &nbsp;&nbsp; datetime TimePreviousBar = iTime(_Symbol,PERIOD_M1,1); &nbsp;&nbsp; datetime TimeCurrentClose = TimePreviousBar + 60; // Heure de fermeture de la bougie actuelle. &nbsp;&nbsp; datetime Time_Current = TimeCurrent(); &nbsp;&nbsp; if(Time_Current == TimeCurrentClose &amp;&amp; NewBarReceived == false) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PlaySound("ok.wav");&nbsp;&nbsp; // Pour vérifier le fonctionnement. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewBarReceived = true; // Mettre à jour le drapeau pour éviter les appels multiples. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Votre code ici ----- (Faites quelque chose) &nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp; else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(Time_Current &gt; TimeCurrentClose) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NewBarReceived = false; // Réinitialiser le drapeau pour l'ouverture de la prochaine bougie. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Votre code ici ----- (Faites quelque chose) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp; Comment(" " +&nbsp;&nbsp;" " +&nbsp;&nbsp;"Heure de la bougie actuelle -: " + TimeToString(TimePreviousBar,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " " + "Heure de fermeture actuelle -: " +TimeToString(TimeCurrentClose,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " " + "Heure actuelle -: " + TimeToString(Time_Current,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + " " +" " + "Nouvelle bougie reçue -: " + NewBarReceived); // Pour vérifier les calculs &nbsp;&nbsp;} //+------------------------------------------------------------------+ //| Fonction timer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | //+------------------------------------------------------------------+ void OnTimer() &nbsp;&nbsp;{ //--- &nbsp;&nbsp;} //+------------------------------------------------------------------+ //| Fonction de trading&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | //+------------------------------------------------------------------+ void OnTrade() &nbsp;&nbsp;{ //--- &nbsp;&nbsp;} //+------------------------------------------------------------------+ //| Fonction d'événement de graphique&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| //+------------------------------------------------------------------+ void OnChartEvent(const int id, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const long &amp;lparam, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const double &amp;dparam, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const string &amp;sparam) &nbsp;&nbsp;{ //--- &nbsp;&nbsp;} //+------------------------------------------------------------------+ &nbsp;

2024.04.05
Optimisation de l'EA : Fermez vos Trades en Profit ou en Perte sur MetaTrader 4
MetaTrader4
Optimisation de l'EA : Fermez vos Trades en Profit ou en Perte sur MetaTrader 4

//+------------------------------------------------------------------------------------------------------------------------------+ //|Optimisation de Fermer_en_Profit_ou_Perte_en_Monnaie_de_Compte_V2 : Quoi de Neuf : //| //|1. Gestion des Erreurs : Le code inclut une gestion des erreurs pour traiter les situations où les ordres ne peuvent pas être fermés ou supprimés. //|2. Optimisation du Code : Le code a été optimisé pour éviter la répétition et améliorer la lisibilité. //|3. Efficacité : Suppression des boucles ou calculs inutiles. //|4. Effacement de tous les objets de graphique lors de la désinitialisation de l’EA. //+------------------------------------------------------------------------------------------------------------------------------+ Si vous réglez l’EA à 0, il n’effectuera aucune action.&nbsp; &nbsp; Le seuil de fermeture positive en monnaie de compte doit être supérieur au montant actuel de l'équité, sinon, les trades seront exécutés immédiatement. Exemple : Si l'équité est de 55 000 € et que le seuil de fermeture positive est fixé à 55 500 € pour réaliser un gain de 500 €. Seuil de fermeture positive en monnaie de compte&nbsp; &gt; 0 &amp;&amp; &lt;&nbsp; 55 000 € = exécution immédiate Le seuil de fermeture négative en monnaie de compte doit être inférieur au montant actuel de l'équité, sinon, les trades seront exécutés immédiatement. Exemple : Si l'équité est de 55 000 € et que le seuil de fermeture négative est fixé à 54 500 € pour ne perdre que 500 €.&nbsp; Seuil de fermeture négative en monnaie de compte&nbsp; &gt; 55 000 € = exécution immédiate Les pics de spread peuvent être évités en réduisant le nombre de spreads, mais le marché fera ce qu'il veut et des gains ou pertes plus importants peuvent se produire.&nbsp; De plus, si le spread est réglé en dessous du spread moyen pour les paires échangées, ces positions ne seront pas exécutées.&nbsp; Avertissement : Utilisez ce logiciel à vos propres risques. Le marché des changes est très volatile !&nbsp; #property copyright&nbsp; &nbsp; &nbsp;"Copyright 2024, MetaQuotes Ltd." #property link&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "https://www.mql5.com" #property version&nbsp; &nbsp; &nbsp; &nbsp;"1.01" #property description&nbsp; &nbsp;"persinaru@gmail.com" #property description&nbsp; &nbsp;"IP 2024 - open source gratuit" #property description&nbsp; &nbsp;"Cet EA ferme tous les trades en fonction des profits et pertes calculés en monnaie de compte." #property description&nbsp; &nbsp;"" #property description&nbsp; &nbsp;"AVERTISSEMENT : Utilisez ce logiciel à vos propres risques." #property description&nbsp; &nbsp;"Le créateur de ce script ne peut être tenu responsable de tout dommage ou perte." #property description&nbsp; &nbsp;"" #property strict #property show_inputs extern string&nbsp; Fermer = "L'EA ferme tous les trades et ordres en attente lorsqu'un profit ou une perte est atteint. Les profits et pertes sont calculés en monnaie de compte.";&nbsp; extern int Seuil_Positif_en_Monnaie_de_Compte&nbsp; &nbsp; &nbsp;= 0;&nbsp; extern int Seuil_Négatif_en_Monnaie_de_Compte&nbsp; &nbsp; &nbsp;= 0;&nbsp; extern int Spread = 10;

2024.03.25
Découvrez les Réseaux de Neurones pour le Trading Algorithmique avec MQL5
MetaTrader5
Découvrez les Réseaux de Neurones pour le Trading Algorithmique avec MQL5

Un Guide Essentiel pour les Traders AlgorithmiquesLe livre « Réseaux de neurones pour le trading algorithmique avec MQL5 » est votre référence incontournable pour apprendre à intégrer l'apprentissage automatique et les réseaux de neurones dans vos stratégies de trading. Destiné aux traders algorithmiques, cet ouvrage vous guide pas à pas dans la création de stratégies de trading utilisant des techniques d'intelligence artificielle avancées.Contenu du LivreComposé de 7 chapitres, ce livre couvre tout ce qu'il faut savoir pour débuter avec les réseaux de neurones et les intégrer dans vos robots de trading en MQL5. Grâce à des explications simples et claires, vous découvrirez les bases de l'apprentissage automatique ainsi que différents types de réseaux de neurones, y compris les modèles convolutionnels et récurrents, sans oublier des solutions architecturales plus complexes et les mécanismes d'attention.Des Exemples Pratiques pour Faciliter l'IntégrationPour vous aider à intégrer ces solutions dans vos robots de trading en MQL5, le livre propose une multitude d'exemples pratiques. Il explore également diverses méthodes pour améliorer la convergence des modèles, telles que la Normalisation par Lots (Batch Normalization) et le Dropout.Formation et Intégration des Réseaux de NeuronesDe plus, l'auteur vous donne des conseils pratiques sur la formation des réseaux de neurones et leur intégration dans vos stratégies de trading. Vous apprendrez à créer des Conseillers Experts (Expert Advisors) pour tester la performance des modèles entraînés sur de nouvelles données, ce qui vous permettra d'évaluer leur potentiel sur les marchés financiers réels. Un Outil Incontournable pour Améliorer Vos Résultats Financiers« Réseaux de neurones pour le trading algorithmique avec MQL5 » n'est pas qu'un simple livre : c'est un guide pratique qui peut vous aider à intégrer des techniques de prise de décision avancées dans vos algorithmes de trading, avec l'objectif d'améliorer vos résultats financiers. Commencez dès aujourd'hui à explorer les capacités avancées de l'apprentissage automatique et propulsez votre trading vers de nouveaux sommets.

2024.02.29
EA de Trading Manuel : Achetez, Vendez, Fermez - Un Guide pour Débutants sur MetaTrader 4
MetaTrader4
EA de Trading Manuel : Achetez, Vendez, Fermez - Un Guide pour Débutants sur MetaTrader 4

Bienvenue à tous les traders ! Aujourd'hui, je vais vous parler de l'EA de trading manuel Buy Sell Close, idéal pour les débutants. Cet outil peut être utilisé en mode de backtesting visuel, mais également en trading en direct. Vous avez la possibilité de tester votre propre système de trading grâce à la fonctionnalité de backtesting. Avec Buy Sell Close, vous pouvez gérer manuellement l'EA, mettre en pause ou modifier la vitesse de révision du backtest pour faciliter vos exercices de trading manuel. Introduction : Bouton [Lots] : après la zone de saisie, vous pouvez ajuster le nombre de lots. Bouton [BUY] : en cliquant dessus, vous passerez un ordre d'achat supplémentaire correspondant à la taille de lot choisie. Bouton [SELL] : en cliquant, vous passerez un ordre de vente pour la taille de lot spécifiée. Bouton [SL Modifier TP] : ce bouton permet de modifier le Stop Loss et le Take Profit pour tous vos ordres en fonction du prix actuel. Bouton [Close All Buy] : ferme tous les ordres d'achat en cours. Bouton [Close All Sell] : ferme tous les ordres de vente ouverts. Bouton [Close All Orders] : ferme tous les ordres, qu'ils soient d'achat ou de vente. À droite de l'affichage, vous pouvez voir les ordres ouverts, les profits et d'autres informations utiles. Description des paramètres : MM : utilise automatiquement le ratio de risque pour calculer la taille de lot par défaut. Risk : pour un solde de 10 000, 0,2 mains correspond à un risque de 0,2. Lots : taille de lot fixe si MM est FALSE, vous utiliserez alors ce nombre de lots fixe. SL : Stop Loss, par défaut à 250 micro-points. TP : Take Profit, par défaut à 500 micro-points. Pour d'autres paramètres liés à l'interface utilisateur, n'hésitez pas à explorer ! Vous pouvez ainsi pratiquer votre propre système de trading. Merci à tous et bon trading !

2024.02.29
Comment Calculer le Drawdown sur MT4 : Guide Pratique pour les Traders
MetaTrader4
Comment Calculer le Drawdown sur MT4 : Guide Pratique pour les Traders

Salut les traders ! Aujourd'hui, parlons d'un aspect crucial de la gestion de votre compte de trading : le drawdown. Si vous utilisez MetaTrader 4, vous savez probablement que le drawdown peut avoir un impact significatif sur vos performances. Alors, comment le calculer efficacement ? Comprendre le Drawdown sur MT4 Le drawdown représente la baisse maximale de votre capital par rapport à un sommet précédent. Sur MT4, vous pouvez le calculer en tenant compte de votre numéro magique et du symbole de l'instrument. Cela vous permet de cibler spécifiquement un compte ou un instrument particulier. Configurer le Calcul du Drawdown Pour calculer le drawdown sans tenir compte du drawdown global de votre compte, il vous suffit de retirer le filtre du numéro magique et du symbole dans le code. Cela vous donnera une vision plus claire de la performance de votre stratégie de trading. Pourquoi le Drawdown est Important Gestion des Risques : Comprendre votre drawdown vous aide à mieux gérer vos risques.Évaluation de la Stratégie : Cela vous permet d'évaluer si votre stratégie est viable à long terme.Prise de Décisions : Un drawdown élevé peut vous pousser à reconsidérer vos positions et à ajuster votre approche. Voilà, c'est tout pour aujourd'hui ! J'espère que cette petite explication vous aidera à mieux gérer votre trading sur MT4. N'oubliez pas, la clé du succès réside dans une bonne gestion des risques et une stratégie bien rodée. À bientôt sur le marché !

2024.02.14
Premier Précédent 2 3 4 5 6 7 8 9 10 11 12 Suivant Dernier