EA - Cruzamento de Médias com Trailling Stop

Rodrigo Malacarne  
jrsuzano:

Olá jrsuzano,

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

TraderPrado  
Rodrigo Malacarne:

Olá jrsuzano,

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

495297  

Tambem gostaria muito de testar um desses. Bom fluxograma.

Cordeiro1000  

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);

}


Edinho Oliveira  
Estava tentando fazer algo parecedo... Vc conseguiu?
Rogerio Giannetti Torres  
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
Diego Noda Arantes  
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
Marcelo Pacheco  
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: