На входе у нас 3 условия? Любое условие "0" или "1" ? Может ли notrade , быть или 1 или 0 ?
notrade это то, с чем сравнивают. Идет проверка значения переменной last_order_type . И если значение
переменной
last_order_type равно "notrade", то это истина (то есть 1). Так же и с переменной order_type,
которое проверяют, равно ли оно значению "sell" . При таком варианте схемы проверка на соотвествие значения переменной
last_order_type значению "buy" не имеет смысла. Схема будет блокирована, если значение переменной last_order_type
не будет соответствовать значению "notrade".
notrade это то, с чем сравнивают. Идет проверка значения переменной last_order_type . И если значение
переменной
last_order_type равно "notrade", то это истина (то есть 1). Так же и с переменной order_type,
которое проверяют, равно ли оно значению "sell" . При таком варианте схемы проверка на соотвествие значения переменной
last_order_type значению "buy" не имеет смысла. Схема будет блокирована, если значение переменной last_order_type
не будет соответствовать значению "notrade".
Если я все правильно понял
В таком случае у нас на выходе должно быть 2 значения: BUY 1 или 0 (истина или ложь)
Aleksey Popov: В таком случае у нас на выходе должно быть 2
значения: BUY 1 или 0 (истина или ложь)
SELL 1 или 0 (истина или ложь)
Нет, на выходе либо истина (1, true) или ложь (0, false). Это не значит покупку или продажу. Возьмем опять код:
if(last_order_type == "buy" || last_order_type == "notrade" && order_type == "sell"){ - эта фигурная скобка сигнализирует о начале кода, который выполняется если условия истинны
// если условия истинны следующий код будет выполняться
int a = 5;
int b = 3;
int c = a + b;
} - конец блока кода
Ключевое слово if говорит, что дальше будут условия. Условия прописывается в скобках (). В условиях могут быть операции отношения
(равно "==", больше/меньше ">/<", не равно "!=", меньше или равно "<=", больше или равно ">=") и
логические
операции (и "&", или "|" ). Если все условия истинны будет выполняться код, между фигурными скобками, иначе (если
какое-то из условий ложное) ничего не произойдет.
То есть, выполнение условий это лишь повод для выполнения дальнейшей работы (какую пропишите, такая и будет)
Если мы меняем код (добавил скобки - выделен этот кусок):
if( (last_order_type == "buy" || last_order_type == "notrade") && order_type == "sell"){ - эта фигурная скобка сигнализирует о начале кода, который выполняется если условия истинны
// если условия истинны этот следующий код будет выполняться
int a = 5;
int b = 3;
int c = a + b;
} - конец блока кода
То у нас появляется как бы условие в условии. Поскольку внутри скобок между условиями (проверкой значения переменной
last_order_type на соответствие значению "buy" и проверкой значения переменной last_order_type на соответствие
значению "notrade") есть операнд || (или), то необходимо чтобы хоть одно из условий в скобках выдало в результате истину, чтобы
"скобки" выдали истину. Затем проверяется, соответствует ли значение переменной order_type значению "sell". И если значение "скобок" -
истина и значение условия с order_type - истина, то дальше выполняется код внутри фигурных скобок
//| Script program start function | "Операция &&: Результат первого выражения false, поэтому второе выражение не вычислялось" //| функция всегда возвращает false | //| функция всегда возвращает true |
Вот картинка (это если я сам все понял правильно):
Возможно я путаю, но это только потому что я пытаюсь понять смысл из вырванного куска кода. Как я понимаю мы после логических операций (AND ;
OR) или операций сравнения ( =< ==> ) должны получить 2 команды
BUY или SELL или их отсутсятвие ( 0 или ЛОЖЬ)
модераторы, не обижусь если перекинете в песочницу
Возможно я путаю, но это только потому что я пытаюсь понять смысл из вырванного куска кода. Как я понимаю мы после логических
операций (AND ; OR) или операций сравнения ( =< ==> ) должны
получить 2 команды BUY или SELL или их отсутсятвие ( 0 или ЛОЖЬ)
модераторы, не обижусь если перекинете в песочницу
Я не понимаю, что именно вы путаете :)
В конце схемы только один сигнал (из двух возможных): это либо сигнал логической единицы (1 либо true) либо логического нуля (0 или false).
И только один из них. Либо условия истинны, либо нет... Либо напряжение есть, либо его нет...
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
По-моему, так получается:
Попробовал визуализировать изначальный код Ивана:
По-моему, так получается:
На входе у нас 3 условия? Любое условие "0" или "1" ? Может ли notrade , быть или 1 или 0 ?
На входе у нас 3 условия? Любое условие "0" или "1" ? Может ли notrade , быть или 1 или 0 ?
notrade это то, с чем сравнивают. Идет проверка значения переменной last_order_type . И если значение переменной last_order_type равно "notrade", то это истина (то есть 1). Так же и с переменной order_type, которое проверяют, равно ли оно значению "sell" . При таком варианте схемы проверка на соотвествие значения переменной last_order_type значению "buy" не имеет смысла. Схема будет блокирована, если значение переменной last_order_type не будет соответствовать значению "notrade".
Если я все правильно понял
notrade это то, с чем сравнивают. Идет проверка значения переменной last_order_type . И если значение переменной last_order_type равно "notrade", то это истина (то есть 1). Так же и с переменной order_type, которое проверяют, равно ли оно значению "sell" . При таком варианте схемы проверка на соотвествие значения переменной last_order_type значению "buy" не имеет смысла. Схема будет блокирована, если значение переменной last_order_type не будет соответствовать значению "notrade".
Если я все правильно понял
SELL 1 или 0 (истина или ложь)
В таком случае у нас на выходе должно быть 2 значения: BUY 1 или 0 (истина или ложь)
SELL 1 или 0 (истина или ложь)
Нет, на выходе либо истина (1, true) или ложь (0, false). Это не значит покупку или продажу. Возьмем опять код:
Ключевое слово if говорит, что дальше будут условия. Условия прописывается в скобках (). В условиях могут быть операции отношения (равно "==", больше/меньше ">/<", не равно "!=", меньше или равно "<=", больше или равно ">=") и логические операции (и "&", или "|" ). Если все условия истинны будет выполняться код, между фигурными скобками, иначе (если какое-то из условий ложное) ничего не произойдет.
То есть, выполнение условий это лишь повод для выполнения дальнейшей работы (какую пропишите, такая и будет)
Если мы меняем код (добавил скобки - выделен этот кусок):
То у нас появляется как бы условие в условии. Поскольку внутри скобок между условиями (проверкой значения переменной last_order_type на соответствие значению "buy" и проверкой значения переменной last_order_type на соответствие значению "notrade") есть операнд || (или), то необходимо чтобы хоть одно из условий в скобках выдало в результате истину, чтобы "скобки" выдали истину. Затем проверяется, соответствует ли значение переменной order_type значению "sell". И если значение "скобок" - истина и значение условия с order_type - истина, то дальше выполняется код внутри фигурных скобок
Вот картинка (это если я сам все понял правильно):
Вот картинка (это если я сам все понял правильно):
Возможно я путаю, но это только потому что я пытаюсь понять смысл из вырванного куска кода. Как я понимаю мы после логических операций (AND ; OR) или операций сравнения ( =< ==> ) должны получить 2 команды BUY или SELL или их отсутсятвие ( 0 или ЛОЖЬ)
модераторы, не обижусь если перекинете в песочницу
Возможно я путаю, но это только потому что я пытаюсь понять смысл из вырванного куска кода. Как я понимаю мы после логических операций (AND ; OR) или операций сравнения ( =< ==> ) должны получить 2 команды BUY или SELL или их отсутсятвие ( 0 или ЛОЖЬ)
модераторы, не обижусь если перекинете в песочницу
Я не понимаю, что именно вы путаете :)
В конце схемы только один сигнал (из двух возможных): это либо сигнал логической единицы (1 либо true) либо логического нуля (0 или false). И только один из них. Либо условия истинны, либо нет... Либо напряжение есть, либо его нет...