How would you modify the function to get
- LastLongEntryPrice()
- LastShortEntryPrice()
i.e.
I opened 3 sell orders and then 5 buy orders after.
LastShortEntryPrice is 6th deals ago and not the last deal.
How could I modify this code to make it also scan through the “deal type” to return the “last of its kind”?
double last_deal()
{
double deal_price;
// --- time interval of the trade history needed
datetime end=TimeCurrent(); // current server time
datetime start=end-PeriodSeconds(PERIOD_D1);// decrease 1 day
//--- request of trade history needed into the cache of MQL5 program
HistorySelect(start,end);
//--- get total number of deals in the history
int deals=HistoryDealsTotal();
//--- get ticket of the deal with the last index in the list
ulong deal_ticket=HistoryDealGetTicket(deals-1);
if(deal_ticket>0) // deal has been selected, let's proceed ot
{
//--- ticket of the order, opened the deal
ulong order=HistoryDealGetInteger(deal_ticket,DEAL_ORDER);
long order_magic=HistoryDealGetInteger(deal_ticket,DEAL_MAGIC);
long pos_ID=HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID);
deal_price=HistoryDealGetDouble(deal_ticket,DEAL_PRICE);
double deal_volume=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
PrintFormat("Deal: #%d opened by order: #%d with ORDER_MAGIC: %d was in position: #%d price: #%d volume:",
deals-1,order,order_magic,pos_ID,deal_price,deal_volume);
}
else // error in selecting of the deal
{
PrintFormat("Total number of deals %d, error in selection of the deal"+
" with index %d. Error %d",deals,deals-1,GetLastError());
}
return(deal_price);
}