Помогите с определением типа ордера.

 
Возникла следующая проблема:
Как проверить направление последнего закрытого ордера(buy or sell) и открыть новый ордер в противоположную сторону?
 
ThelUteam:
Возникла следующая проблема:
Как проверить направление последнего закрытого ордера(buy or sell) и открыть новый ордер в противоположную сторону?
D В каком терминале?
 
Sergey Gritsay:
D В каком терминале?
MT5
 
ThelUteam:
MT5
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void HistPosition_Type(string Symbols_,long &type_)
  {
//--- request trade history  
   HistorySelect(0,TimeCurrent());
//--- create objects 
   uint     total=HistoryDealsTotal();
   ulong    ticket=0;
   double   price=0.0;
   double   profit;
   datetime time=0;
   string   symbol;
   long     type;
   long     entry;
   int latest_time=0;
//--- for all deals 
   for(uint i=0;i<total;i++)
     {
      //--- try to get deals ticket 
      if((ticket=HistoryDealGetTicket(i))>0)
        {
         //--- get deals properties 
         price =HistoryDealGetDouble(ticket,DEAL_PRICE);
         time  =(datetime)HistoryDealGetInteger(ticket,DEAL_TIME);
         symbol=HistoryDealGetString(ticket,DEAL_SYMBOL);
         type  =HistoryDealGetInteger(ticket,DEAL_TYPE);
         entry =HistoryDealGetInteger(ticket,DEAL_ENTRY);
         profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
         if(symbol==Symbols_)
            latest_time=(int)MathMax(time,latest_time);
        }
      if(time==latest_time)
         type_=type;
     }
  }
//+------------------------------------------------------------------+
 

В МТ5 buy и sell - это трейды (часть позиции) или же сама позиция. Ордера - это отложенные ордера.

Нужно определить тип последнего закрытого трейда при существовании позиции по символу или тип последней существовавшей позиции при отсутствии оной?

 
lilita bogachkova:
Спасибо огромное, просто мне нужно выступить на конференции , а сам не справляюсь с советником)
 
ThelUteam:
Спасибо огромное, просто мне нужно выступить на конференции , а сам не справляюсь с советником)

Для показа на конференции код надо дополнить это я оставила для вас, но раз не справляетесь то:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void HistPosition_Type(string Symbols_,long &type_)
  {
//--- request trade history  
   HistorySelect(0,TimeCurrent());
//--- create objects 
   uint     total=HistoryDealsTotal();
   ulong    ticket=0;
   double   price=0.0;
   double   profit;
   datetime time=0;
   string   symbol;
   long     type;
   long     entry;
   int latest_time=0;
//--- for all deals 
   for(uint i=0;i<total;i++)
     {
      //--- try to get deals ticket 
      if((ticket=HistoryDealGetTicket(i))>0)
        {
         //--- get deals properties 
         entry=HistoryDealGetInteger(ticket,DEAL_ENTRY);
         if(entry==DEAL_ENTRY_IN)continue;
         price =HistoryDealGetDouble(ticket,DEAL_PRICE);
         time  =(datetime)HistoryDealGetInteger(ticket,DEAL_TIME);
         symbol=HistoryDealGetString(ticket,DEAL_SYMBOL);
         type  =HistoryDealGetInteger(ticket,DEAL_TYPE);
         profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
         if(symbol==Symbols_)
            latest_time=(int)MathMax(time,latest_time);
        }
      if(time==latest_time)
         type_=type;
     }
  }
//+------------------------------------------------------------------+
Причина обращения: