Trading Systématique

Optimisez votre Trading avec le Dual StopLoss sur MetaTrader 4
MetaTrader4
Optimisez votre Trading avec le Dual StopLoss sur MetaTrader 4

Lorsque l'on ouvre une nouvelle position, la première chose à considérer est souvent la gestion de son capital. Les traders utilisent régulièrement une certaine marge de perte pour contrôler leur risque et gérer leurs fonds.Beaucoup de traders pensent qu'en définissant un Stop Loss (ou même un Take Profit) pour une position et en saisissant ce prix dans la fenêtre de modification des positions, le serveur du courtier est obligé de clôturer leur position dès que le prix atteint cette limite. Pourtant, ce n'est pas tout à fait exact.Cela dépend en réalité du type de compte que vous avez chez votre courtier. Il est bon de savoir que pour les comptes ECN, lorsque vous indiquez un prix au courtier en tant que Stop Loss ou Take Profit, celui-ci clôture votre position au premier prix disponible après que le prix ait atteint cette limite. Si cela ne vous convient pas, prenez un moment pour examiner votre historique de trading plus attentivement.Vous constaterez que certaines de vos ordres sont clôturés à un prix différent de celui que vous aviez fixé, ce qui entraîne des pertes plus importantes ou même des gains inattendus. Cela est dû au phénomène de SLIPPAGE.De plus, certains traders estiment que la limite de perte ne devrait pas être indiquée de manière précise auprès du courtier. C'est de là qu'est né le HIDDEN Stop Loss, un robot conçu précisément dans ce but. Désormais, vous pouvez avoir à la fois un HIDDEN et un REGULAR Stop Loss ensemble.Vous pouvez facilement définir un REGULAR Stop Loss pour vos positions comme d'habitude. Peu importe que vous utilisiez des robots ou que vous tradiez manuellement.Il suffit d’exécuter ce robot sur un nouveau graphique séparé (quelconque) pour gérer toutes vos positions. La valeur d'entrée détermine la distance entre le HIDDEN et le REGULAR Stop Loss. Notez que cette valeur est définie en points, et non en pips.

2021.04.23
Optimisez Vos Trades avec le Scalper Assistant v1.0 pour MetaTrader 4
MetaTrader4
Optimisez Vos Trades avec le Scalper Assistant v1.0 pour MetaTrader 4

Le scalping : une stratégie prisée par les tradersLe scalping est sans conteste l'une des stratégies les plus populaires dans le monde du trading. La plupart des traders ont au moins essayé cette méthode une fois dans leur carrière. En effet, un scalpeur effectue souvent plus de 10 transactions par jour, ce qui peut rendre la gestion des Stop Loss et Take Profit pour chaque trade assez ennuyeuse.Si votre stratégie implique de trader plusieurs instruments financiers et d'atteindre rapidement le Break Even, gérer toutes ces commandes peut devenir fastidieux et propice à des erreurs. Par ailleurs, si vous tradez sur des unités de temps plus courtes et sur plusieurs paires de devises, un mouvement de prix rapide peut se produire juste au moment où vous vous éloignez de votre bureau pour une tasse de thé, et vous risquez de rater l'occasion d'atteindre le Break Even ! La possibilité qu'un retour rapide des prix transforme un trade gagnant en perte est toujours présente dans l'esprit d'un trader.Comment le Scalper Assistant facilite votre tradingAvec cet expert, vous pouvez facilement déterminer les montants de Stop Loss et Take Profit. Dès que vous ouvrez un trade, l'expert configure automatiquement les valeurs initiales. Si le prix évolue suffisamment dans la direction souhaitée, votre trade devient alors sans risque ou atteint le Break Even.Toutes les valeurs d'entrée sont exprimées en POINT (et non en PIP).extern double WhenToMoveToBE; Vous définissez combien de points le prix doit s'éloigner du point d'entrée pour que l'EA ajuste la commande au Break Even.extern double BEAmount; Vous pouvez définir la distance du Stop Loss par rapport au point d'entrée.

2021.04.23
Optimisez vos trades avec l'Averaging By Signal pour MetaTrader 4
MetaTrader4
Optimisez vos trades avec l'Averaging By Signal pour MetaTrader 4

Introduction à l'Averaging By Signal Salut à tous les traders ! Aujourd'hui, je vais vous parler d'un expert pour MetaTrader 4 qui pourrait vraiment vous intéresser : l'Averaging By Signal. Cet EA utilise le croisement des moyennes mobiles comme signal d'entrée. Il a été conçu dans un but pédagogique pour vous aider à maîtriser le code MQL4. Gestion des ordres Chaque ordre ouvert utilise un numéro magique différent en fonction de chaque paire de devises. C'est super pratique, car cela vous permet de suivre la gestion de vos ordres de façon efficace. Fonctionnalités clés de l'EA ManageOrders() : Cette fonction gère l'ouverture de nouveaux ordres. Elle permet de faire de l'averaging selon le signal, ou simplement de se baser sur la distance minimale entre les couches. setTPSLMarti() : Grâce à cette fonction, vous pouvez définir un Take Profit (TP) pour une position unique ou plusieurs ordres au même prix de TP. setTrailingStop() : Cette fonction est utilisée pour définir un trailing stop sur la position de l'ordre initial. C'est un excellent moyen de sécuriser vos gains tout en laissant la possibilité à votre trade de continuer à générer des profits. Rejoignez notre communauté Pour plus d'informations et pour partager vos expériences, n'hésitez pas à rejoindre notre groupe t.me/codeMQL. C'est un excellent endroit pour échanger des idées et progresser ensemble dans le trading.

2021.04.21
Planificateur Automatique : Optimisez votre trading sur MetaTrader 4
MetaTrader4
Planificateur Automatique : Optimisez votre trading sur MetaTrader 4

Bonjour à tous les traders ! Aujourd'hui, je vais vous parler d'un outil incontournable pour tous ceux qui utilisent MetaTrader 4 et 5 : le Planificateur Automatique, aussi connu sous le nom d'expert advisor. Cet outil proposé par EarnForex.com va transformer votre manière de trader. Le Planificateur Automatique vous permet de gérer les périodes durant lesquelles le trading automatique est activé ou désactivé sur votre plateforme MetaTrader. Cela signifie que vous avez le contrôle total sur vos opérations, même lorsque vous êtes loin de votre écran ! Vous pouvez définir des plages horaires spécifiques pour chaque jour de la semaine. Une fois ces périodes configurées, le Planificateur désactivera automatiquement le trading en dehors de ces plages. Pratique, non ? En plus, cet expert advisor peut également tenter de clôturer toutes les transactions en cours (positions ouvertes et ordres en attente) avant de mettre fin au trading automatique. Cela vous évite bien des tracas et vous permet de trader en toute sérénité. Pourquoi utiliser le Planificateur Automatique ? Contrôle total : Gérez les horaires de trading selon votre emploi du temps. Sérénité : Évitez les mauvaises surprises en dehors de vos heures de trading. Simplicité : Configuration facile et rapide directement sur MetaTrader. En résumé, le Planificateur Automatique est un atout majeur pour optimiser votre stratégie de trading. N'attendez plus pour l'essayer et améliorer votre expérience sur MetaTrader !

2021.04.01
Fermez vos Ordres par Objectif ou Limite de Perte - Un Outil Indispensable pour MetaTrader 4
MetaTrader4
Fermez vos Ordres par Objectif ou Limite de Perte - Un Outil Indispensable pour MetaTrader 4

Nous utilisons cet Expert Advisor (EA) comme un outil de trading efficace. Voici les 3 paramètres à définir : Objectif de Profit Limite de Perte Numéro Magique extern    double         inTargetProfitMoney     = 10;       //Objectif de Profit (€) extern    double         inCutLossMoney          = 0.0      //Limite de Perte (€) extern    int            inMagicNumber           = 0        //Numéro Magique Lorsque cet EA est exécuté, il appellera d'abord la fonction OnInit(). C'est ici que nous vérifions les paramètres et l'initialisation des variables. int OnInit()   { //---    if(inTargetProfitMoney <= 0)      {       Alert("Entrée invalide");       return(INIT_PARAMETERS_INCORRECT);      }    inCutLossMoney = MathAbs(inCutLossMoney) * -1; //---    return(INIT_SUCCEEDED);   } À chaque mouvement de prix (tick), la fonction OnTick() sera appelée. void OnTick()   { //---    double   tFloating = 0.0;    int tOrder  = OrdersTotal();    for(int i=tOrder-1; i>=0; i--)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == inMagicNumber)            {             tFloating   += OrderProfit()+OrderCommission() + OrderSwap();            }         }      }    if(tFloating >= inTargetProfitMoney || (tFloating <= inCutLossMoney && inCutLossMoney < 0))      {       fCloseAllOrders();      }   } Dans la fonction OnTick(), nous continuons à calculer le profit ou la perte totale. Ensuite, nous fermerons tous les ordres qui atteignent l'objectif ou la limite de perte maximale. void fCloseAllOrders()   {    double   priceClose = 0.0;    int tOrders = OrdersTotal();    for(int i=tOrders-1; i>=0; i--)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == inMagicNumber && (OrderType() == OP_BUY || OrderType() == OP_SELL))            {             priceClose = (OrderType()==OP_BUY)?MarketInfo(OrderSymbol(), MODE_BID):MarketInfo(OrderSymbol(), MODE_ASK);             if(!OrderClose(OrderTicket(), OrderLots(), priceClose, slippage, clrGold))               {               Print("AVERTISSEMENT : Échec de la fermeture");               }            }         }      }   } Pour plus d'informations détaillées et de partage de code mql4, rejoignez notre groupe Telegram t.me/codeMQL

2021.03.31
Optimisez vos trades avec le Trailing Stop sur MetaTrader 4
MetaTrader4
Optimisez vos trades avec le Trailing Stop sur MetaTrader 4

Le trailing stop est un outil essentiel pour sécuriser nos trades. Il permet de déplacer le stop loss dans la zone de profit, garantissant ainsi que nous protégeons nos gains de manière automatique. Commençons par coder les paramètres d'entrée pour notre trailing stop. input    bool     isTrailingStop = true;  // Trailing Stop input    int      trailingStart  = 15;    // Début du Trailing (pips) input    int      trailingStep   = 5     // Pas du Trailing (pips) input    int      MagicNumber = 0;        // Numéro Magique Variable globale // Variable Globale double   myPoint    = 0.0; Lorsque nous exécutons cet Expert Advisor, la fonction OnInit() sera exécutée pour la première fois. Dans cette fonction, nous allons valider et initialiser les variables d'entrée. int OnInit()   {       if (isTrailingStop && trailingStart <= 0){       Alert ("Paramètres incorrects");       return(INIT_PARAMETERS_INCORRECT);    }       myPoint     = GetPipPoint(Symbol());       return(INIT_SUCCEEDED);   } Chaque fois qu'un mouvement de prix (tick) se produit sur le graphique où cet EA est associé, la fonction OnTick() sera exécutée. À l'intérieur de cette fonction, nous allons appeler la fonction setTrailingStop(). void OnTick()   { //---    setTrailingStop(MagicNumber);      } Fonction setTrailingStop() void setTrailingStop(int magicNumber=0){    if (isTrailingStop==false) return;       int      tOrder = 0;    string   pair = "";    double   sl = 0.0, tp = 0.0;       pair = Symbol();       tOrder = OrdersTotal();    for (int i=tOrder-1; i>=0; i--){       bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);       if (OrderMagicNumber() == magicNumber && StringFind(OrderSymbol(), pair, 0) == 0 ){          if (OrderType() == OP_BUY){             if ( (Bid - (trailingStart * myPoint)) >= OrderOpenPrice()                   && (Bid - ((trailingStart+trailingStep) * myPoint) >= OrderStopLoss() )                 ){                sl = NormalizeDouble(Bid - (trailingStart * myPoint), Digits());                if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){                   Print ("#", OrderTicket(), " échec de la mise à jour du sl");                }             }          }                   if (OrderType() == OP_SELL){             if ( (Ask + (trailingStart * myPoint)) <= OrderOpenPrice()                   && ( (Ask + ((trailingStart+trailingStep) * myPoint) <= OrderStopLoss() ) || OrderStopLoss() == 0.0)                )             {                sl = NormalizeDouble(Ask + (trailingStart * myPoint), Digits() );                if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){                   Print ("#", OrderTicket(), " échec de la mise à jour du sl");                }             }       } // fin if magicNumber    }// fin for } Une autre fonction standard requise est GetPipPoint() // Fonction GetPipPoint double GetPipPoint(string pair) {    double point= 0.0;    int digits = (int) MarketInfo(pair, MODE_DIGITS);    if(digits == 2 || digits== 3) point= 0.01;    else if(digits== 4 || digits== 5) point= 0.0001;    return(point); } Si vous avez des questions, n'hésitez pas à les poser dans les commentaires ou à rejoindre notre groupe de partage (t.me/codeMQL). N'oubliez pas de jeter un œil à notre application SignalForex pour vous aider à trader de manière plus rentable. Vous pouvez nous soutenir en téléchargeant l'application SignalForex sur Google Play.

2021.03.30
Développez un Expert Advisor MA Crossing pour MetaTrader 4
MetaTrader4
Développez un Expert Advisor MA Crossing pour MetaTrader 4

Dans cet article, nous allons plonger dans la création d'un Expert Advisor (EA) basé sur le croisement de moyennes mobiles pour MetaTrader 4. C'est un projet passionnant qui peut vraiment améliorer votre expérience de trading si vous le mettez en œuvre correctement ! Définir les paramètres d'entrée Commencez par définir les variables d'entrée qui guideront notre EA. Voici un exemple de code : //--- paramètres d'entrée input    int      period_ma_fast = 8;  // Période de la MA rapide input    int      period_ma_slow = 20;  // Période de la MA lente input    double   takeProfit  = 20.0;  // Take Profit (pips) input    double   stopLoss    = 20.0;  // Stop Loss (pips) input    double   lotSize     = 0.10;  // Taille de lot input    double   minEquity   = 100.0;  // Équité minimale ($) input    int Slippage = 3;       // Slippage input    int MagicNumber = 889;  // Numéro magique Variables globales Ensuite, définissons les variables globales. Ces variables seront accessibles à toutes nos fonctions : // Variables globales double   myPoint    = 0.0; int      mySlippage = 0; int      BuyTicket   = 0; int      SellTicket  = 0; Initialisation de l'EA Lorsque l'EA est exécuté, la première fonction qui se lance est OnInit(). Cette fonction est parfaite pour valider et initialiser nos variables globales : int OnInit() {    // Validation des entrées    if (period_ma_fast >= period_ma_slow || takeProfit < 0.0 || stopLoss < 0.0 || lotSize < 0.01 || minEquity < 10) {       Alert("AVERTISSEMENT - Les données d'entrée ne sont pas valides");       return (INIT_PARAMETERS_INCORRECT);    }       myPoint = GetPipPoint(Symbol());    mySlippage = GetSlippage(Symbol(),Slippage);    return(INIT_SUCCEEDED); } Gestion des ticks À chaque mouvement du marché (tick), la fonction OnTick() est appelée et exécute les instructions contenues dans son bloc : void OnTick() {    if (cekMinEquity()) {       int signal = -1;       bool isNewCandle = NewCandle(Period(), Symbol());              signal = getSignal(isNewCandle);       transaction(isNewCandle, signal);       setTPSL();    } else {       // Arrêter le trading si l'équité est insuffisante       Print("L'EA sera arrêté car l'équité est insuffisante");    } } Fonction pour définir TPSL void setTPSL() {    int   tOrder = 0;    string   strMN = "", pair = "";    double sl = 0.0, tp = 0.0;    pair = Symbol();    tOrder = OrdersTotal();    for (int i=tOrder-1; i>=0; i--) {       bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);       strMN = IntegerToString(OrderMagicNumber());       if (StringFind(strMN, IntegerToString(MagicNumber), 0) == 0 && StringFind(OrderSymbol(), pair, 0) == 0) {          if (OrderType() == OP_BUY && (OrderTakeProfit() == 0 || OrderStopLoss() == 0)) {            if (takeProfit > 0) {                tp = OrderOpenPrice() + (takeProfit * myPoint);             } else {                tp = OrderOpenPrice();             }             if (stopLoss > 0) {                sl = OrderOpenPrice() - (stopLoss * myPoint);             } else {                sl = OrderStopLoss();             }             if (OrderTakeProfit() != tp || OrderStopLoss() != sl) {                if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clrBlue)) {                   Print ("Modification de l'ordre réussie");                }             }      }      if (OrderType() == OP_SELL && (OrderTakeProfit() == 0 || OrderStopLoss() == 0)) {             if (takeProfit > 0) {                tp = OrderOpenPrice() - (takeProfit * myPoint);             } else {                tp = OrderOpenPrice();             }             if (stopLoss > 0) {                sl = OrderOpenPrice() + (stopLoss * myPoint);             } else {                sl = OrderStopLoss();             }             if (OrderTakeProfit() != tp || OrderStopLoss() != sl) {                if (OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clrRed)) {                   Print ("Modification de l'ordre réussie");                }             }      }      }    }// Fin de la boucle } Rejoignez notre communauté ! Pour des échanges enrichissants et des conseils sur le trading, n'hésitez pas à rejoindre notre groupe Telegram : t.me/codeMQL Application de trading recommandée Si vous cherchez une application pour soutenir votre trading, téléchargez notre application SignalForex sur le Play Store : SignalForex sur Play Store

2021.03.30
EA Auto-Adaptable : Système d'Apprentissage Profond pour MetaTrader 4
MetaTrader4
EA Auto-Adaptable : Système d'Apprentissage Profond pour MetaTrader 4

Salut à tous les traders ! Aujourd'hui, je voulais vous parler d'un projet passionnant sur lequel je travaille : un Expert Advisor (EA) auto-adaptable que j'ai développé pour MetaTrader 4. Tout a commencé lorsque j'ai conçu un EA capable de trader des modèles statiques, que j'ai nommé « The Unreal Engine ». Si vous êtes curieux, vous pouvez le découvrir ici : The Unreal Engine. Mais revenons à notre sujet principal. J'ai rencontré des limitations lors des tests de cet EA d'apprentissage profond, principalement à cause de mon matériel. Avec un PC à double cœur et seulement 4 Go de RAM, il est difficile de réaliser des tests approfondis. Pour évaluer cet EA sur plusieurs années, il vous faudra un superordinateur, sinon cela prendra un temps fou. Le nom de marque de mon Expert Advisor est « The Enchantress ». Cet EA est conçu pour collecter chaque modèle qui se présente sur le marché, ouvrant des ordres virtuels avec un stop loss et un take profit. Il détecte les meilleurs modèles du marché pour ouvrir des trades réels. Mais attention, cet EA d'apprentissage profond nécessite au moins 3 à 5 mois d'exécution avant de commencer à ouvrir des trades réels. Je vous conseille vivement de l'essayer sur le testeur de stratégie avant de l'utiliser sur un compte réel. Si vous testez cet EA, n'hésitez pas à partager vos résultats ici : Partagez vos résultats. Vous pouvez également suivre mes mises à jour sur ce canal. Pour de meilleurs résultats, je recommande de tester sur des paires à 5 chiffres avec un timeframe minimal de H1. Bonne chance et bon testing à tous !

2021.03.13
Modèle d'EA MT4 : Les fonctionnalités essentielles pour MetaTrader 4
MetaTrader4
Modèle d'EA MT4 : Les fonctionnalités essentielles pour MetaTrader 4

Dans cet article, nous allons explorer un modèle d'Expert Advisor (EA) pour MetaTrader 4 qui intègre toutes les fonctionnalités de base nécessaires pour optimiser votre trading. Conditions d'achat et de vente Les conditions d'achat et de vente sont définies comme des paramètres de type 'bool' dans la fonction Direction. Prenons un exemple par défaut pour illustrer cela :    int signalConditions=3;    DashKeys[openCloseConditionIdx+1-1]="Statut BB";    DashValues[openCloseConditionIdx+1-1]=Direction(ok(bbGreen) && bbGreen!=-1,ok(bbRed) && bbRed!=-1,canBuy,canSell, " à "+TimeToStr(Time[masterCandleIdx]), " à "+Time[masterCandleIdx]); Les variables canBuy et canSell seront définies comme vraies ou fausses en fonction de ces conditions. Cela va déclencher le signal pour transmettre les signaux nécessaires à votre stratégie de trading. Personnalisation de l'interface Si vous avez besoin de plus de lignes sur votre tableau de bord, assurez-vous d'augmenter la taille de ces deux tableaux : string DashKeys[8]; string DashValues[8]; En ajustant ces paramètres, vous serez en mesure de personnaliser votre interface selon vos besoins de trading. Conclusion: Ce modèle d'EA est un excellent point de départ pour ceux qui cherchent à automatiser leur trading sur MT4. N'hésitez pas à adapter et à enrichir ce code selon votre stratégie personnelle !

2021.01.28
Créer un Expert Advisor Simple avec l'Indicateur DeMarker sur MetaTrader 4
MetaTrader4
Créer un Expert Advisor Simple avec l'Indicateur DeMarker sur MetaTrader 4

Salut les traders ! Aujourd'hui, je vais vous parler de la création d'un Expert Advisor (EA) simple utilisant l'indicateur DeMarker. J'ai toujours pensé que l'utilisation d'un EA pouvait simplifier ma stratégie de trading, et je suis ravi de partager avec vous mon expérience avec cet outil. Après avoir lu cet article, n'hésitez pas à me donner votre avis ! Cet EA fonctionne sur une seule paire de devises. Les paramètres tels que le délai, les lots, le stop loss et le take profit peuvent être facilement modifiés dans le menu des propriétés. extern ENUM_TIMEFRAMES TF  = PERIOD_CURRENT;// Sélectionner le délai extern int period          = 8;// Période DeMarker extern double lt           = 0.01;// Lots extern int sl              = 100;// Stop Loss extern int tp              = 100;// Take Profit extern double OB           = 0.7;// Surachat extern double OS           = 0.3;// Survente extern bool OPENBAR        = false;// Trading au prix d'ouverture du nouveau chandelier Voici le secret : je divise le code en trois parties principales :1. Données | Délai2. Ordre3. Paire //+------------------------------------------------------------------+ //-- Délai | Indicateur double dmrk[5]; int signal  =-1;//-- 0. achat 1. vente int hold = 0; //-- Ordre int ticket  =0; double lot  =0.0; int typ     =-1; //-- Paire datetime t1=0; bool newbar=false; bool entry =false; //+------------------------------------------------------------------+ Dans la fonction OnInit(), j'initialise un tableau d'indicateurs DeMarker et vérifie également la taille minimale des lots pour répondre aux exigences spécifiques de certains courtiers. //+------------------------------------------------------------------+ //|                                                                   | //+------------------------------------------------------------------+ void OnInit()   {    ArrayInitialize(dmrk,0.0);   //---       const double test_lot   = SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);       if(lt<test_lot)   lt    = test_lot;   } Dans la fonction OnTick(), je calcule l'indicateur et détermine les signaux d'achat et de vente. //---------------------------------------------------------------------------    signal = -1; //--------------------------------------------------------------------------- //---calc    for(int i=0; i<ArraySize(dmrk); i++)      {       dmrk[i]  =  iDeMarker(Symbol(),TF,period,i);      } //---    if(dmrk[1] > OB)      {       hold = 1;//set      }    else       if(dmrk[1] < OS)         {          hold = -1;//set         }       else         {          hold = 0;//reset         }    if(hold ==  1)      {       if(dmrk[0]<OB && dmrk[1]>OB)         {          signal = OP_SELL;         }      }    if(hold == -1)      {       if(dmrk[0]>OS && dmrk[1]<OS)         {          signal = OP_BUY;         }      } Pour ouvrir un signal d'achat ou de vente... //---------------------------------------------------------------------------    if(signal != -1)       if(newbar==true)          if(entry==false)//porte ouverte            {             //---             entry =true;//set             //---             if(signal == OP_BUY)               {                ticket = OrderSend(Symbol(),OP_BUY,lt,Ask,(int)((Ask-Bid)/Point),                                   sl>0?Bid-sl*Point:0.0,                                   tp>0?Bid+tp*Point:0.0,                                   EAName+":signal= "+IntegerToString(signal)+":hold= "+IntegerToString(hold),                                   EANumber,                                   0,                                   clrBlue);                signal=-1;                //hold =0;               }//reset               }//reset signal            } Et pour la fermeture des ordres...    if(entry == true) // fermeture      {       if(OrderSelect(ticket,SELECT_BY_TICKET))         {          if(OrderCloseTime() == 0)//-- ordre actif            {             /*  todo condition de fermeture  */             //entry = false;            }          //else             if(OrderCloseTime() != 0)//--  fermeture par 1. manuel 2. sl/tp 3. ea               {                entry = false;//reset entry               }         }      }   

2020.12.17
Créer un Expert Advisor pour MetaTrader 4 : Exemple de fichier CSV
MetaTrader4
Créer un Expert Advisor pour MetaTrader 4 : Exemple de fichier CSV

Salut à tous ! Je suis Lucas, et je voulais partager quelque chose avec cette merveilleuse communauté qui m'a tant appris grâce à ses articles informatifs et bien plus encore. En tant qu'investisseur en forex et en bourse, je code des experts pour mon propre trading. Voici donc ma contribution, en espérant que certains d'entre vous y trouveront leur compte ! Cet exemple illustre comment vous pouvez écrire des données d'ordres dans un fichier CSV, que vous pourrez ensuite étudier et utiliser pour vos analyses. Cet expert ne doit pas être utilisé pour trader tel quel. C'est une démonstration de la façon dont vous pourriez implémenter et utiliser cette fonction dans votre propre expert, ou bien continuer à développer et modifier cet expert comme bon vous semble, selon votre propre stratégie. Ce robot ouvrira des trades dans la direction sélectionnée. Les ordres seront fermés virtuellement grâce aux paramètres d'entrée TP/SL (Take Profit/Stop Loss). Si vous activez 'WriteCloseData' en mettant la valeur à true, un fichier sera créé où les données d'ordres telles que la direction, le gain/perte, le prix, etc., seront stockées sous format CSV dans votre terminal. En testant cet expert dans le testeur de stratégie, vous pourrez accéder à ce fichier via OpenDataFolder/tester/CSVexpert/CSVexample. Le répertoire CSVexpert sera créé lors du démarrage des tests, et le fichier contenant toutes les données CSVexample sera généré à l'intérieur. Lorsque vous intégrerez cette fonction à votre propre expert ou continuerez à développer ce dernier pour l'utiliser sur des comptes démo ou réels, vous pourrez accéder à ce fichier créé via MQL4/Files/CSVexpert/CSVexample. Vous pouvez renommer le répertoire et le fichier comme bon vous semble, à l'exception de l'extension .csv, que vous devez laisser telle quelle. Encore une fois, sachez que ceci n'est qu'un exemple d'expert pour vous montrer ce que vous pouvez faire avec cette fonction. Je ne voudrais pas que vous perdiez des fonds en pensant que cela peut être utilisé pour trader dès à présent !

2020.11.14
Premier Précédent 10 11 12 13 14 15 16 17 18 19 20 Suivant Dernier