Discusión sobre el artículo "Funciones en las aplicaciones MQL5"

 

Artículo publicado Funciones en las aplicaciones MQL5:

Las funciones son componentes de importancia crítica en cualquier lenguaje de programación. Entre otras cosas, ayudan a los desarrolladores a aplicar el principio DRY (don't repeat youself, no te repitas). El artículo analiza las funciones y su creación en MQL5 usando aplicaciones sencillas que enriquecen nuestros sistemas comerciales sin complicarlos.

Supongamos que necesitamos que el programa cierre todas las órdenes abiertas cuando la equidad alcance la reducción máxima, y que dicha tarea deberá realizarse en muchas partes del programa. En este caso, será mejor crear una función e incluir el código o la lógica necesaria para realizar la tarea, y luego llamarla en otras partes, en lugar de repetir el mismo código en todos los lugares necesarios.

Para responder a la pregunta de por qué necesitamos usar este tipo de función, deberemos observar los detalles del uso de funciones personalizadas:

  • Las funciones personalizadas permiten utilizar el método DRY (No te repitas): Crearemos una función que pueda realizar nuestra tarea una vez y luego la llamaremos en cualquier software adecuado.
  • Reutilización: Una vez creada una función, podremos reutilizarla en cualquier momento.
  • "Divide y vencerás": Usando funciones, también podemos dividir un problema grande en otros pequeños y resolver cada uno de ellos.
  • El código se vuelve más legible y comprensible: Cada elemento del código resolverá un problema específico.
  • Abstracción: Sin las funciones, necesitaríamos más líneas de código.
  • Encapsulación: Las funciones ayudan a proteger nuestro código y nuestros datos, haciendo además su gestión más sencilla.
  • Simplificación de la depuración: Las funciones hacen que sea mucho más fácil encontrar y corregir errores.

Autor: Mohamed Abdelmaaboud

 

útil

muchas gracias

espero encontrar lo mismo para punteros y temas relacionados

 
Mohamed Hassan Mohamed Hassan Alsherbiny #:

útil

muchas gracias

espero encontrar lo mismo para punteros y temas relacionados

Gracias por su amable comentario.

Intentaré hacerlo.

 

¡Gracias al autor por este artículo! Creo que es información muy útil para todos los principiantes para aprender MQL5 lenguaje de programación. Lo he añadido a mis favoritos.

Saludos, Vladimir.

Añadido: mi único deseo al publicar artículos en un foro en ruso es que todos los comentarios estén en ruso. Así que muchas veces más fácil de digerir la información. He aquí un ejemplo. En lugar de:

//función de adición
// el tipo de dato devuelto es un entero - el nombre de la función es add - los parámetros o argumentos son dos variables int val1 y val2
int add(int val1, int val2)
  {
   //cuerpo de la función que necesitamos que realice la función al llamarla
   //crear un resultado nueva variable a asignar por el resultado de la suma de val1 y val2
   int result = val1+val2;
   //Imprimir resultado en la pestaña de expertos
   Print(result);
   //valor de retorno
   return 0;
  }

sería genial ver la traducción de una vez:

//función de adición
//El tipo de dato devuelto es un entero. El nombre de la función es add. Los parámetros o argumentos son dos variables de tipo int val1 y val2.
int add(int val1, int val2)
   {
    //el cuerpo de la función que queremos que ejecute la función cuando sea llamada
    //crea una nueva variable de resultado a la que se asignará el resultado de sumar val1 y val2
    int result = val1+val2;
    //Imprimir el resultado en la pestaña Expertos
    Print(result);
    //valor de retorno
    return 0;
   }

Por cierto, cuando estaba traduciendo los comentarios al ruso, tuve un añadido más en forma de pregunta: ¿por qué return en esta función devuelve cero en lugar de resultado?

¿No es un error del autor?

 
MrBrooklin #:

Por cierto, cuando estaba traduciendo los comentarios al ruso, tuve un añadido más en forma de pregunta: ¿por qué return en esta función devuelve cero y no resultado?

¿No es un error del autor?

¡¡¡Señores programadores!!! ¿Se me ha secado tanto el cerebro que no entiendo la finalidad del operador return o sigue siendo un error del autor?

Saludos, Vladimir.

 
MrBrooklin #:

¡¡¡Señores programadores!!! Se me ha secado tanto el cerebro que no entiendo la finalidad del operador return o es un error del autor?

Saludos, Vladimir.

Hola Vladimir. Creo que ya te has convertido en un programador lo suficientemente experimentado como para adivinar que se trata simplemente de un error...

 
Alexey Viktorov #:

Hola Vladimir. Creo que ya se ha convertido en un programador con experiencia suficiente para adivinar que esto es sólo un error....

Buenos días, Alexey. Gracias, por supuesto, pero todavía estoy tan lejos de ser un programador experimentado como de Pekín. )) Me pregunto cómo dejan entrar en el foro artículos con semejantes errores.

Saludos, Vladimir.

 
MrBrooklin #:

Buenos días, Alexey! Gracias, por supuesto, pero todavía estoy tan lejos de ser un programador suficientemente experimentado como de Pekín. )) Sólo me pregunto cómo dejan entrar en el foro artículos con semejantes errores.

Saludos, Vladimir.

Vladimir, "suficientemente experimentado" no significa gurú. No es un halago.

La función está escrita y no depurada, por lo que tales errores son posibles debido a la falta de atención. Y lo que se pierden......... ¿Cuánto personal necesita para releer todos los artículos cuidadosamente y corregir tales errores? No es realista... Si detectas un error, lo comunicas, se corrige y todos contentos.

 
Alexey Viktorov #:

Vladimir, "suficientemente experimentado" no significa gurú. No es adulación.

La función está escrita y no depurado, por lo que tales errores son posibles debido a la falta de atención. Y lo que echan de menos......... ¿Cuánto personal necesitas para releer cuidadosamente todos los artículos y corregir tales errores? No es realista... Si detectas un error, lo comunicas, se corrige y todos contentos.

La cuestión es que los principiantes aprenden de estos artículos, incluidos los que tienen cero conocimientos, y no tienen oportunidad de evaluar si el código es correcto o no, sino sólo de tomarlo a fe. ))

Saludos, Vladimir.

 
MrBrooklin MQL5 lenguaje de programación. Lo he añadido a mis favoritos.

Saludos, Vladimir.

Añadido: mi único deseo al publicar artículos en un foro en ruso es que todos los comentarios estén en ruso. Así sería mucho más fácil digerir la información. He aquí un ejemplo. En lugar de:

sería genial ver una traducción de inmediato:

Por cierto, cuando estaba traduciendo los comentarios al ruso, tuve un añadido más en forma de pregunta: ¿por qué en esta función return devuelve cero y no result?

¿No es un error del autor?

¡Hola, Sr. Brooklyn!

Gracias por tu comentario y tu notificación. Este error ha sido editado y enviado para su publicación correcta.


Muchas gracias

 
Mohamed Abdelmaaboud #:

¡Hola, Sr. Brooklyn!

Gracias por su comentario y su notificación. Este error ha sido editado y enviado a publicar la correcta.

Muchas gracias

Buenas tardes, gracias por su respuesta.

Saludos, Vladimir.