Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Загружай коды из Библиотеки MQL5 через MetaTrader. Это удобно!
Serg95off
58
Serg95off 2015.12.14 16:30 

Помогите разобраться почему функция работает не корректно.

Ниже приведенный код, вычисляет лот у проигрышного ордера и увеличивает в 2 раза.

Почему происходит сбой если взять лот 0.1 и когда он станет 0.8 произойдет сбой почему, при проигрыше должно 1.6 лот стать а он всё 0.8 грузит

//+--------------------------- FindLastLots ----------------------------------+
double FindLastLots()
  {
   double oldlots,profit;
   int oldticket;
   int ticket=0;
    double lots= lots1;
     int total = OrdersHistoryTotal();
    double minlot = MarketInfo(Symbol(), MODE_MINLOT);
   int round = MathAbs(MathLog(minlot) / MathLog(10.0)) + 0.5;
   
    ////////////////////////////////////////////////////////////////////////////////////////
           for (int id = 0; id < total; id++) {
   OrderSelect(id, SELECT_BY_POS, MODE_HISTORY);
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == mn) { 
           
            oldticket=OrderTicket();
            if(oldticket>ticket)
              {
              oldlots= OrderLots();
               
               profit=OrderProfit();
               if(profit<0){
               lots=oldlots*2;
               lots = DoubleToString(lots, 2);
             
               Print("НОМЕР лота  ", id, "ПРОФИТ ", profit, "Новый лот ", lots);
               }
               if(profit>0){
               lots=lots1;
               Print("НОМЕР лота  ", id, "ПРОФИТ ", profit);
               }
              
              }
           }
        }
     
   return(lots);
  }
Ilyas
1182
Ilyas 2015.12.15 09:36  
Что выводят Print внутри этой функции?
Vasyl Nosal
18203
Vasyl Nosal 2015.12.15 11:36  
for (int id = total-1; id >=0 ; id--)
...
...

       }
 break;

     }
   }
     
   return(lots);
Mislaid
554
Mislaid 2015.12.15 19:32  
mql5:
Что выводят Print внутри этой функции?

Меня больше всего интригует результат в следующей комбинации

...
double lots= lots1;
...
lots = DoubleToString(lots, 2);
...
Alexey Viktorov
5174
Alexey Viktorov 2015.12.16 05:10  
Mislaid:

Меня больше всего интригует результат в следующей комбинации

 

А тебя не смущает, что переменной double присваивается значение string?
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий