AJUDA para converter um simples EA para mt5

 

Boa noite


Usava esse mini EA no mt4 pra me ajudar a igualar meu hedge quando o mercada estava parado. Agora estou usando o mt5 e não consigo usar.


Alguém poderia me ajudar a converter para o mt5?


A ideia é simples, comprar logo que fecha um candle negativo. Segue abaixo:


//+------------------------------------------------------------------+
//|                                                      COMPRAS.mq4 |
//+------------------------------------------------------------------+

input double Lots           = 0.01;
input int    TakeProfit     = 25;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

bool NewBar()
  {
   static datetime lastbar;
   datetime curbar = Time[0];
   
   if(lastbar!=curbar)
      {
      lastbar=curbar;
      return(true);
      }
      
      else
      {
      return(false);
      }      
   }

void OnTick(void)
  {

   int    ticket;   

      if(NewBar()&&Close[1]<Open[1])
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"COMPRAS",0,0,Blue);
         return;
        }             
        
      return;     
  }
//+------------------------------------------------------------------+
 
Wagner Jr:

Boa noite


//+------------------------------------------------------------------+
//|                                                      COMPRAS.mq5 |
//+------------------------------------------------------------------+
#include <Trade\SymbolInfo.mqh>         CSymbolInfo       cSymbol;
#include <Trade\Trade.mqh>              CTrade            cTrade;
#include <Trade\DealInfo.mqh>           CDealInfo         cDeal;
#include <Trade\PositionInfo.mqh>       CPositionInfo     cPosition;

input double   Lots           = 0,01input int      TakeProfit     = 25;   

ulong          ticketPosition;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit(void)
  {
   cSymbol.Name(_Symbol);
   cSymbol.Refresh();
   cTrade.SetDeviationInPoints(0);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool NewBar()
  {
   static datetime lastbar;
   datetime curbar = iTime(_Symbol, 0, 0);
   if(lastbar != curbar)
     {
      lastbar = curbar;
      return(true);
     }
   else
     {
      return(false);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick(void)
  {
   if(!cSymbol.RefreshRates())
      return;
   if(NewBar() && iClose(_Symbol, 0, 1) < iOpen(_Symbol, 0, 1))
     {
         if(cTrade.Buy(Lots, _Symbol, 0.00, 0.00, (cSymbol.Ask() +  TakeProfit * _Point), "Compras"))
           {
            ticketPosition = cPosition.Select(_Symbol) ? cPosition.Identifier() : 0;
           }

     }
  }
//+------------------------------------------------------------------+
 
Rogerio Giannetti Torres:

Muito obrigado Rogério, deu tudo certo aqui.


Eu sempre usei separado o das compras e das vendas, será que tem como juntar os dois?


Obrigado mais uma vez

//+------------------------------------------------------------------+
//|                                                       VENDAS.mq4 |
//+------------------------------------------------------------------+

input double Lots           = 0.01;
input int    TakeProfit     = 25;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

bool NewBar()
  {
   static datetime lastbar;
   datetime curbar = Time[0];
   
   if(lastbar!=curbar)
      {
      lastbar=curbar;
      return(true);
      }
      
      else
      {
      return(false);
      }      
   }

void OnTick(void)
  {

   int    ticket;   

      if(NewBar()&&Close[1]>Open[1])
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"VENDAS",0,0,Red);
         return;
        }            
        
      return;     
  }
//+------------------------------------------------------------------+
 
Wagner Jr:


Wagner ,

basta um pouquinho de força de vontade e dois neurônios para você mesmo fazer.

Razão: