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élai
2. Ordre
3. 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 } } }


Articles connexes
- Utiliser MQL5 Wizard pour Créer un Expert Advisor Basé sur les Modèles de Chandeliers Englobants et MFI
- Développez un Expert Advisor avec MQL5 : Signaux de Trading 3 Corbeaux Noirs / 3 Soldats Blancs + RSI
- Découvrez le Système de Trading Exp_XPeriodCandle_X2 pour MetaTrader 5
- MQL5 Wizard : Créez un Expert Advisor avec des Signaux de Trading Basés sur les Étoiles du Matin et du Soir + Stochastique
- Découvrez l'Expert Advisor exp_iCustom_v5 pour MetaTrader 4