mq4 в mq5 помогите понять принцип, не получается переделать простой код даже

 

Народ, нужно переделать советник под МТ5 - поскольку в мт4 нельзя сделать кросс-тестирование. помогите кусок кода хоть переделать, что бы я понял принцип построения кода. в mq4 еще как то разбираюсь, а в 5 вообще отдуплить не могу, пробовал через PositionOrders но ерунда получается - как то там по другому совсем все делается... если можно с обьяснением - может не понимаю чего... код вроде простейший, но не выходит у меня чет. -это кусок подсчета ордеров и последнего ордера по парам!

int tick2s=0,tick3s=0,tick2b=0,tick3b=0;
  int s2=0,b2=0,s3=0,b3=0;
  double or2s=0.0,or3s=0.0,or2b=0.0,or3b=0.0;
  for (int i=OrdersTotal()-1; i>=0; i--) 
  {                                               
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) 
      {
          if(tick2s<OrderTicket() && OrderSymbol() == Symbol_2 && OrderMagicNumber() == Magic_1 && OrderType() == OP_SELL) { tick2s = OrderTicket(); or2s = OrderOpenPrice(); }
          if(tick2b<OrderTicket() && OrderSymbol() == Symbol_2 && OrderMagicNumber() == Magic_1 && OrderType() == OP_BUY) { tick2b = OrderTicket(); or2b = OrderOpenPrice(); }
          if(tick3s<OrderTicket() && OrderSymbol() == Symbol_3 && OrderMagicNumber() == Magic_1 && OrderType() == OP_SELL) { tick3s = OrderTicket(); or3s = OrderOpenPrice(); }
          if(tick3b<OrderTicket() && OrderSymbol() == Symbol_3 && OrderMagicNumber() == Magic_1 && OrderType() == OP_BUY) { tick3b = OrderTicket(); or3b = OrderOpenPrice(); }
          //
          if(OrderSymbol() == Symbol_2 && OrderMagicNumber() == Magic_1 && OrderType() == OP_SELL) s2++;
          if(OrderSymbol() == Symbol_2 && OrderMagicNumber() == Magic_1 && OrderType() == OP_BUY) b2++;
          if(OrderSymbol() == Symbol_3 && OrderMagicNumber() == Magic_1 && OrderType() == OP_SELL) s3++;
          if(OrderSymbol() == Symbol_3 && OrderMagicNumber() == Magic_1 && OrderType() == OP_BUY) b3++;
      }
  }
 

В данном случае используются только рыночные ордера, поэтому OrdersTotal() заменить на PositionsTotal(). Затем воспользоваться классом CPositionInfo, заменить OrdersSelect() на метод SelectByIndex()... 

Остальное - по ходу догадаетесь - всякие функции для получения данных ордера меняются на методы класса.