Check Last Closed Trade (Profit / Type / Symbol etc.)

Experts MetaTrader 5 Free

With this code block, you can get the last closed trade data without using loops. 

  • Create a variable to set the current day start time. (This is not necessary to do.)
  • Create some other variables to print a chart output and use if in other code blocks as well. (This is not necessary to do.)
  • Using this code inside of the OnTick(); function leads to show result for every tick. You can set it also for once a bar. 
// variables

string DayStart = "00:00"; // Day Start Time

double LastClosed_Profit; // Last Closed trade profit

string TradeSymbol, TradeType;







// Expert Initializing --------------------

int OnInit()

  {

   return(INIT_SUCCEEDED);

  }



// Expert DeInitializing -------------------

void OnDeinit(const int reason)

  {



  }



// Expert OnTick --------------------------

void OnTick()

  {

// check for last closed trade.

   CheckLastClosed();



  }

//+------------------------------------------------------------------+



//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

void CheckLastClosed()

  {

   datetime HistoryTime = StringToTime(DayStart);



// history from "Day begining to current time

   if(HistorySelect(HistoryTime,TimeCurrent()))

     {

      int Total = HistoryDealsTotal();



      // Get the last deal ticket number and select it to furthur work.

      ulong Ticket = HistoryDealGetTicket(Total -1);



      // Get what you need to get.

      LastClosed_Profit = NormalizeDouble(HistoryDealGetDouble(Ticket,DEAL_PROFIT),2);

      TradeSymbol      = HistoryOrderGetString(Ticket,ORDER_SYMBOL);



      // Identify a sell trade.

      if(HistoryDealGetInteger(Ticket,DEAL_TYPE) == DEAL_TYPE_BUY)

        {

         TradeType = "Sell Trade";

        }



      // Identify a buy trade

      if(HistoryDealGetInteger(Ticket,DEAL_TYPE) == DEAL_TYPE_SELL)

        {

         TradeType = "Buy Trade";

        }



      // chart out put.

      Comment("n","Deals Total - :  ", Total,

              "n","Last Deal Ticket - :  ", Ticket,

              "n", "Last Closed Profit -:  ", LastClosed_Profit,

              "n", "Last Trade was -:  ", TradeType);



     }

  }

//+------------------------------------------------------------------+



//+------------------------------------------------------------------+

you can get the whole trading history (from the very beginning of the account) by using the  HistorySelect(); function this way.

// Get entire history

HistorySelect(0,TimeCurrent());