Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пример из торгового класса CTrade. Сначала проверяется на 'SYMBOL_FILLING_FOK', затем на 'SYMBOL_FILLING_IOC'
Проверка производится при помощи 'Побитовая операция И'
Побитовая операция И
Побитовая операция И двоичных представлений x и y. Значение выражения содержит 1 (ИСТИНА) во всех разрядах, в которых и x, и y содержат не ноль; и 0 (ЛОЖЬ) во всех остальных разрядах.
Пример:
Ещё о побитовых операциях.
Может две одновременно быть не может всё таки? что должна вернуть функция, чтобы были две одновременно?
Может две одновременно быть не может всё таки? что должна вернуть функция, чтобы были две одновременно?
Пример проверок для двух символов с сервера MetaQuotes-Demo:
Смотрим спецификации (заливку) по этим символам:
а вот более распространённый вариант: когда для символа доступны все заливки
и спецификация
Может быть и 2, тогда функция вернёт 3. НО¡¡¡¡¡ Это нетипичная ситуация. Учитывая что вариантов только 3, то может быть 1, 2 или сумма 1+2. Именно сумма, а не третий вариант. Поэтому проверка с помощью побитовой операции может дать ответ только на вопрос: Можно-ли применить ту или иную политику заполнения.
всё равно не понял, как одна переменная может вернуть два члена. А если она вернет одним членом значение 3, то побитовые операции не сработают. Я решил просто выбрать режим EXECUTION_INSTANT, и у меня всегда будет политика FOK.
Чтобы понять надо разобраться что такое флаги.
Каждое следующее значение флага есть значение предыдущего умноженное на 2. То-есть 1, 2, 4, 8, 16, 32……… Так вот если значение будет 33 это означает что в этом значении присутствуют только 1 и 32. Так-же если значение 18 можно составить только из 16 и 2. И уже затронутое 3 можно составить только из 1 и 2.
Так вот побитовые операции как раз проверяют присутствует-ли проверяемое значение в сумме флагов. Если вы будете проверять входит-ли произвольное число в 18 вы получите false за исключением проверки значений 2 и 16.
Чтобы понять надо разобраться что такое флаги.
Каждое следующее значение флага есть значение предыдущего умноженное на 2. То-есть 1, 2, 4, 8, 16, 32……… Так вот если значение будет 33 это означает что в этом значении присутствуют только 1 и 32. Так-же если значение 18 можно составить только из 16 и 2. И уже затронутое 3 можно составить только из 1 и 2.
Так вот побитовые операции как раз проверяют присутствует-ли проверяемое значение в сумме флагов. Если вы будете проверять входит-ли произвольное число в 18 вы получите false за исключением проверки значений 2 и 16.
Да, я понимаю как работать с разрядами двоичной системы.
Из этого кода выходит, например функция вернула 3 .
(11&1)==1 ; 11==01 нет, это ложь, не сработало.
Я сейчас это писал и подумал, может я неправильно понимаю операции.
& это значит, я перевожу десятичные значения в двоичные и делаю побитово конъюнкцию.
== истина, когда первый член равен второму члену. Всё так?