English Русский 中文 Deutsch 日本語 Português
preview
Introducción a MQL5 (Parte 2): Variables predefinidas, funciones comunes y operadores de flujo de control

Introducción a MQL5 (Parte 2): Variables predefinidas, funciones comunes y operadores de flujo de control

MetaTrader 5Ejemplos | 9 julio 2024, 13:46
303 0
Israel Pelumi Abioye
Israel Pelumi Abioye

Introducción

Este es el segundo artículo de una serie diseñada para principiantes. En la primera parte, analizamos los fundamentos del trading algorítmico y los conceptos básicos de MQL5. En la segunda parte de esta serie, veremos algunos de los conceptos con más detalle y profundidad, avanzando gradualmente de lo simple hacia lo complejo para que todo quede claro incluso para aquellos que dan sus primeros pasos en la programación. Si algo le parece difícil o confuso, no dude en comentarlo y hacer sus preguntas. Juntos, haremos que se oigan todas las voces y todas las opiniones.

Aun así, el público objetivo de estos artículos serán los programadores principiantes. Por ello, repasaremos junto a usted todas las sutilezas de los fundamentos de MQL5 para que todos los razonamientos sean accesibles y comprensibles. Además, esperamos que estos materiales le animen a estudiar y profundizar en la programación MQL5. Sin embargo, debe comprender que no bastará con leer estos artículos, porque la programación es, ante todo, práctica.

En concreto, hoy estudiaremos las variables predefinidas, las funciones generales, los operadores de flujo de control, las operaciones aritméticas y lógicas y las operaciones de comparación. Conforme avancemos en el aprendizaje de los conceptos, llegaremos al tema principal de estos artículos: la creación de asesores, el motor del trading automatizado. Así, aprenderemos a dar vida a nuestras estrategias comerciales, ofreciendo a los programas automatizados la capacidad de tomar decisiones en nuestro nombre. 

Y, por supuesto, ¿de qué sirve una estrategia si no la probamos? Por lo tanto, también nos familiarizaremos con el simulador de estrategias, que nos permite evaluar la fiabilidad de los algoritmos usando datos históricos. Aquí es donde la teoría se encuentra con la realidad, y sin duda llegaremos a este importante aspecto del trading algorítmico. Así que prepárese para aprender nuevo material sobre el lenguaje MQL5. Y no olvide que no solo está aprendiendo a programar, sino que tiene la oportunidad de llevar sus operaciones al siguiente nivel con algoritmos.

En el presente artículo trataremos los siguientes temas:

  • Variables predefinidas
  • Funciones generales
  • Operaciones aritméticas y lógicas, operaciones de comparación
  • Operadores de flujo de control

Antes de entrar directamente en los detalles de la segunda parte, le sugiero que vea el vídeo en el que resumimos los conceptos clave tratados en el primer artículo. Este vídeo le ayudará a refrescar rápidamente sus conocimientos para que todos estemos "en la misma página" antes de pasar a temas más complejos de MQL5. Así que vamos a recordar lo que hemos pasado hasta ahora.




1. Variables predefinidas

¿Qué son las variables predefinidas?

En programación, las variables son como contenedores que guardan información. Las variables predefinidas, como su nombre indica, son contenedores especiales ya definidos por el propio lenguaje de programación. Estos contenedores se llenan con información específica sobre el estado actual del programa, el entorno comercial o las condiciones del mercado.

¿Por qué se llaman predeterminadas?

Porque el lenguaje de programación (en este caso, MQL5) los ha predefinido, es decir, les ha dado un significado determinado. No necesitamos crear o declarar estas variables, ya están listas para ser utilizadas cuando las necesitemos. Al iniciar un programa MQL5 (por ejemplo, un asesor, un script o un indicador personalizado), se iniciará un conjunto especial de variables predefinidas, que ya contienen información sobre cómo está el mercado en ese momento. Contendrá datos como los precios, los instrumentos y la hora, ofreciendo una instantánea del estado de las condiciones del mercado al inicio del programa, y aportando los datos necesarios para que el programa tome las decisiones correspondientes.

Analogía

Las variables predefinidas son como los cajones de un taller: tienen alguna funcionalidad, y el wizard les da nombres para que resulte más fácil entender lo que hace cada cajón. Ahora imagine que hay un cajón especial llamado «_Symbol». En concreto, conocemos los nombres de los símbolos financieros (EURUSD, GBPUSD).

El cajón "_Period" conoce los marcos temporales (Timeframe), casi como un reloj especial. Estos cajones están predeterminados porque ya están dotados de las capacidades correspondientes antes incluso de que pongamos manos a la obra. Y cuando necesitemos esta información al desarrollar un programa, podremos utilizar directamente campos predefinidos para obtener rápidamente la información que necesitemos.

Y no tendremos que dedicar tiempo a crearlos. Todo está disponible, listo para usar. Este conjunto de programas ya preparados acelerará el desarrollo de software, ya que no será necesario crear toda la funcionalidad necesaria desde cero.

1.1. Ejemplos de variables predefinidas en MQL5

1.1.1. _Symbol

En la programación relacionada con el trading en los mercados financieros, la variable _Symbol permite al programa saber exactamente con qué instrumento financiero está tratando. El símbolo comercial es una de las principales variables de nuestros programas. Ejemplos de símbolos comerciales son EURUSD, GBPJPY, etc. En este caso, además, la variable _Symbol indica a nuestro programa con qué símbolo está tratando, de forma que no tengamos que mencionarlo manualmente cada vez que el programa se encuentre con esos datos.

Debemos decir que el programa encuentra estos datos con bastante frecuencia, porque todas las decisiones comerciales las toma el programa para un símbolo concreto, que se indica con la variable _Symbol. Por lo tanto, podemos decir que la variable predefinida _Symbol es ciertamente importante para el funcionamiento de cualquier programa. Utilícela siempre y cree un código inteligente y flexible que navegue fácilmente por el siempre cambiante mundo de los símbolos comerciales.

Ejemplo:

void OnStart()
  {

   Alert(_Symbol);

  }

En este ejemplo, la función Alert utiliza la variable predefinida _Symbol para obtener el símbolo comercial actual y, a continuación, mostrar la alerta en el gráfico. Al ejecutar este código en la plataforma MetaTrader, se mostrará el símbolo comercial actual.

1.1.2. _Period

La variable predefinida _Period en MQL5 ofrece información sobre el marco temporal o el periodo del gráfico que se está considerando en ese momento. Sirve como referencia incorporada al marco temporal en el que funciona el algoritmo comercial.

Ejemplo:

void OnStart()
  {

// a sample Script that prints the current timeframe to the user
   Print(_Period);

  }

Al igual que _Symbol, _Period contribuye a la adaptabilidad de los algoritmos comerciales, permitiéndoles reaccionar con exactitud al marco temporal en el que se aplican. Es como un reloj que indica al programa en todo momento en qué franja horaria se encuentra.

Así, tenemos _Symbol para indicar el símbolo comercial y _Period para indicar el marco temporal que se negocia o analiza. Pero estas no son todas las variables importantes. Hay otras que ayudan mucho a la hora de desarrollar código.

1.1.3. _Digits

En el contexto de MQL5, la variable predefinida _Digits ofrece información práctica sobre el número de decimales en el precio del instrumento comercial actual. Este pequeño detalle marca una gran diferencia cuando hablamos de pips y puntos en el comercio de divisas. Un pip, o punto porcentual, representa el movimiento más pequeño del precio del tipo de cambio de un par de divisas. El número de decimales influye en la precisión de la estimación del movimiento del precio. A este respecto, la variable _Digits permite a los tráders acceder rápidamente a esta información.

El conocimiento preciso del valor correcto del número de decimales en la divisa del instrumento afecta a la corrección de todos los cálculos. Por ejemplo, si _Digits se establece en 4, significa que la precisión será de cuatro decimales, lo que resulta habitual en muchos pares de divisas.

Ejemplo:

void OnStart()
  {

// Use the "_Digits" predefined variable to get the number of decimal places
   int decimalPlaces = _Digits;
// Print the result to the console
   Print("Number of Decimal Places: ", decimalPlaces, " (Each movement is a pip!)")

  }

1.1.4. _Point

Otra variable predefinida importante en MQL5 para el comercio es _Point. Esta permite hacerse una idea del movimiento mínimo del precio del instrumento comercial actual. En esencia, es el menor incremento mensurable del precio: un punto. Los cambios en el precio de un instrumento se miden en pips. El valor de la variable _Point varía para los distintos instrumentos financieros y ofrece a los tráders una idea precisa de cuánto puede cambiar el precio en cada movimiento. Conocer los puntos, por ejemplo, resulta importante para fijar los niveles de stop loss y take profit en los programas. Esto es tan solo un ejemplo para explicar el concepto. Veremos más casos de uso posteriormente.

Ejemplo:

void OnStart()
  {

// setting sl by subtracting 15 pips from a ask price of 1.2222
   double Ask = 1.2222; // current market price
   double sl = Ask - (_Point * 15);
   Alert(sl); // Result will be 1.2207

  }

Así pues, hemos analizado las variables predefinidas fundamentales en MQL5, a saber, _Symbol, _Digits, _Point y _Period. Estas sirven como elementos fundamentales, ya que ofrecen información sobre el instrumento comercial actual, la exactitud de su precio, el movimiento mínimo y el marco temporal en cuestión. En general, claro que hay más variables predefinidas en MQL5, pero nos hemos centrado solo en algunas de ellas, las que tienen el mayor valor posible en las primeras etapas de aprendizaje del lenguaje. Y además, para simplificar las cosas, iremos pasando gradualmente de lo simple a lo complejo en todos los artículos de esta serie, así que no pierda de vista las publicaciones. 


2. Funciones generales

¿Cuáles son las funciones generales?

En MQL5, las funciones comunes son herramientas que los tráders y desarrolladores utilizan para automatizar diversos aspectos del comercio algorítmico. Estas funciones sirven para fines específicos, desde la visualización de alertas y la muestra de mensajes de depuración hasta la gestión de órdenes, el cierre de posiciones y la obtención de información sobre la cuenta comercial. Las funciones pueden considerarse como los componentes básicos que permiten una aplicación eficaz de la estrategia y la toma de decisiones. Aligeran la escritura de código, mejoran la aplicación de estrategias y facilitan un proceso comercial más dinámico y ágil.

Analogía

Las funciones pueden considerarse instrucciones específicas escritas en un lenguaje comprensible para el programa; al utilizar funciones, usted le dice a su programa lo que quiere que haga, y de esta forma puede realizar una gran variedad de tareas.

2.1. Ejemplos de funciones generales en MQL5

2.1.1. Alert

La alerta es una señal que nos avisa rápidamente cuando ocurre algo interesante o importante. Es la forma más rápida y eficaz de llamar nuestra atención sobre algo necesario. Para configurar la obtención de notificaciones, utilizamos la función Alert, que enviará mensajes directamente al gráfico mientras se ejecuta el programa cuando se cumpla una determinada condición.

Ejemplos:

void OnStart()
  {

   Alert("Discoveries Await!");

  }

Figura 1: Resultado después del inicio en MetaTrader5


Visto desde una perspectiva general, programar es como comunicarse en un lenguaje próximo a la expresión humana. Qué significa esto en relación con nuestra función Alert. Cuando usamos la función Alert en un programa MQL5, es como si le dijéramos al programa: "¡Envía una señal cuando suceda algo interesante!" Es como hablar con un vendedor en un lenguaje intuitivo y familiar, cosa que hace el proceso de programación accesible y divertido.

2.1.2. Imprimir

La función Print, como puede deducirse de su nombre, imprime mensajes. Cuando llamamos a la función Print, le estamos diciendo explícitamente al programa lo que debe imprimir, además de decirnos lo que ha ocurrido. Es como una pluma mágica que cuenta aventuras y las escribe en un diario. Con Print, las acciones del programa se convierten mágicamente en palabras y crean la narración de un acontecimiento.

Ejemplo:

void OnStart()
  {

   Print("Discoveries Await!");

  }

Figura 2: Resultado después del inicio en MetaTrader5

2.1.3. Comentario

La función Comment es una herramienta mágica que hace anotaciones llamativas a nuestro campo comercial. Con este "hechizo" Comment, es como si dejáramos pistas que nos ayudarán a nosotros y a otros usuarios. Este "hechizo" nos permite escribir notas y símbolos directamente en nuestros gráficos, convirtiéndolos en pergaminos que cuentan la historia de nuestras estrategias comerciales. Gracias a la función Comment, nuestros gráficos se vuelven informativos, nos ayudan a entender lo que está sucediendo y acompañan los momentos importantes con valiosos comentarios. En general, el objetivo directo de la función Comment es mostrar un mensaje en el gráfico de un instrumento comercial.

Ejemplo:

 {

  Comment("I love MQL5!");

 }

Figura 3: Resultado después del inicio en MetaTrader5

2.1.4. PlaySound

La función PlaySound en MQL5 es una herramienta útil que permite a los tráders incluir señales de audio en sus scripts y asesores. Esta función puede utilizarse para reproducir archivos de sonido en diversas situaciones, proporcionando a los tráders alertas o advertencias adicionales además de elementos visuales. Si tiene un archivo de sonido llamado alert.wav en el directorio Sounds, podrá reproducir este sonido cuando se cumpla una determinada condición en su script comercial.

Ejemplo:

void OnStart()
  {

// Check a condition
   if(5>4)
     {
      // Play the sound
      PlaySound("alert.wav");
     }
  }

alert.wav — nombre del archivo de sonido que se reproducirá. El archivo debe ubicarse en el directorio Sounds del terminal.

Con esto concluye la sección sobre funciones generales en MQL5. No obstante, resulta importante tener en cuenta que lo que hemos visto aquí supone solo una visión superficial de la amplia gama de herramientas disponibles para el trading algorítmico. Ya hemos abarcado Alert, Print, Comment y PlaySound, por nombrar solo algunas funciones de la amplia gama disponible.


3. Operaciones aritméticas y lógicas, operaciones de comparación

3.1. Operaciones aritméticas

Las operaciones aritméticas son operaciones matemáticas fundamentales que juegan un papel esencial en la programación, incluyendo MQL5 para el trading algorítmico. Estas operaciones incluyen la suma (+), la resta (-), la multiplicación (*), la división (/), el módulo (%), el operador de incremento (++) y el operador de decremento (--). Estas permiten a los desarrolladores realizar cálculos matemáticos en el código.

Suma (+) y resta (-)

 La suma y la resta son operaciones aritméticas básicas que permiten sumar o dividir cantidades.

Ejemplo:

void OnStart()
  {

   int num1 = 8;
   int num2 = 5;

//addition of values
   int sum = num1 + num2;
//subtraction of values
   int minus = num1 - num2;

   Alert("Sum = ",sum,", minus = ",minus);

  }


Multiplicación (*) y división (/)

Ejemplo:

void OnStart()
  {
   double price = 50.25;
   int quantity = 10;
   double totalCost = price * quantity; // Multiplication
   double averagePrice = totalCost / quantity; // Division

   Alert("totalCost = ",totalCost,", averagePrice = ",averagePrice);
  }


Módulo

El operador módulo, representado por el símbolo "%", es una operación matemática que devuelve el resto de la división de un número por otro. El operador módulo es especialmente útil en programación para tareas como iterar un determinado número de elementos, comprobar si hay números pares o impares o asegurarse de que los valores se mantienen dentro de un rango determinado.

Ejemplo:

void OnStart()
  {
  
   int num1 = 10;
   int num2 = 3;
   int remainder = num1 % num2; // The variable 'remainder' now holds the value 1

  }


Incremento y decremento

Los operadores "++" y "--" se conocen como operadores de incremento y decremento, respectivamente. Son operadores unarios, es decir, operan sobre un único operando.

Ejemplo:

void OnStart()
  {
  
   int x = 5;
   int y = 8;
   x++; // After this line, the value of 'x' is 6
   y--; // After this line, the value of 'y' is 7

  }

Nota: estos operadores se utilizan a menudo para actualizar valores variables en ciclos, contadores u otros escenarios en los que se desea aumentar o disminuir un valor en una cantidad fija.


3.2. Operaciones lógicas

Las operaciones lógicas en programación implican la evaluación de condiciones o expresiones que ofrecen como resultado un valor lógico (verdadero o falso). Estas operaciones son fundamentales para la toma de decisiones y la gestión de los programas. Los operadores lógicos se utilizan a menudo en sentencias condicionales (if, else, switch), ciclos y otras situaciones en las que es necesario tomar decisiones en función de determinadas condiciones. Son parte integrante de la creación de una lógica expresiva y flexible en la programación. 

En muchos lenguajes de programación (incluido MQL5) se acepta que "1" suele representar verdadero y "0" falso en el contexto de la lógica booleana.

Los operadores lógicos más comunes son:

Símbolo Operación Ejemplo Designaciones
|| OR lógico 
y > 2 || y < 7
El valor y es mayor que 2 o menor que 7
¡! NOT lógico
!y Si el operando es verdadero, el operador NOT lo convierte en falso.
&& AND lógico
y > 2 && y < 7 El valor y es mayor que 2 y menor que 7


3.3. Operaciones de comparación

Estas operaciones en programación realizan comparaciones entre valores para determinar la relación entre estos. Dichas operaciones suelen dar como resultado un valor booleano (true o false).

Los operadores de comparación más comunes son:

Símbolo Operación Ejemplo
> Comprueba si el valor de la izquierda es mayor que el de la derecha.
x > y
< Comprueba si el valor de la izquierda es menor que el de la derecha.
x < y
!= Comprueba la desigualdad de dos valores
x = y
== Comprueba si dos valores son iguales
x == y
>= Comprueba si el valor de la izquierda es mayor o igual que el valor de la derecha.
x >= y
<= Comprueba si el valor de la izquierda es menor o igual que el valor de la derecha.
x <= y

Nota: el signo igual ( = ) y el doble signo igual ( ==) tienen propósitos diferentes en programación y se usan en contextos distintos. 

El signo igual simple "=" es un operador de asignación que se usa para asignar un valor a una variable.

Por ejemplo:

int x = 10; // Assigns the value 10 to the variable x

El doble signo igual "==" es un operador de relación usado para comparar y verificar la igualdad entre dos valores.

Ejemplo:

int a = 5;
int b = 7;
bool isEqual = (a == b); // Checks if 'a' is equal to 'b'; 'isEqual' is false


4. Operadores de flujo de control

En el mundo de la programación, los operadores de flujo de control actúan como una brújula de navegación, indicando el curso de la ejecución del programa. Piense en su código como un barco que navega por las complejas aguas de los comandos y la lógica: en este viaje dinámico, los operadores de flujo de control actúan como una brújula, guiando el barco a través de puntos de decisión, ciclos y condiciones diversas. 

Como el capitán de un barco que navega por un mar embravecido, el programador usa operadores de flujo de control para indicar la dirección en la que debe moverse el código. Tanto si se trata de tomar decisiones basadas en condiciones específicas, como de analizar datos o realizar repetidamente determinadas acciones, estas afirmaciones son las herramientas que sirven al estratega para organizar un viaje con rumbo concreto a través de las complejidades de la lógica algorítmica.

¿Cómo funciona?

Imagine que tiene una mascota mágica a la que le encanta seguir sus instrucciones, pero necesita una forma de decirle qué hacer en diferentes situaciones. Esto es exactamente lo que podrá hacer con la ayuda del código y las palabras especiales: los operadores de flujo de control.

4.1. Operador If/Else

Usted le dice a su mascota: "Si (If) brilla el sol, vuela hacia el cielo, si no (else) quédate en el suelo y échate una siesta". Es decir: "Si pasa algo, haz esto, si no, haz lo otro".

Ejemplo:

 if(sun_is_shining)
     { Codey_fly_high_in_the_sky() }
 else
     { Codey_take_a_nap_on_the_ground() }

4.2. Ciclo While.

El ciclo while es una herramienta que sirve para realizar tareas repetitivas, iterar secuencias y dotar al código de un componente dinámico. Esto permite a los programas MQL5 adaptarse y reaccionar a las condiciones cambiantes, haciendo que las estrategias comerciales sean flexibles y sostenibles en el siempre cambiante mundo de los mercados financieros. Con este ciclo, le decimos a la computadora que siga ejecutando el comando mientras la condición sea cierta.

Sintaxis:

while (condición) { // Código a ejecutar mientras la condición sea verdadera }

Ejemplo:

void OnTick()
  {
// Initialization
   int numberOfTrades = 0;
// While loop condition
   while(numberOfTrades < 5)
     {
      // Magic within the loop
      Print("You can take a trade ", numberOfTrades + 1);
      // Counter increment
      numberOfTrades ++;
     }
// Magical finale
   Print("Trade complete!");
  }

Nota: más adelante, ofreceremos una explicación más detallada de la función OnTick.

El ciclo while funciona como una construcción que repite un bloque de código mientras una determinada condición siga siendo cierta. Ofrece la posibilidad de realizar tareas iterativas hasta que deje de cumplirse una condición determinada.

Vamos a analizar los elementos del ejemplo:

Inicialización: int numberOfTrades = 0;       

  • Inicializamos una variable de contador para llevar la cuenta de nuestras iteraciones.

Condiciones del ciclo while: while (numberOfTrades < 5)

  • El ciclo comprueba si numberOfTrades es inferior a 5. Si es verdadero, el código dentro del ciclo se ejecutará. Esta condición permite que el ciclo continúe mientras el número de operaciones sea inferior a 5.

La magia dentro del ciclo:  Print("You can take a trade ", numberOfTrades + 1);

  • Dentro del ciclo, realizamos alguna acción. En este caso, mostraremos el mensaje todo el tiempo mientras numberOfTrades < 5.

Incremento del contador: numberOfTrades++

  • El número de operaciones numberOfTrades aumenta con cada iteración, acercándonos a nuestro objetivo de 5.

Finalización del ciclo:  Print("Trade complete!");

  • Una vez que el ciclo finalice sus iteraciones, se imprimirá otro mensaje.

4.3. Ciclo For

El ciclo for hace posible la realización de tareas iterativas de forma concisa. Esto resulta especialmente útil cuando conocemos de antemano el número de iteraciones que deseamos realizar. Podemos utilizar un ciclo for para casi cualquier cosa para la que podamos utilizar un ciclo while, pero el ciclo for tiene algunas ventajas.

Ventajas:

  • Concisión: el ciclo for combina las declaraciones de inicialización, comprobación de condiciones e iteración en una sola línea, lo cual hace que el código sea más elegante.
  • Legibilidad: aumenta la claridad del código y facilita su comprensión de un vistazo.
  • Iteración controlada: controlando explícitamente la variable de ciclo, podemos determinar con precisión el número de iteraciones.

Sintaxis:

for (initialization; condition; iteration) { // Code to be executed in each iteration }

Ejemplo:

void OnTick()
  {
// For loop to iterate from 1 to 5

   for(int i = 1; i <= 5; i++)
     {
      // Magic within the loop
      //i represents number of trades
      Print("You can take a trade ", i);
     }
// Magical finale
   Print("Trade complete!");

  }

Explicación:

Inicialización (int i = 1;):

  • Inicializamos la variable i del ciclo para comenzar nuestras iteraciones con 1.

Condición (i <= 5;):

  • El ciclo continúa mientras se cumpla la condición (i es menor o igual que 5).

Iteración (i++):

  • Después de cada iteración, la variable i del ciclo se incrementará en 1.

La magia dentro del ciclo:  Print("You can take a trade ", i);

  • Dentro del ciclo, realizamos alguna acción. En este caso mostraremos el mensaje mientras numberOfTrades < 5.

Finalización del ciclo:  Print("Trade complete!");

  • Una vez que el ciclo finalice sus iteraciones, se imprimirá otro mensaje.


Conclusión

En este segundo artículo de nuestra serie sobre los fundamentos de MQL5, hemos repasado algunos conceptos básicos. Hemos estudiado las variables predefinidas, las funciones generales y el complejo entorno de las operaciones aritméticas, relacionales y lógicas, así como los operadores de flujo de control. Lo que hace nuestro viaje excepcional es su sencillez y su invitación a interactuar. Le invito a formular preguntas si algo no le ha quedado claro. Ya hemos terminado este capítulo, es hora de prepararse para el siguiente. Muy pronto comenzaremos a desarrollar nuestro propio robot comercial. Quédese con nosotros y continuemos nuestro viaje por el mundo de MQL5.


Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/13997

Marcado de datos en el análisis de series temporales (Parte 5): Aplicación y comprobación de asesores usando Socket Marcado de datos en el análisis de series temporales (Parte 5): Aplicación y comprobación de asesores usando Socket
En esta serie de artículos, presentaremos varias técnicas de marcado de series temporales que pueden producir datos que se ajusten a la mayoría de los modelos de inteligencia artificial (IA). El marcado dirigido de datos puede hacer que un modelo de IA entrenado resulte más relevante para las metas y objetivos del usuario, mejorando la precisión del modelo y ayudando a este a dar un salto de calidad.
Algoritmos de optimización de la población: microsistema inmune artificial (Micro Artificial immune system, Micro-AIS) Algoritmos de optimización de la población: microsistema inmune artificial (Micro Artificial immune system, Micro-AIS)
El artículo habla de un método de optimización basado en los principios del sistema inmune del organismo -Micro Artificial immune system, (Micro-AIS)-, una modificación del AIS. El Micro-AIS usa un modelo más simple del sistema inmunitario y operaciones sencillas de procesamiento de la información inmunitaria. El artículo también analizará las ventajas e inconvenientes del Micro-AIS en comparación con el AIS convencional.
Desarrollando un cliente MQTT para MetaTrader 5: metodología de TDD (Parte 5) Desarrollando un cliente MQTT para MetaTrader 5: metodología de TDD (Parte 5)
El presente artículo supone la quinta parte de la serie que describe las etapas de desarrollo de un cliente MQL5 nativo para el protocolo MQTT 5.0. Hoy describiremos la estructura de los paquetes PUBLISH: cómo establecemos sus banderas de publicación (Publish Flags), codificamos cadenas de nombres de temas y establecemos IDs de paquetes cuando es necesario.
Aprendiendo MQL5 de principiante a profesional (Parte II): Tipos de datos básicos y uso de variables Aprendiendo MQL5 de principiante a profesional (Parte II): Tipos de datos básicos y uso de variables
Continuamos la serie para principiantes. Hoy veremos cómo crear constantes y variables, además de registrar la fecha, los colores y otros datos útiles. Asimismo, aprenderemos a crear enumeraciones como días de la semana o estilos de cadena (sólido, punteado, etc.). Las variables y las expresiones son la base de la programación: se encuentran necesariamente en el 99% de los programas, por lo que comprenderlas es fundamental. Y así, si es usted nuevo en el mundo de la programación, este es un buen comienzo. Nivel de conocimientos de programación: muy básico, dentro del ámbito de mi artículo anterior (el enlace está al principio).