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());
Comentarios 0