Autoaprendizaje del lenguaje MQL5 desde cero - página 22

 
Реter Konow:
De hecho, la condición anterior es siempre verdadera, como 2 = 2. Por eso el if (el operador de condición) no funciona aquí y el compilador generará una advertencia para este código.

¡Hola Peter! El compilador no ha generado ninguna advertencia.

Saludos, Vladimir.

 
MrBrooklin:

Debo haber entendido algo mal, ya que hay una reacción de este tipo.

Escribí la siguiente condición en el script New6.mq5: "Para las órdenes pendientes Buy Stop y Sell Stop, aplique la directiva #define en lugar de la entrada. Nos permitirá especificar en el código del script los tipos necesarios de órdenes pendientes, pero no se mostrarán en los parámetros de entrada del script cuando se ejecute. Establezcamos las variables que definen los tipos de órdenes pendientes orderType1 y orderType2. Llamemos a estas variables "BUY_STOP" y "SELL_STOP".

Por favor, aconséjeme qué he hecho mal en la aplicación de esta condición.

Saludos, Vladimir.

Todo está en orden. Esencialmente no hay ninguna condición, al igual que no hay ninguna condición en la expresión si (2 == 2). Hay una lógica común y corriente en este caso. :)
 
MrBrooklin:

Debo haber entendido algo mal, ya que hubo tal reacción.

Sinceramente, Vladimir.

El respetado miembro del foroKoldun Zloy le dio una respuesta detallada. Hubo un error en la macro. ¿Por qué empezó a utilizar macros en primer lugar? ¿Por qué los necesita en esta tarea? Las macros son una poderosa herramienta con la que puedes matarte fácilmente. Pero lo primero que hay que hacer es empezar a usar macros.

 
MrBrooklin:

¡Hola Peter! El compilador no ha generado ninguna advertencia.

Saludos, Vladimir.

Supuestamente, debería haber generado una advertencia que le indicara que comprobara la condición. (El triángulo amarillo en la ventana de compilación).
 
Реter Konow:
Todo está bien. De hecho, no hay ninguna condición ya que no hay ninguna condición en la expresión if (2 == 2). Esta es una lógica común y corriente. :)

Entiendo que para los expertos en programación mis meteduras de pata parezcan torpes. ¿Quizás me he equivocado en la condición de escribir código para mí?

Sinceramente, Vladimir.

 
Vasiliy Sokolov:

Usted, respetado miembro del foroKoldun Zloy dio una respuesta detallada. El error está en la macro. ¿Por qué empezó a utilizar macros? ¿Por qué los necesita en esta tarea? Las macros son una poderosa herramienta con la que puedes matarte fácilmente. Pero lo primero que hay que hacer es empezar a usar macros.

Por lo tanto, aún no lo he resuelto, y hay algunas cosas en las que trabajar.

Saludos, Vladimir.

 
Реter Konow:
La idea es dar un aviso para que se compruebe la situación. (El triángulo amarillo en la ventana de compilación).

No debería, hay un valor a la derecha y una sustitución a la izquierda, así que es correcto.

 
MrBrooklin:

Entiendo que para los expertos en programación mis meteduras de pata parezcan torpes. ¿Quizás me he equivocado en la condición de escribir código para mí?

Sinceramente, Vladimir.

Has empezado tus estudios de forma equivocada. ¿Entiendes todo lo que está escrito en el código? Todos los operadores, ¿palabras clave?

Una pregunta de seguimiento sobre el código:

¿Qué significan estas líneas?

if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());
 
Реter Konow:
Supuestamente, debería haber generado una advertencia que le indicara que comprobara la condición. (El triángulo amarillo en la ventana de compilación).

Comprobado unas cuantas veces más - el compilador no da nada.

Saludos, Vladimir.

 
MrBrooklin:

Entiendo que para los expertos en programación mis meteduras de pata parezcan torpes. ¿Quizás me he equivocado en la condición de escribir código para mí?

Sinceramente, Vladimir.

Esta condición no es necesaria en absoluto. ¿Qué papel desempeña? ¿Puede explicarlo?
Razón de la queja: