Funciones matemáticas

Las funciones matemáticas más populares suelen estar disponibles en todos los lenguajes de programación modernos, y MQL5 no es una excepción. En este capítulo examinaremos varios grupos de funciones listas para usar. Entre ellas se incluyen funciones de redondeo, trigonométricas, hiperbólicas, exponenciales, logarítmicas y de potencia, así como algunas especiales, como la generación de números aleatorios y la comprobación de la normalidad de los números reales.

La mayoría de las funciones tienen dos nombres: completo (con el prefijo «Math» y mayúsculas) y abreviado (sin prefijo, en minúsculas). Proporcionaremos ambas opciones: funcionan de la misma manera. La elección puede basarse en el estilo de formato de los códigos fuente.

Dado que las funciones matemáticas realizan algunos cálculos y devuelven un resultado como un número real, los posibles errores pueden llevar a una situación en la que el resultado sea indefinido. Por ejemplo, no se puede sacar la raíz cuadrada de un número negativo ni sacar el logaritmo de cero. En tales casos, las funciones devuelven valores especiales que no son números (NaN, «Not A Number»). Ya nos hemos enfrentado a ellos en las secciones Números reales, Operaciones aritméticas y De números a cadenas y viceversa. La corrección numérica y la ausencia de errores pueden analizarse mediante las funciones MathIsValidNumber y MathClassify (véase la sección Comprobación de la normalidad de los números reales).

La presencia de al menos un operando con valor NaN provocará que cualquier cálculo posterior que implique este operando, incluidas las llamadas a funciones, también dé como resultado NaN.

Para autoaprendizaje y material visual, puede utilizar como anexo el script MathPlot.mq5, que permite visualizar gráficas de funciones matemáticas con un argumento de los descritos. El script utiliza la biblioteca de dibujo estándar Graphic.mqh proporcionada en MetaTrader 5 (fuera del alcance de este libro). La de abajo es una muestra del aspecto que podría tener una curva sinusoidal hiperbólica en la ventana de MetaTrader 5.

Gráfico de seno hiperbólico

Gráfico del seno hiperbólico en la ventana de MetaTrader 5