Índice del artículo

Retomamos la serie sobre programación en MQL4. En esta tercera entrega pasamos a ver las principales funciones matemáticas de que disponemos en este lenguaje, así como algunas funciones adicionales para mostrar información en pantalla.

FUNCIONES MATEMÁTICAS

MathAbs (Valor Absoluto)
Esquema: double MathAbs(double value)
Ejemplo:

int a=-10;
a=MathAbs(a); // ahora a vale 10


MathCeil (Redondeo por exceso)
Esquema: double MathCeil(double x)
Ejemplo:

double a;
a=MathCeil(1.001); // dado que se redondea por exceso, a valdrá 2.0



MathFloor (Redondeo por defecto)
Esquema: double MathFloor(double x)
Ejemplo:

double a;
a=MathFloor(1.999); // dado que se redondea por defecto, a valdrá 1.0


MathRound (Redondeo normal: si la parte decimal es superior a 0.5, se redondea por exceso, en caso contrario por defecto)
Esquema: double MathRound(double x)
Ejemplo:

double a;
a=MathFloor(1.1); // al ser 0.1 menor que 0.5, a valdrá 1.0

double b;
b=MathFloor(1.8); // al ser 0.8 mayor que 0.5, a valdrá 2.0



MathMax (Máximo de una serie)
Esquema: double MathMax(double valor1, double valor2)
Ejemplo:

double a;
a=MathMax(50.0,1.0); // a toma el valor 50.0


MathMin (Mínimo de una serie)
Esquema: double MathMin(double valor1, double valor2)
Ejemplo:

double a;
a=MathMin(10.0,12.0); // a toma el valor 10.0


MathPow (Potencia de un número)
Esquema: double MathPow(double base, double exponente)
Ejemplo:

double a;
a=MathPow(5.0,2.0); // a toma el valor 25, es decir, 5 elevado a 2


MathSqrt (Raíz cuadrada de un número)
Esquema: double MathSqrt(double x)
Ejemplo:

double a;
a=MathSqrt(9.0); // a es igual a 3, raíz cuadrada de 9


MathLog (Logaritmo neperiano de un número)
Esquema: double MathLog(double x)
Ejemplo:

double a;
a=MathLog(10.0); // El valor de a es 2.30258509


MathExp (Potencia del número e)
Esquema: double MathExp(double d)
Ejemplo:

double a;
a=MathExp(1); // El valor de a es 2.7182818


MathMod (Resto de una división)
Esquema: double MathMod(double Numerador, double Denominador)
Ejemplo:

double a;
a=MathMod(5,2); // Si dividimos 5 entre 2, el resto que queda es a=1.0



MathRand (Generación de números aleatorios)
Esquema: int MathRand() (esta función no tiene argumentos)
Ejemplo: si bien por defecto utiliza el rango de enteros comprendidos entre 0 y 32767, podemos fijar el intervalo en el que queremos obtener los números de la siguiente forma:

MathRand()%6  // Devuelve enteros aleatoriamente entre 0 (valor 1) y 5 (valor 6).

MathRand()%6+5  // Devuelve enteros aleatoriamente entre 5 (valor 6) y 10 (valor 11)

(MathRand()%11+10)*(-1) // Obtenemos enteros aleatorios entre -10 y -20

(MathRand()%1001/1000.0) // Obtenemos valores entre 0 y 1 con tres decimales