Características del lenguaje mql5, sutilezas y técnicas - página 232
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Explicación de la definición de DBL_EPSILON:
Esta es una mala explicación, porque
Otra forma de explicar el significado de DBL_EPSILON:
DBL_EPSILON es simplemente el tamaño del hueco entre dobles consecutivos en [1,2).
https://www.exploringbinary.com/the-spacing-of-binary-floating-point-numbers/
https://en.wikipedia.org/wiki/Machine_epsilon
Para comprender mejor DBL_EPSILON, considere la posibilidad de incrementar un contador de coma flotante:
Si el valor inicial del contador es 1,0, el tamaño de paso (épsilon) del contador será 2,220446049250250313e-16 (DBL_EPSILON) ≈ 2 en el decimosexto decimal.
/* 1.0000000000000002 1.0000000000000004 1.0000000000000007 1.0000000000000009 1.000000000000001 1.0000000000000013 1.0000000000000016 1.0000000000000018 1.000000000000002 1.0000000000000022 */
Si el valor inicial del contador es 1024, el tamaño de paso (é psilon) del contador será 2,2737363675443232321e-13 (1024 * DBL_EPSILON) ≈ 2 en el decimotercer decimal.
/* 1024.0000000000002 1024.0000000000005 1024.0000000000007 1024.000000000001 1024.0000000000011 1024.0000000000014 1024.0000000000016 1024.0000000000018 1024.000000000002 1024.0000000000023 */
Si el valor inicial del contador es 4503599627370496 (2^52), el tamaño de paso del cont ador será 1,0 (2^52 * DBL_EPSILON)= 1. En este rango, un doble se comporta como un contador de enteros, no se podrían representar fracciones.
/* 4503599627370497.0 4503599627370498.0 4503599627370499.0 4503599627370500.0 4503599627370501.0 4503599627370502.0 4503599627370503.0 4503599627370504.0 4503599627370505.0 4503599627370506.0 */
Puedes ver que los números más pequeños tienen espacios más pequeños entre ellos, y los números más grandes tienen espacios más grandes entre ellos.
Por lo tanto, DBL_EPSILON es el porcentaje de error relativo. relativo significa relativo a la magnitud del número.
a 1,0, el error absoluto = 1 * 2,2204460492503131e-016 (DBL_EPSILON).
en d, el error absoluto ≈ d * DBL_EPSILON
(DBL_EPSILON es un tipo de referencia a 1,0, algo así como el tipo de interés anual del banco, y es igual a 2^-52).
Una nota al margen: si intenta imprimir 1024.0000000000003, imprimirá 1024.0000000000002 en su lugar (redondeando al número representable más cercano), porque 1024.0000000000003 no es un número representable (número fp inexistente).
Esto se denomina error de representación:
Los números representables anteriores/siguientes se alcanzan mediante la manipulación de bits (enum como antes: DoubleAdvance(value, -1)) o utilizando DBL_EPSILON:
DBL_EPSILON se utiliza principalmente para estimar (o corregir) errores de redondeo fp después de operaciones matemáticas sobre dobles (análisis numérico):
|resultado verdadero - resultado fp| / resultado verdadero <= DBL_EPSILON
¿Se desactiva la llamada OnTester() en el probador de MT5 cuando hay un algoritmo de optimización genética y NO un criterio de optimización personalizado?
Creo que no. Pero me gustaría... Preferiblemente sin config parsing.
PD. ¡¡¡CARAUL!!! ¡Todo se ha ido! En cada pasada de optimización (debería/no debería) - se llama a OnTester(), ¡lo que puede aumentar mucho el tiempo total de optimización!
Ayuda quien pueda... )))))
En mi búsqueda me encontré con una interesante función no documentada
puede ocultar comentario de entrada para un cuadro de diálogo
post original aquí
https://www.mql5.com/ru/forum/1271#comment_9019
En mi búsqueda me encontré con una interesante función no documentada
puede ocultar el comentario de entrada de un cuadro de diálogo
post original aquí
https://www.mql5.com/ru/forum/1271#comment_9019
En Tester, la tabla Historial sólo se sobrescribe en dos casos.