CrossMA : Un Système de Trading Efficace pour MetaTrader 5

Mike 2017.01.26 18:05 15 0 0
Pièce jointe

Auteur de l'idée : George F.Peskov, auteur du code MQL5 : barabashkakvn.

Le système de trading CrossMA repose sur l'intersection de deux moyennes mobiles (iMA). Le stop loss est automatiquement déterminé en fonction de la valeur de l'ATR. Une notification par e-mail est envoyée chaque fois qu'une position est ouverte ou fermée. Les paramètres peuvent être ajustés grâce au backtesting.

Récupération des valeurs d'indicateur :

//--- Récupérer la Moyenne Mobile
   mas=iMAGet(handle_iMA1,1);       // moyenne mobile longue 12
   maf=iMAGet(handle_iMA2,1);       // moyenne mobile courte 4
   mas_p=iMAGet(handle_iMA1,2);       // moyenne mobile longue 12
   maf_p=iMAGet(handle_iMA2,2);       // moyenne mobile courte 4
   Atr=iATRGet(0);

Conditions de vente :

//--- Condition pour vendre
   if(maf<mas && maf_p>=mas_p)
     {
      double lots=LotsOptimized();
      double stop_loss=NormalizeDouble(m_symbol.Ask()+Atr,Digits());
      res=m_trade.Sell(lots,Symbol(),m_symbol.Bid(),stop_loss,0);
      if(SndMl==true && res)
        {
         sHeaderLetter="Opération VENTE par "+Symbol()+"";
         sBodyLetter="Transaction VENTE par "+Symbol()+" à "+DoubleToString(m_symbol.Bid(),Digits())+
                     ", avec un stop/loss à "+DoubleToString(stop_loss,Digits())+"";
         sndMessage(sHeaderLetter,sBodyLetter);
        }
      return;
     }

Conditions d'achat :

//--- Condition pour acheter
   if(maf>mas && maf_p<=mas_p)
     {
      double lots=LotsOptimized();
      double stop_loss=NormalizeDouble(m_symbol.Bid()-Atr,Digits());
      res=m_trade.Buy(lots,Symbol(),m_symbol.Ask(),stop_loss,0);
      if(SndMl==true && res)
        {
         sHeaderLetter="Opération ACHAT à "+Symbol()+"";
         sBodyLetter="Transaction ACHAT à "+Symbol()+" pour "+DoubleToString(m_symbol.Ask(),Digits())+
                     ", avec un stop/loss à "+DoubleToString(stop_loss,Digits())+"";
         sndMessage(sHeaderLetter,sBodyLetter);
        }
      return;
     }


 

Liste
Commentaire 0