Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Ejemplo de la clase de comercio de CTrade. Primero se comprueba si hay"SYMBOL_FILLING_FOK" y luego si hay"SYMBOL_FILLING_IOC".
La comprobación se realiza mediantela operación "AND bitwise".
Operación AND a nivel de bits
La operación AND a nivel de bits de las representaciones binarias x e y. El valor de la expresión contiene 1 (TRUE) en todos los bits en los que tanto x como y contienen un valor distinto de cero; y 0 (FALSE) en todos los demás bits.
Ejemplo:
Más información sobre las operaciones a nivel de bits.
Después de todo, ¿no puede haber dos al mismo tiempo? ¿Qué debería devolver la función para que haya dos al mismo tiempo?
Después de todo, ¿no puede haber dos al mismo tiempo? ¿Qué debería devolver la función para que haya dos al mismo tiempo?
Ejemplo de comprobación de dos personajes del servidor MetaQuotes-Demo:
Consulte las especificaciones (relleno) de estos símbolos:
y aquí hay una variante más común: cuando todos los rellenos están disponibles para un símbolo
y la especificación
También puede ser 2, entonces la función devolverá 3. BUT¡¡¡¡¡ Esta es una situación atípica. Dado que sólo hay 3 opciones, podría ser 1, 2 o la suma de 1+2. Es la suma, no la tercera opción. Por lo tanto, la comprobación con una operación bitwise sólo puede responder a la pregunta: ¿Se puede aplicar tal o cual política de llenado?
Sigo sin entender cómo una variable puede devolver dos miembros. Y si devuelve un miembro como 3, entonces las operaciones bitwise no funcionarán. He decidido elegir simplemente el modo EXECUTION_INSTANT y siempre tendré una política FOK .
Para entender esto hay que entender qué son las banderas.
Cada valor siguiente de una bandera es el valor de la anterior multiplicado por 2. Es decir, 1, 2, 4, 8, 16, 32......... Así que si el valor es 33 significa que este valor contiene sólo 1 y 32. Del mismo modo, si el valor es 18, sólo puede estar compuesto por 16 y 2. Y el valor 3 sólo puede estar compuesto por 1 y 2.
Por lo tanto, las operaciones bitwise sólo comprueban si el valor comprobado está presente en la suma de banderas. Si se comprueba si un número arbitrario está incluido en 18 se obtiene falso, excepto si se comprueban los valores 2 y 16.
Para entender esto hay que entender qué son las banderas.
Cada valor siguiente de una bandera es el valor de la anterior multiplicado por 2. Es decir, 1, 2, 4, 8, 16, 32......... Así que si el valor es 33 significa que este valor contiene sólo 1 y 32. Del mismo modo, si el valor es 18, sólo puede estar compuesto por 16 y 2. Y el valor 3 sólo puede estar compuesto por 1 y 2.
Por lo tanto, las operaciones bitwise sólo comprueban si el valor comprobado está presente en la suma de banderas. Si comprueba si un número arbitrario está incluido en 18 obtendrá falso, excepto si comprueba los valores 2 y 16.
Sí, entiendo cómo trabajar con dígitos binarios.
De este código, por ejemplo, la función devuelve 3 .
(11&1)==1 ; 11==01 no, eso es falso, no funcionó.
Estaba escribiendo esto y pensé que quizás había entendido mal las operaciones.
& significa que convierto los valores decimales a binarios y hago una conjunción a nivel de bits.
== verdadero cuando el primer término es igual al segundo. ¿Es esto correcto?