![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Las herramientas. Háblanos de las herramientas, no seas vergonzoso, aprendí de RaptorUK, dabbler, y los comentarios de SDC el otro día. Así que, por favor, cuéntanos .
:D
Parece que la respuesta a tu pregunta es Molanis . . . http://www.molanis.com/forum/viewtopic.php?f=2&t=1450
Interesante, al igual que esto
https://www.mql5.com/en/forum/126224
¡Ayuda a conocer el trasfondo de lo que estamos hablando!
He estado evitando este hilo porque hay mucho malestar en todos los lados. Me parece innecesario.
Tal vez el OP debe iniciar un nuevo hilo para que los encuestados no tienen que leer 200 mensajes con 100% de precisión para averiguar lo que está pasando.
Y tal vez todo el mundo podría dejar de insultar a la gente.
RaptorUK:
Day(), DayOfWeek(), TimeDay() y TimeDayOfWeek() parecen funcionar correctamente en el Straegy Tester (build 427) . . . ¿realmente querías usar Day() en tu código o deberías haber usado DayOfWeek() en tu código? el primero, Day() da un valor de 0 - 31, el segundo DayOfWeek() da un valor de 0 - 6 el domingo es 0
Interesante, al igual que esto
https://www.mql5.com/en/forum/126224
¡Ayuda a conocer el trasfondo de lo que estamos hablando!
He estado evitando este hilo porque hay mucho malestar en todos los lados. Parece tan innecesario.
¡ Dooh! He revisado ese código y no he visto ese problema, y he utilizado esas mismas funciones en mi propio código. Bien visto :-)
Otra cosa que todos no notamos, bueno yo si lo note pero en medio de este hilo loco, no me di cuenta que nadie lo había mencionado, el OP posteo esto:
No puedes encadenar todos esos || || || || && && || && como una condición sin usar algunos paréntesis para descomponerla.
Mirando la última parte:
No creo que eso haga que la condición sea verdadera cuando las partes anteriores sean falsas, a menos que se usen algunos paréntesis para separarla del resto de la condición.Otra cosa que todos no notamos, bueno yo si lo noté pero en medio de este loco hilo, no me di cuenta que nadie lo había mencionado, el OP posteó esto:
No se puede encadenar todos esos || || || || && && || && como una condición sin usar algunos paréntesis para descomponerla.
Bien, tuve que comprobar esto ahora porque nunca escribí un código así y lo hice funcionar como pensaba, así que aquí hay un simple script para probarlo.
Reemplacé cada comparación en la condición original con las correspondientes comparaciones de enteros para facilitar la lectura/prueba/debug. Todo es falso excepto la parte después del último operador ||.
Eso da la condición false que me dice:
Tal y como estaba colocado en el código del OP, nunca habría hecho que la condición se convirtiera en verdadera aunque Day() hubiera sido sustituido por DayOfWeek() pero si ponemos unos paréntesis ahí ....
Ahora funciona y la condición se convierte en verdadera.Bien, tuve que comprobar esto ahora porque nunca escribí un código así y lo hice funcionar como pensaba, así que aquí hay un simple script para probarlo.
Buen trabajo. También me di cuenta de que las reglas de precedencia MQL4 ...
https://docs.mql4.com/basis/operations/rules
tienen OR lógico más alto que AND lógico, en desacuerdo con K & R (2ª ed)
¡Pero al igual que usted, yo nunca realmente utilizar estos en gran medida, yo sólo poner paréntesis alrededor de las cosas o el uso de líneas separadas para que pueda entender mi propio código!
Ahora funciona y la condición se convierte en verdadera.
Y aquí está mi contribución (script de prueba) ...
Que hace esto ...
Mostrando claramente que las pruebas lógicas OR se hacen primero (mayor prioridad) y luego se hacen las pruebas lógicas AND ... tal como dice la documentación de MQL4 de hecho :-)