MetaTrader5
Cómo Consultar la Última Operación Cerrada en MetaTrader 5
En este artículo, te mostraré cómo obtener los datos de la última operación cerrada sin necesidad de usar bucles. Así podrás tener acceso rápido a información clave sobre tus operaciones.Primero, puedes crear una variable para establecer la hora de inicio del día. (Esto no es estrictamente necesario).También puedes crear algunas variables adicionales para mostrar un resultado gráfico y utilizarlas en otros bloques de código. (Esto tampoco es necesario).Utilizar este código dentro de la función OnTick(); mostrará el resultado en cada tick. También puedes configurarlo para que se ejecute una vez por cada barra.// Variables
string DayStart = "00:00"; // Hora de inicio del día
double LastClosed_Profit; // Beneficio de la última operación cerrada
string TradeSymbol, TradeType;
// Inicialización del Asesor Experto --------------------
int OnInit()
{
return(INIT_SUCCEEDED);
}
// Desinicialización del Asesor Experto -------------------
void OnDeinit(const int reason)
{
}
// Función OnTick --------------------------
void OnTick()
{
// Verifica la última operación cerrada.
CheckLastClosed();
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void CheckLastClosed()
{
datetime HistoryTime = StringToTime(DayStart);
// Historial desde el inicio del día hasta el tiempo actual
if(HistorySelect(HistoryTime,TimeCurrent))
{
int Total = HistoryDealsTotal();
// Obtener el número de ticket de la última operación y seleccionarlo para trabajar con él.
ulong Ticket = HistoryDealGetTicket(Total -1);
// Obtener los datos necesarios.
LastClosed_Profit = NormalizeDouble(HistoryDealGetDouble(Ticket,DEAL_PROFIT),2);
TradeSymbol = HistoryOrderGetString(Ticket,ORDER_SYMBOL);
// Identificar si es una operación de venta.
if(HistoryDealGetInteger(Ticket,DEAL_TYPE) == DEAL_TYPE_BUY)
{
TradeType = "Operación de Venta";
}
// Identificar si es una operación de compra
if(HistoryDealGetInteger(Ticket,DEAL_TYPE) == DEAL_TYPE_SELL)
{
TradeType = "Operación de Compra";
}
// Salida gráfica.
Comment("\n","Total de Operaciones - : ", Total,
"\n","Último Ticket - : ", Ticket,
"\n", "Último Beneficio Cerrado -: ", LastClosed_Profit,
"\n", "Última Operación fue -: ", TradeType);
}
}//+------------------------------------------------------------------+
//+------------------------------------------------------------------+Además, puedes obtener el historial completo de operaciones (desde el inicio de la cuenta) utilizando la función HistorySelect(); de esta manera:// Obtener todo el historial
HistorySelect(0,TimeCurrent());
2024.04.22