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

 
Alexey Viktorov #:

Вот в этом коде я совершенно ничего не понял

Что означает выделенное & в этом коде? И в каком цикле должно выполняться if(h_plus)? Вы не пропустили кривые скобки?

MQL bool истинно, если больше 0, в других языках логическое значение истинно, только если == 1

 
Alexey Viktorov #:

Вот в этом коде я совершенно ничего не понял

Что означает выделенное & в этом коде? И в каком цикле должно выполняться if(h_plus)? Вы не пропустили кривые скобки?

 bool h_plus=true; //false?
   for(int increment=1; increment<=n; increment++)
      h_plus&=high[i]>high[i+increment];
   if(h_plus) {...}
   ...


 
x572intraday #:

 Вообще, я случайно наткнулся на эту особенность. А хотел совсем другого...

либо

Тягомотина в том, что n может быть достаточно велико, поэтому эту длинную цепочку условий захотелось завернуть в компактный for. Попробовал так:

но вышла какая-то шляпа. Ну хотя бы потому, что h_plus при таком алгоритме будет вынужден принять всю сумму проверяемых условий, включая условие с проверкой массива с избыточным индексом, до чего дело не доходило в первом развёрнутом if, без for который. Ну и прочие варнинги картину портят.

 Стоит ли такое вообще хотеть? Возможно ли такое за-for'ить?

Что-то типа того:

for(int i=start; i<rates_total-3 && !IsStopped(); i++)
{
   bool h_plus=true; //false?
   for(int increment=1; increment<=n; increment++)
     {
      h_plus&=high[i]>high[i+increment];
      if(!h_plus)break;
     }
   if(h_plus) {...}
   ...
}
 
Lilita Bogachkova #:


Побитовая операция И двоичных представлений y и x      y &= x;

https://www.mql5.com/ru/docs/basis/operations/assign

Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
  • www.mql5.com
Операции присваивания - Операции и выражения - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Lilita Bogachkova #:


В какой строке вашего снимка есть &=

 
JRandomTrader #:

Побитовая операция И двоичных представлений y и x      y &= x;

https://www.mql5.com/ru/docs/basis/operations/assign

Понятно. Это не для самоучек… Лениво было туда посмотреть…
 
Alexey Viktorov #:

Вот в этом коде я совершенно ничего не понял

Что означает выделенное & в этом коде?

 Могу ответить только за &= сразу:

Справочник MQL5 / Основы языка / Операции и выражения / Операции присваивания:

Побитовая операция И двоичных представлений y и x y &= x;

по аналогии с накопительной переменной y:

Увеличение значения переменной у на x y += x;


Но это мой первый опыт использования &=, так что могу ошибаться.

И в каком цикле должно выполняться if(h_plus)? Вы не пропустили кривые скобки?

 Нет. Сперва (по задумке) в накопительную h_plus суммируются внутри for все логические условия, а получившаяся bool-сумма подставляется в if, который к внутреннему for отношения не имеет.
 
Alexey Viktorov #:

В какой строке вашего снимка есть &=

https://stackoverflow.com/questions/33304407/c-meaning-and

C++ meaning |= and &=
C++ meaning |= and &=
  • 2015.10.23
  • Sven van den Boogaart
  • stackoverflow.com
I have a part of code that contains the following functions: I know what a switch case is but I don't understand what these parts do. is an int. The 's also refer to an int value. Could someone explain what these parts do? An example with input values and results would be nice.
 
Lilita Bogachkova #:

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

 
JRandomTrader #:

Что-то типа того:

 Уже пробовал и break, и даже return сгоряча, но было только хуже. Попробую ещё упростить код и переосмыслить с break...

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