Thread: How to code?
View Single Post
  #35 (permalink)  
Old 03-06-2006, 11:15 PM
RickD's Avatar
RickD RickD is offline
Member
 
Join Date: Jan 2006
Location: Eastern Europe
Posts: 54
RickD is on a distinguished road
For example:
Code:
  double lot = Lots;
  
  int ticket = GetLastOrder(Symbol(), OP_BUY, MODE_HISTORY);
  if (ticket >= 0) {  
    OrderSelect(ticket, SELECT_BY_TICKET, MODE_HISTORY);
    
    if (OrderProfit() > 0) lot = 2*OrderLots();
  }

int GetLastOrder(string symbol, int type, int mode) {
  int cnt = -1;
  if (mode == MODE_TRADES) cnt = OrdersTotal(); else 
  if (mode == MODE_HISTORY) cnt = HistoryTotal(); else
  return(-1);
  
  int ticket = -1;
  datetime dt = 0;
  for (int i=0; i < cnt; i++) {
    if (!OrderSelect(i, SELECT_BY_POS, mode)) continue;

    if (OrderSymbol() != symbol) continue;
    if (OrderMagicNumber() != Magic) continue;
    
    if (OrderCloseTime() > dt && OrderType() == type) {
      dt = OrderCloseTime();
      ticket = OrderTicket();
    }
  }
  
  return(ticket);
}
Reply With Quote