EA - Cruzamento de Médias com Trailling Stop

 

Bom dia pessoal, gostaria muito de construir um EA de Cruzamento de Médias com Trailling Stop, alguém poderia me ajudar, por favor,


Vou postar o fluxograma dele aqui.

 
 
jrsuzano:

Olá jrsuzano,

Você já tem algo pronto, alguma tentativa prévia de desenvolvimento dessa estratégia?

 
Rodrigo Malacarne:

Olá jrsuzano,

Você já tem algo pronto, alguma tentativa prévia de desenvolvimento dessa estratégia?

 

Tambem gostaria muito de testar um desses. Bom fluxograma.

 

Poderia me ajudar?


gostaria de abrir uma ordem de compra no cruzamento das médias 6/21 e fechar no movimento inverso, porém somente se houver lucro.



int start()

{

  double MyPoint=Point;

  if(Digits==3 || Digits==5) MyPoint=Point*10;

  

  double TheStopLoss=0;

  double TheTakeProfit=0;

  if( TotalOrdersCount()==0 ) 

  {

     int result=0;

     if((iMA(NULL,0,6,1,MODE_SMA,PRICE_CLOSE,1)>iMA(NULL,0,21,1,MODE_SMA,PRICE_CLOSE,1))) // Here is your open buy rule

     {

        result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Blue);

        if(result>0)

        {

         TheStopLoss=0;

         TheTakeProfit=0;

         if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;

         if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;

         OrderSelect(result,SELECT_BY_TICKET);

         OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);

        }

        return(0);

     }

  }

  

  for(int cnt=0;cnt<OrdersTotal();cnt++)

     {

      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

      if(OrderType()<=OP_SELL &&   

         OrderSymbol()==Symbol() &&

         OrderMagicNumber()==MagicNumber 

         )  

        {

         if(OrderType()==OP_BUY)  

           {

              if((iMA(NULL,0,6,1,MODE_SMA,PRICE_CLOSE,1)<iMA(NULL,0,21,1,MODE_SMA,PRICE_CLOSE,1))) //here is your close buy rule

              {

                   OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);

              }

            if(TrailingStop>0)  

              {                 

               if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)

                 {

                  if(OrderStopLoss()<Bid-MyPoint*TrailingStop)

                    {

                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);

                     return(0);

                    }

                 }

              }

           }

         else 

           {

            if(TrailingStop>0)  

              {                 

               if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))

                 {

                  if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))

                    {

                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);

                     return(0);

                    }

                 }

              }

           }

        }

     }

   return(0);

}


int TotalOrdersCount()

{

  int result=0;

  for(int i=0;i<OrdersTotal();i++)

  {

     OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);

     if (OrderMagicNumber()==MagicNumber) result++;


   }

  return (result);

}


 
Estava tentando fazer algo parecedo... Vc conseguiu?
 
Edinho Oliveira:
Estava tentando fazer algo parecedo... Vc conseguiu?

Olá,

se ainda não usa, está na hora de aprender a usar o MQL5 WIZARD,  este é o sinal para cruzamento de médias, coloque na pasta \MQL5\Include\Expert\Signal\MySignals abra o editor texto e gere seu robô de cruzamento de médias.

A pasta MySignals é uma sugestão ela não existe na configuração padrão do MQL5.

Arquivos anexados:
SignalRGT1.mqh  18 kb
 
Contrate um peofissional em freelance, é mais barato do que vc imagina e mais fácil do que vc quebrar cabeça.  Além de vc poder cobrar os parametros que vc deseja
 
Rogerio Giannetti Torres: Olá amigo. Podes me ajudar a fazer isso? obrigado.

Olá,

se ainda não usa, está na hora de aprender a usar o MQL5 WIZARD,  este é o sinal para cruzamento de médias, coloque na pasta \MQL5\Include\Expert\Signal\MySignals abra o editor texto e gere seu robô de cruzamento de médias.

A pasta MySignals é uma sugestão ela não existe na configuração padrão do MQL5.

Razão: