Como Ver a Última Negociação Fechada no MetaTrader 5

Mike 2024.04.22 03:51 56 0 0
Anexo

Se você é um trader que utiliza o MetaTrader 5, saber como obter os dados da última negociação fechada pode ser muito útil. Neste post, vou te mostrar um código simples que permite acessar essas informações sem precisar de loops.

Passos para Obter os Dados da Última Negociação

  • Você pode criar uma variável para definir o horário de início do dia, mas essa parte não é obrigatória.
  • É interessante criar algumas variáveis adicionais para facilitar a impressão dos resultados no gráfico e também para uso em outros blocos de código.
  • Utilizando esse código dentro da função OnTick();, você consegue visualizar o resultado a cada tick. Se preferir, pode configurá-lo para ser executado apenas uma vez por vela.

Código para Acessar a Última Negociação Fechada

// variáveisstring DayStart = "00:00"; // Horário de Início do Diadouble LastClosed_Profit; // Lucro da Última Negociação Fechadastring TradeSymbol, TradeType;

// Inicialização do Expert --------------------intOnInit()
  {
   return(INIT_SUCCEEDED);
  }

// Desinicialização do Expert -------------------voidOnDeinit(constint reason)
  {
  }

// Função OnTick --------------------------voidOnTick()
  {
// Verifica a última negociação fechada.
   CheckLastClosed();
  }
//+------------------------------------------------------------------+//+------------------------------------------------------------------+void CheckLastClosed()
  {
   datetime HistoryTime = StringToTime(DayStart);

// Históricos desde o início do dia até o tempo atual
   if(HistorySelect(HistoryTime,TimeCurrent))
     {
      int Total = HistoryDealsTotal();

      // Obtém o número do ticket da última negociação e seleciona para trabalho posterior.
      ulong Ticket = HistoryDealGetTicket(Total -1);

      // Obtenha as informações necessárias.
      LastClosed_Profit = NormalizeDouble(HistoryDealGetDouble(Ticket,DEAL_PROFIT),2);
      TradeSymbol      = HistoryOrderGetString(Ticket,ORDER_SYMBOL);

      // Identifica uma negociação de venda.
      if(HistoryDealGetInteger(Ticket,DEAL_TYPE) == DEAL_TYPE_BUY)
        {
         TradeType = "Venda";
        }

      // Identifica uma negociação de compra
      if(HistoryDealGetInteger(Ticket,DEAL_TYPE) == DEAL_TYPE_SELL)
        {
         TradeType = "Compra";
        }

      // Saída no gráfico.
      Comment("\n","Total de Negociações - :  ", Total,
              "\n","Último Ticket - :  ", Ticket,
              "\n", "Último Lucro -:  ", LastClosed_Profit,
              "\n", "Última Negociação foi -:  ", TradeType);

     }
  }
//+------------------------------------------------------------------+//+------------------------------------------------------------------+

Se você quiser obter o histórico completo de negociações (desde o início da conta), pode utilizar a função HistorySelect(); da seguinte maneira:

// Obter todo o históricoHistorySelect(0,TimeCurrent());
Lista
Comentário 0