Discusión sobre el artículo "Introducción a MQL5 (Parte 5): Funciones de trabajo con arrays para principiantes"

 

Artículo publicado Introducción a MQL5 (Parte 5): Funciones de trabajo con arrays para principiantes:

En el quinto artículo de nuestra serie, nos familiarizaremos con el mundo de los arrays en MQL5. Este artículo ha sido pensado para principiantes. En este artículo intentaremos repasar conceptos complejos de programación de manera simplificada para que el material resulte comprensible para todos. Asimismo, exploraremos conceptos básicos, discutiremos diferentes cuestiones y compartiremos conocimientos.

En la quinta parte de nuestra serie, hablaremos de las funciones para trabajar con arrays. Este artículo va dirigido específicamente a principiantes. Intentaremos disipar mitos sobre las funciones de array y explicaremos cada línea de código de la forma más clara posible. No importa si el lector tiene experiencia en programación, quiero que todo el mundo sea capaz de aprender MQL5, así que me esforzaré para que el aprendizaje sea accesible para todos.

Lo principal de este artículo es la sencillez y la claridad, porque quiero ayudar a quienes se interesan por la programación. Aunque el tema pueda parecer complejo, aprenderemos cada función de array línea por línea para que el proceso de aprendizaje siga siendo interesante y gratificante. Trabajaremos juntos para resolver problemas y aprender a aplicar los conocimientos al trading algorítmico. Esto no es solo un artículo: es una invitación a empezar a aprender a programar.

Además, quiero crear un grupo de personas con ideas afines en el que programadores principiantes y experimentados puedan intercambiar ideas, hacer preguntas y resolver problemas juntos. El presente material no es simplemente un artículo, sino una invitación a la programación en equipo. Así que, ¡empecemos a aprender material nuevo y a disfrutar programando!


Autor: Israel Pelumi Abioye

 
Gracias por compartir sus conocimientos sobre la diferencia entre ArrayGetAsSeries y ArrayIsSeries que he estado tratando de averiguar por un tiempo. Me gusta su enfoque en la explicación de temas complejos de una manera amigable para principiantes respaldado con la analogía ... También estoy un poco confundido acerca de la diferencia entre ArrayCopy y ArrayInsert. Te agradecería que lo incluyeras en tu próximo artículo.
 
Oluwatosin Mary Babalola #:
Gracias por compartir sus conocimientos sobre la diferencia entre ArrayGetAsSeries y ArrayIsSeries que he estado tratando de averiguar por un tiempo. Me gusta su enfoque en la explicación de temas complejos de una manera amigable para principiantes respaldado con la analogía ... También estoy un poco confundido acerca de la diferencia entre ArrayCopy y ArrayInsert. Te agradecería que lo incluyeras en tu próximo artículo.
Hola Oluwatosin, tomamos nota de tu solicitud.
 
Oluwatosin Mary Babalola #:
Gracias por compartir sus conocimientos sobre la diferencia entre ArrayGetAsSeries y ArrayIsSeries que he estado tratando de averiguar por un tiempo. Me gusta su enfoque en la explicación de temas complejos de una manera amigable para principiantes respaldado con la analogía ... También estoy un poco confundido acerca de la diferencia entre ArrayCopy y ArrayInsert. Te agradecería que lo incluyeras en tu próximo artículo.

¿Conoces el libro de programación MQL5? Específicamente, cubre funciones de "seriación" (dirección) de arrays, así como copias e inserciones - aquí hay un extracto:

A diferencia de la función ArrayInsert, la función ArrayCopyno desplaza los elementos existentes de la matriz de recepción, pero escribe nuevos elementos a las posiciones especificadas sobre los antiguos.

Ambas secciones contienen programas de ejemplo.

MQL5 Book: Common APIs / Working with arrays / Timeseries indexing direction in arrays
MQL5 Book: Common APIs / Working with arrays / Timeseries indexing direction in arrays
  • www.mql5.com
Common APIs - MQL5 Programming for Traders - MetaTrader 5 algorithmic/automatic trading language manual
 
Oluwatosin Mary Babalola #:
Gracias por compartir sus conocimientos sobre la diferencia entre ArrayGetAsSeries y ArrayIsSeries que he estado tratando de averiguar por un tiempo. Me gusta su enfoque en la explicación de temas complejos de una manera amigable para principiantes respaldado con la analogía ... También estoy un poco confundido acerca de la diferencia entre ArrayCopy y ArrayInsert. Te agradecería que lo incluyeras en tu próximo artículo.

Diferencia entre ArrayInsert y ArrayCopy:

La principal diferencia entre "ArrayInsert()" y "ArrayCopy()" es cómo manejan los elementos que ya existen. "ArrayCopy()" puede modificar la matriz original sustituyendo elementos de otra matriz por los que se encuentran en una posición determinada. Por otro lado, "ArrayInsert()" preserva la estructura y secuencia de la matriz moviendo los elementos actuales para hacer sitio a los nuevos. Esencialmente, "ArrayInsert()" proporciona un método versátil para manipular arrays en MQL5, similar a añadir un nuevo elemento a una secuencia sin causar que ninguna otra pieza se mueva. Comprender esta distinción le permite manipular con precisión las operaciones de matrices en sus actividades de programación.

Tenga en cuenta que para matrices estáticas, si el número de elementos a insertar es igual o superior al tamaño de la matriz, "ArrayInsert()" no añadirá elementos de la matriz de origen a la matriz de destino. En tales circunstancias, la inserción sólo puede tener lugar si comienza en el índice 0 de la matriz de destino. En estos casos, la matriz de destino se sustituye completamente por la matriz de origen.

Analogía

Imagina que tienes dos conjuntos de bloques de construcción (matrices), cada uno con su propia disposición. Supongamos que desea combinar estos conjuntos sin alterar las estructuras existentes. "ArrayInsert()" es como una herramienta mágica que te permite insertar sin problemas nuevos bloques de un conjunto en un lugar específico del otro conjunto, ampliando la colección total.

Ahora, comparando "ArrayInsert()" con "ArrayCopy()": Cuando utilizas "ArrayCopy()", es como si reorganizaras el conjunto original sustituyendo algunos bloques por otros nuevos de otro conjunto. Por otro lado, "ArrayInsert()" es más delicado. Asegura que el orden existente se mantenga intacto desplazando los bloques para hacer sitio a los nuevos. Es como tener un asistente meticuloso que sabe exactamente dónde colocar cada bloque, manteniendo el diseño original del conjunto.

Para los conjuntos estáticos (matrices), hay una regla importante. Si el número de bloques nuevos es excesivo para el conjunto, "ArrayInsert()" no los introducirá a la fuerza. Sin embargo, iniciar el proceso de inserción desde el principio del conjunto (índice 0) puede reemplazar efectivamente todo el conjunto con los nuevos bloques.