Ошибки, баги, вопросы - страница 3178

 
Sergey Gridnev #:
Допустим, Вы пишите цикл:
for(int i=...; ....; i++) {
...
}
А внутри цикла при определенном условии итератор i меняет свое значение.
Тоже надо предупреждение выводить по-вашему?

+++ Контроль тикета или переменной функции в массиве той же функции или структуры, или температуры и давления у больного икс, а не игрек. 

ЗЫ контроль икс или игрек)))) а не температуры)))
 
Sergey Gridnev #:
Допустим, Вы пишите цикл:
for(int i=...; ....; i++) {
...
}
А внутри цикла при определенном условии итератор i меняет свое значение.
Тоже надо предупреждение выводить по-вашему?

да. 
Но думаю дальше обсуждать нет смысла тк думаю что с такими условиями предупреждение реализовано не будет.

 
Andrei Sokolov #:

да. 
Но думаю дальше обсуждать нет смысла тк думаю что с такими условиями предупреждение реализовано не будет.

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

Это всего лишь строгость и правильность алгоритмов. Не более. и понимание правил и возможностей языка. 

 
Andrei Sokolov #:

да. 
Но думаю дальше обсуждать нет смысла тк думаю что с такими условиями предупреждение реализовано не будет.

С самого начала смысл обсуждения этого вопроса отсутствовал напрочь. Вы пишете о проблеме в mql4, в теме где обсуждаются проблемы mql5. Если-бы вы сразу сказали, что вопрос касается mql4, то вам никто и не ответил-бы.

 
Alexey Viktorov #:

 Вы пишете о проблеме в mql4, в теме где обсуждаются проблемы mql5. 

Где такое указано?

 
Alexey Viktorov #:

С самого начала смысл обсуждения этого вопроса отсутствовал напрочь.

Алексей, сначала вы пытались указывать, теперь пытаетесь решать за других где есть смысл, а где его нет. 

Вы не могли-бы, если нет конструктивного ответа, то не провоцировать подобные бессмысленные переписки.

 
Andrei Sokolov #:

Где такое указано?

Вот из этого кода понятно, что речь о mql4. Жаль что я не сразу обратил на это внимание

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Andrei Sokolov, 2022.04.20 13:00

Предположу что было-бы удобно если б компилятор показывал предупреждение если во вложении, которое находится после OrderSelect(), находится еще вызов(ы) OrderSelect(),  в тч через вызовы функций

Вчера весь вечер баг искал, и это уже второй раз по этой причине. 

void Trailing()
{
   for(int i=OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber()==magic)
         {
            if(OrderType() == OP_BUY)
            {
               if(Bid >= GetAveragePrice(OP_BUY)+start_tral_level*Point)//OrderOpenPrice()
               {
                  if(Bid >= OrderStopLoss()+(tral_stop+tral_step)*Point || OrderStopLoss()==0)
                  {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble(Bid-tral_stop*Point, Digits), OrderTakeProfit(), OrderExpiration())) 
                     {
                        Print("Trailing buy err ", GetLastError());
                     }
                  }
               }
            }
            if(OrderType()==OP_SELL)
            {
               if(Ask <= GetAveragePrice(OP_SELL)-start_tral_level*Point)//OrderOpenPrice()
               {
                  if(Ask <= OrderStopLoss()-(tral_stop+tral_step)*Point || OrderStopLoss()==0)
                  {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble(Ask+tral_stop*Point, Digits), OrderTakeProfit(), OrderExpiration())) 
                     {
                        Print("Trailing sell err ", GetLastError());
                     }
                  }   
               }   
            }   
         }
      }
   }
}
double GetAveragePrice(int in_type)//расчет средней цены позиций
{
   double dRes=-1;
   double dSum=0;
   double dLot=0;
   double dComission=0;
   double dSwap=0;
   int iTotalPos=OrdersTotal();
   for(int cnt=0;cnt<iTotalPos;cnt++)
   {
      if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) Print( "Error Select Order");
      {
         if(OrderType()==in_type && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
         {
            dSum+=OrderOpenPrice()*OrderLots();
            dLot+=OrderLots();
            dSwap+=OrderSwap();
            dComission+=OrderCommission();
         }
      }    
   }     
   if(in_type==OP_BUY && dLot!=0) dRes=dSum/dLot-dSwap/dLot*Point-dComission/dLot*Point;
   if(in_type==OP_SELL && dLot!=0) dRes=dSum/dLot+dSwap/dLot*Point+dComission/dLot*Point;
   
   return dRes;
}
Вам конструктивных ответов написали уже вагон и маленьку тележку. Остаётся только чтобы барабашка обратил внимание на обсуждение проблем mql4 в этой ветке…
 
Alexey Viktorov #:

Вот из этого кода понятно, что речь о mql4. Жаль что я не сразу обратил на это внимание

Вам конструктивных ответов написали уже вагон и маленьку тележку. Остаётся только чтобы барабашка обратил внимание на обсуждение проблем mql4 в этой ветке…

Так где указано что обсуждаются только проблемы только mql5 ?

 
Andrei Sokolov #:

Так где указано что обсуждаются только проблемы только mql5 ?

mql4 в резервации - на форуме есть отдельный раздел для него. Все остальное - mql5
 
Andrei Sokolov #:

Так где указано что обсуждаются только проблемы только mql5 ?

Вот отдельная тема для этого.

МТ4 Ошибки, Баги, Вопросы
МТ4 Ошибки, Баги, Вопросы
  • 2017.01.31
  • www.mql5.com
Уважаемая администрация, В терминале МТ4 обнаружил очень серьезный глюк, который может навредить торговле...
Причина обращения: