При тестировании советника не учитывается общая прибыль

 

Добрый день!


При тестировании заметил,что в общую прибыль сделок ( totalprofit) не учитывается 

дополнительно сумма OrderCommission()+OrderSwap(), почему ?

Ниже мой код:

//+----------------------------------------------------------------------------+
//|  Описание :       Функция возвращает сигнал закрытия                       |
//+----------------------------------------------------------------------------+
  int CloseSymbol(string vSymbol)
  {
    bool error1=true;
   double mybid   = MarketInfo(vSymbol,MODE_BID);
   double myask   = MarketInfo(vSymbol,MODE_ASK);
    double dig=MarketInfo(vSymbol,MODE_DIGITS);
   ma_sred1 =NormalizeDouble(iMA(vSymbol,PERIOD_M30,sred,0,MODE_SMA,PRICE_CLOSE,1),dig);      //for M5
   double totalprofit=(OrderProfit()+ OrderCommission()+OrderSwap());
//if (OrderProfit()+OrderCommission()+OrderSwap()>0) ClosePosBySelect(); кимовское

 //------------------------------------------------------------------- 
  for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=Magic4 || OrderSymbol()!=vSymbol) continue;
      //--- check order type
      if(OrderType()==OP_BUY)
        {
    if((Close[1]>ma_sred1) && (OrderProfit()+OrderCommission()+OrderSwap()>0))//)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),mybid,30,White))
               Print("OrderClose error ",GetLastError());
           }
       //  break;
        }
      if(OrderType()==OP_SELL)
        {
     if((Close[1]<ma_sred1) && ( OrderProfit()+OrderCommission()+OrderSwap()>0))
           {
            if(!OrderClose(OrderTicket(),OrderLots(),myask,30,White))
               Print("OrderClose error ",GetLastError());
           }
      //   break;для циклов for, while прекращает их действия
        }
     }
    return(0);
 }  //end
 //===================================================================================================

 
fregat555:

Добрый день!


При тестировании заметил,что в общую прибыль сделок ( totalprofit) не учитывается 

дополнительно сумма OrderCommission()+OrderSwap(), почему ?

Ниже мой код:

//+----------------------------------------------------------------------------+
//|  Описание :       Функция возвращает сигнал закрытия                       |
//+----------------------------------------------------------------------------+
  int CloseSymbol(string vSymbol)
  {
    bool error1=true;
   double mybid   = MarketInfo(vSymbol,MODE_BID);
   double myask   = MarketInfo(vSymbol,MODE_ASK);
    double dig=MarketInfo(vSymbol,MODE_DIGITS);
   ma_sred1 =NormalizeDouble(iMA(vSymbol,PERIOD_M30,sred,0,MODE_SMA,PRICE_CLOSE,1),dig);      //for M5
   double totalprofit=(OrderProfit()+ OrderCommission()+OrderSwap());
//if (OrderProfit()+OrderCommission()+OrderSwap()>0) ClosePosBySelect(); кимовское

 //------------------------------------------------------------------- 
  for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=Magic4 || OrderSymbol()!=vSymbol) continue;
      //--- check order type
      if(OrderType()==OP_BUY)
        {
    if((Close[1]>ma_sred1) && (OrderProfit()+OrderCommission()+OrderSwap()>0))//)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),mybid,30,White))
               Print("OrderClose error ",GetLastError());
           }
       //  break;
        }
      if(OrderType()==OP_SELL)
        {
     if((Close[1]<ma_sred1) && ( OrderProfit()+OrderCommission()+OrderSwap()>0))
           {
            if(!OrderClose(OrderTicket(),OrderLots(),myask,30,White))
               Print("OrderClose error ",GetLastError());
           }
      //   break;для циклов for, while прекращает их действия
        }
     }
    return(0);
 }  //end
 //===================================================================================================

Вставить код нормально религия не позволяет?

Вставить код нормально религия не позволяет?
 
fregat555:

При тестировании заметил,что в общую прибыль сделок ( totalprofit) не учитывается 

Каким образом по приведенному коду определить, что в тестере не учитывается комиссия и свопы? 

 

Немного исправил код, но при тестах есть прибыли менее 1$,при лоте 0,1 комиссия равна  1$+своп, поэтому думаю что где-то в коде ошибка, или при
демо тестах комиссия и своп не учитываются.


//+----------------------------------------------------------------------------+
//|  Описание :       Функция возвращает сигнал закрытия                       |
//+----------------------------------------------------------------------------+
 int CloseSymbol(string vSymbol)
  {
    bool error1=true;
   double mybid   = MarketInfo(vSymbol,MODE_BID);
   double myask   = MarketInfo(vSymbol,MODE_ASK);
    double dig=MarketInfo(vSymbol,MODE_DIGITS);
   ma_sred15 =NormalizeDouble(iMA(vSymbol,PERIOD_M15,sred,0,MODE_SMA,PRICE_CLOSE,1),dig);      
   double clos1=0;
   double totalprofit;
   totalprofit=(OrderProfit()+ OrderCommission()+OrderSwap());
   clos1=NormalizeDouble(iClose(vSymbol,PERIOD_M15,1),dig);     //m30
 //-------------------------------------------------------------------  
  for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=Magic15 || OrderSymbol()!=vSymbol) continue;
      //--- check order type 
      if(OrderType()==OP_BUY)
        {
    if((clos1>ma_sred15) && ( totalprofit>0))//)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),mybid,30,White))
               Print("OrderClose error ",GetLastError());
           }
       //  break;
        }
      if(OrderType()==OP_SELL)
        {
     if((clos1<ma_sred15) && ( totalprofit>0))
           {
            if(!OrderClose(OrderTicket(),OrderLots(),myask,30,White))
               Print("OrderClose error ",GetLastError());
           }
      //   break;для циклов for, while прекращает их действия
        }
     }
    return(0);
 }  //end

//===================================================================================================================



1 2018.01.02 02:30 buy 1 0.10 0.97855 0.96801 1.00993 0.00 10000.00
2 2018.01.02 03:00 close 1 0.10 0.98024 0.96801 1.00993 11.81 10011.81
3 2018.02.13 18:30 buy 2 0.10 0.98720 0.97666 1.01858 0.00 10011.81
4 2018.02.13 18:45 close 2 0.10 0.98851 0.97666 1.01858 8.92 10020.73
5 2018.03.13 19:30 sell 3 0.10 1.01739 1.02793 0.98601 0.00 10020.73
6 2018.03.14 01:30 close 3 0.10 1.01689 1.02793 0.98601 2.84 10023.57
7 2018.03.22 06:15 buy 4 0.10 0.99913 0.98859 1.03051 0.00 10023.57
8 2018.03.22 10:45 close 4 0.10 0.99939 0.98859 1.03051 0.97 10024.54
9 2018.04.03 20:00 buy 5 0.10 0.98225 0.97171 1.01363 0.00 10024.54
10 2018.04.03 20:45 close 5 0.10 0.98282 0.97171 1.01363 3.32 10027.86
11 2018.05.16 06:00 buy 6 0.10 0.95956 0.94902 0.99094 0.00 10027.86
12 2018.05.16 07:00 close 6 0.10 0.96044 0.94902 0.99094 5.67 10033.53
13 2018.07.11 18:45 buy 7 0.10 0.96964 0.95910 1.00102 0.00 10033.53
14 2018.07.11 19:00 close 7 0.10 0.97304 0.95910 1.00102 24.77 10058.30
15 2018.07.19 22:15 sell 8 0.10 0.97601 0.98655 0.94463 0.00 10058.30
16 2018.07.19 23:00 close 8 0.10 0.97518 0.98655 0.94463 5.29 10063.59
17 2018.08.13 19:00 buy 9 0.10 0.95487 0.94433 0.98625 0.00 10063.59
18 2018.08.13 20:15 close 9 0.10 0.95510 0.94433 0.98625 0.75 10064.34
19 2018.08.15 20:00 sell 10 0.10 0.95127 0.96181 0.91989 0.00 10064.34
20 2018.08.15 22:00 close 10 0.10 0.95106 0.96181 0.91989 0.59 10064.93
21 2018.09.04 09:15 sell 11 0.10 0.94635 0.95689 0.91497 0.00 10064.93
22 2018.09.04 10:45 close 11 0.10 0.94523 0.95689 0.91497 7.49 10072.42
23 2018.09.13 17:30 sell 12 0.10 0.93782 0.94836 0.90644 0.00 10072.42
24 2018.09.13 18:45 close 12 0.10 0.93687 0.94836 0.90644 6.20 10078.62
25 2018.10.15 19:45 buy 13 0.10 0.92608 0.91554 0.95746 0.00 10078.62
26 2018.10.15 21:30 close 13 0.10 0.92634 0.91554 0.95746 0.97 10079.59
27 2018.10.19 17:30 sell 14 0.10 0.93500 0.94554 0.90362 0.00 10079.59
28 2018.10.19 18:30 close 14 0.10 0.93404 0.94554 0.90362 6.28 10085.87
29 2018.12.03 03:15 sell 15 0.10 0.97552 0.98606 0.94414 0.00 10085.87
30 2018.12.03 04:45 close 15 0.10 0.97495 0.98606 0.94414 3.32 10089.19
31 2019.01.02 08:15 buy 16 0.10 0.95689 0.94635 0.98827 0.00 10089.19
32 2019.01.02 10:30 close 16 0.10 0.95754 0.94635 0.98827 3.93 10093.12
33 2019.02.18 21:15 buy 17 0.10 0.94291 0.93237 0.97429 0.00 10093.12
34 2019.02.18 22:15 close 17 0.10 0.94331 0.93237 0.97429 2.03 10095.15
35 2019.02.21 06:30 buy 18 0.10 0.94288 0.93234 0.97426 0.00 10095.15
36 2019.02.21 07:45 close 18 0.10 0.94323 0.93234 0.97426 1.65 10096.80


Причина обращения: