:)
A<0.5<50
всегда true
Такая конструкция не дала ошибку компилятора.
Но вот что считает индикатор - мне непонятно...
И если так можно делать, может кто то из модераторов (разработчиков) подскажет как эту конструкцию можно использовать во благо?
sergeev писал(а) >>
И если так можно делать, может кто то из модераторов (разработчиков) подскажет как эту конструкцию можно использовать во благо?
Такую конструкцию можно использовать во благо только в одном случае -- переопределить оператор "<" для конвейерных операций.
Что, естественно на mql4 сделать нельзя, да и незачем :) . Поэтому это баг, однозначно.
Такую конструкцию можно использовать во благо только в одном случае -- переопределить оператор "<" для конвейерных операций.
Что, естественно на mql4 сделать нельзя, да и незачем :) . Поэтому это баг, однозначно.
Можно использовать и в мирных целях.
например
if(A<50<0.5)
аналогично
if(!A<50)только хз зачем. если только, чтоб никто не догадался :)
а чего тут страшного? читаем хэлп:
Внутреннее представление - длинное целое число размером 4 байта. Логические константы могут принимать значения 0 и 1.
т.е. результат любого логического вычисления можно считать (в прямом смыле этого слова) цифрой и ее можно даже на чтото умножить например:
int start() { double A = 0.3; double B =3; Print(A<0.5); // 1 Print(A<0.5 <50); // 1 Print(B<0); // 0 Print(A<0.5 <50 && B<0); // 0 Print((A<0.5) * 3); // 3 A = 13; Print((A<0.5) * 3); // 0 }
Про приориоритеты в хелпе тоже есть "Приоритеты и порядок выполнения операций": < выполняются слева направо а && выполняется после всех <
а в "исходнике" скорее всего незамеченная очепятка. Вероятнее всего там должно было чтото вроде
if(A<0.5 && С<50 && B<0) return (1)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
вот встетил в индикаторе такое написание.
на первый взгляд непонятно что будет на выходе?