Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1074

 
Artyom Trishkin:

Y se imprimen los valores numéricos de las banderas. La bandera total debe contener todos los valores de las banderas deseadas. ¿Y a qué equivale OBJ_PERIOD_H3-1? Si la suma de todas las banderas lo permite, entonces sí, pero si no, entonces hay un error en alguna parte.

No... El otro día estuve hablando sobre las banderas en un hilo y experimentando con líneas como esta

Print("summa_flag = ", 1 | 2 | 4);

suma 7

а

Print("summa_flag = ", 1 | 2 | 3);

sólo da 3.


Añadido:

Mira, la bandera 4... la suma antes de que sea 3.

bandera 16... la suma antes de que sea 15.

Y así sucesivamente.

 
Alexey Viktorov:

No... El otro día estuve hablando sobre las banderas en un hilo y experimentando con líneas como esta

suma 7

а

sólo da 3

Naturalmente. Eso es.

Cada bandera sucesiva tiene, debe tener un valor doble que la anterior.

Y al introducir 3 en lugar de 4, has duplicado las dos primeras banderas: 1 y 2
 
Alexey Viktorov:
Por supuesto que sí. Sólo una línea corta. Sólo hay que determinar cuál es la TF más antigua de la lista de banderas.

A nosotros nos funciona. ¡Una gran solución!

 
Anzhela Sityaeva:

A nosotros nos funciona. Una gran solución.

Esto es sólo si quieres que todo sea visible ANTES del plazo más alto. En cuanto quieras eliminar alguno de los anteriores al más antiguo, no funcionará con ese diseño.

ZS, lo siento, ¿es "usted", "nosotros", "nuestra majestad"?

 
Artyom Trishkin:

Esto es sólo si quieres que todo sea visible ANTES del plazo más antiguo. En cuanto se quiera eliminar alguno de los que están antes del más veterano, nada funcionará con una construcción así.

Artem, todo se arreglará.

Por ejemplo, hay que mostrar todos los inferiores excepto M15...

Entonces lo será.

ObjectSetInteger(ch_id, name, OBJPROP_TIMEFRAMES, OBJ_PERIOD_H3-1-OBJ_PERIOD_M15);
 
Alexey Viktorov:

Artem, todo se arreglará.

Por ejemplo, hay que mostrar todos los inferiores excepto M15...

Eso sería...

Así que... lo que estoy diciendo es...

Continúa - y muestra lo que ocurre si necesitas mostrar todos los máximos hasta W1 y un mínimo...

 
Artyom Trishkin:

ZS, lo siento, ¿es 'usted', 'nosotros', 'nuestra majestad'?

SÍ. Somos dos).

 
Alexey Viktorov:

SÍ. Al fin y al cabo, somos dos)).

Estás confundiendo tu segundo "nosotros" - has mostrado una forma que funciona sólo en una situación - sólo cuando necesitas mostrar TODO: desde, y hasta..., y nada más.

Y entonces hay una pérdida de flexibilidad, y de nuevo hay que enumerar, pero ya banderas innecesarias

 
Artyom Trishkin:

Esto es sólo si quieres que todo sea visible ANTES del plazo más antiguo. Una vez que se quiere eliminar cualquiera de los anteriores, entonces nada funcionará con tal diseño.

ZS, lo siento, ¿es "tú", "nosotros" nuestra majestad?

No, por supuesto, es que no soy el único aquí, y la mayor parte de la comunicación está en mí... Los socios no son aficionados a las salas de chat, etc. ....

 
Artyom Trishkin:

Así que... lo que quiero decir es...

Continúa - y muestra lo que ocurre si tenemos que mostrar todas las altas hasta W1 inclusive y una baja...

Aclarar. No lo entiendo.

Artem, me ocupé de las banderas por sugerencia tuya. Y he recalculado todos ellos no sólo por software, sino también en una calculadora. Te aseguro que todo funcionará. Sólo tienes que entender cuánto tienes que restar a cada bandera para dejar sólo las que quieres.

Pues calcula cuánto tienes que restar a 32 para que quede la suma de las banderas 1|2|8.

De hecho, la propia bandera 32 no contiene ninguna de las banderas de la lista. Pero si le restas 1, la suma de banderas es 1|2|4|8|16 = 31

Por lo tanto, si tenemos la bandera 32 que no es necesaria, restarle 1 y restar la suma de 4|16 a 31 y tendremos sólo 1|2|8