MetaTrader5
Como Ver a Última Negociação Fechada no MetaTrader 5
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áveis
string DayStart = "00:00"; // Horário de Início do Dia
double LastClosed_Profit; // Lucro da Última Negociação Fechada
string TradeSymbol, TradeType;
// Inicialização do Expert --------------------
int OnInit()
{
return(INIT_SUCCEEDED);
}
// Desinicialização do Expert -------------------
void OnDeinit(const int reason)
{
}
// Função OnTick --------------------------
void OnTick()
{
// 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órico
HistorySelect(0,TimeCurrent());
2024.04.22