Как опредилить orderprofit последних сделок?

 
Как опредилить orderprofit последних сделок или хотя бы последней
[Удален]  
[Удален]  
double ProfitClose(int mag)
 {
int pr=0;
datetime oct;
double oop,ocp;
int pos_type=-1;
int j=-1;
if(OrdersHistoryTotal()!=0){
for(int i=OrdersHistoryTotal()-1;i>=0;i--){
   if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) continue;  
   if(OrderSymbol()!=Symbol())continue;
   if(OrderMagicNumber()==mag){ 
   if (oct<OrderCloseTime()) { oct=OrderCloseTime(); j=i;}           
   if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) 
      {
      oop=OrderOpenPrice();
      ocp=OrderClosePrice();  
         if(OrderType()==OP_BUY ){
           pr=(oop-ocp)/Point;
            return(pr);
          }   
         if(OrderType()==OP_SELL){
           pr=(ocp-oop)/Point;
             return(pr);
         }}}}}    
    return(0);
  }
[Удален]  

Так получим профит в пунктах, тот же перебор с суммированием OrderProfit()+OrderSwap()+OrderCommission() по всем ордерам вернет прибыль в валюте депозита

[Удален]  
Если не нравиться в пунктах поставит
pr=OrderProfit()+OrderSwap()+OrderCommission() ;
не проблема .
 

Большое спасибо, но нужно за последнии несколько сделок.Помогите пожалуйста

 
lovova откликнись на последнюю просьбу!
 
rodis писал (а):
нужно за последнии несколько сделок.

В качестве примера могу дать по дате закрытия. Например, с помощью этой функции можно получить общий профит сделок, закрытых за последние два дня или за последние три часа.

//+----------------------------------------------------------------------------+
//|  Возвращает суммарный профит в валюте депозита                             |
//|    закрытых с определённой даты позиций                                    |
//|  Параметры:                                                                |
//|    sy - наименование инструмента             (""   - любой символ,         |
//|                                               NULL - текущий символ)       |
//|    op - операция                             (-1   - любая позиция)        |
//|    mn - MagicNumber                          (-1   - любой магик)          |
//|    dt - Дата и время в секундах с 1970 года  ( 0   - с начала истории)     |
//+----------------------------------------------------------------------------+
double GetProfitFromDateInCurrency(string sy="", int op=-1, int mn=-1, datetime dt=0)
{
  double p=0;
  int    i, k=OrdersHistoryTotal();
 
  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            if (dt<OrderCloseTime()) {
              p+=OrderProfit()+OrderSwap();
            }
          }
        }
      }
    }
  }
  return(p);
}
 
Спасибо за ответ Kim.Хочу объяснить почему часто задаю вопросы.Не из за лени.Вопросы задаю не я, а мой друг програмист.Он практически слепой - атрофия зрительного нерва.Что бы рассмотреть что то на мониторе он смотрит в него с растояния 15 см.Книгу по mql4 особо на читалке-говорилке не почитаешь для освоения mql.Так что спасибо ещё раз, извините если надоедаю.