- El valor absoluto de un número
- Máximo y mínimo de dos números
- Funciones de redondeo
- Resto tras la división (operación módulo)
- Potencias y raíces
- Funciones exponenciales y logarítmicas
- Funciones trigonométricas
- Funciones hiperbólicas
- Prueba de normalidad para números reales
- Generación de números aleatorios
- Control de la codificación endian de números enteros
Funciones exponenciales y logarítmicas
El cálculo de funciones exponenciales y logarítmicas está disponible en MQL5 utilizando la sección correspondiente de la API.
La ausencia del logaritmo binario en la API, que suele ser necesario en informática y combinatoria, no supone ningún problema, ya que es fácil de calcular, previa solicitud, mediante las funciones de logaritmo natural o decimal disponibles.
log2(x) = log(x) / log(2) = log(x) / M_LN2
|
Aquí, log y log10 son funciones logarítmicas disponibles (basadas en e y 10, respectivamente), M_LN2 es una constante integrada igual a log(2).
La siguiente tabla enumera todas las constantes que pueden ser útiles en los cálculos logarítmicos.
Constante |
Descripción |
Valor |
---|---|---|
M_E |
e |
2.71828182845904523536 |
M_LOG2E |
log2(e) |
1.44269504088896340736 |
M_LOG10E |
log10(e) |
0.434294481903251827651 |
M_LN2 |
ln(2) |
0.693147180559945309417 |
M_LN10 |
ln(10) |
2.30258509299404568402 |
En el archivo MathExp.mq5 se recogen ejemplos de las funciones que se describen a continuación.
double MathExp(double value) ≡ double exp(double value)
La función devuelve el exponente, es decir, el número e (disponible como constante predefinida M_E) elevado a la potencia especificada value. En caso de desbordamiento, la función devuelve inf (una especie de NaN para el infinito).
PRT(MathExp(0.5)); // 1.648721270700128
|
double MathLog(double value) ≡ double log(double value)
La función devuelve el logaritmo natural del número introducido. Si value es negativo, la función devuelve -nan(ind) (NaN «valor indefinido»). Si value es 0, la función devuelve inf (NaN «infinito»).
PRT(MathLog(M_E)); // 1.0
|
La última línea utiliza la implementación del logaritmo binario a través de MathLog:
double Log2(double value)
|
double MathLog10(double value) ≡ double log10(double value)
La función devuelve el logaritmo decimal de un número.
PRT(MathLog10(10.0)); // 1.0
|
double MathExpm1(double value) ≡ double expm1(double value)
La función devuelve el valor de la expresión (MathExp(value) - 1). En cálculos económicos, la función se utiliza para calcular el interés efectivo (ingreso o pago) por unidad de tiempo en un esquema de interés compuesto cuando el número de periodos tiende a infinito.
PRT(MathExpm1(0.1)); // 0.1051709180756476 |
double MathLog1p(double value) ≡ double log1p(double value)
La función devuelve el valor de la expresión MathLog(1 + value), es decir, realiza la acción contraria a la función MathExpm1.
PRT(MathLog1p(0.1)); // 0.09531017980432487 |