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