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
¡Increíble conclusión! ¿Qué te hace pensar que con cualquier dígito, si ni siquiera "entiendes" lo que es un dígito en absoluto?
¡Increíble conclusión! ¿Qué te hace pensar que con cualquier dígito, si ni siquiera "entiendes" lo que es un dígito en absoluto?
Debo decir de inmediato que prefiero no participar en esas explicaciones, porque si no tienes nada que decir sobre el fondo, ¿para qué hablar?
Me gustaría dar las gracias a todos los profesionales por sus conocimientos.
Irtron, he elegido tu variante, me ha gustado mucho. Lo he corregido un poco para casos generales y lo he comprobado:
int CompararPrecio(double a, double b, double digit)
{
a -= b;
b = dígito;
si (a > b)
volver (1);
si (a < -b)
devolver (-1);
retorno (0);
}
Gracias.
double digit14=0.00000000000001;
doble dígito12=0,000000000001;
doble dígito8=0,00000001;
doble dígito4=0,0001;
doble dígito2=0,01;
que determinará la precisión requerida.
Para esta funcionalidad, funciona muy rápidamente.
Irtron, gracias de nuevo.
¡Increíble conclusión! ¿Qué te hace pensar que con cualquier dígito, si ni siquiera "entiendes" lo que es el dígito en absoluto?
Debo decir de inmediato que prefiero no participar en esas explicaciones, porque si no tienes nada que decir sobre el fondo, ¿para qué hablar?
Para qué meterse, acabo de leer lo que has escrito. Es evidente que tu comprensión se ve obstaculizada por "tu flagrante... (diga usted la palabra)"
VBAG, ¿por qué reinventar la rueda cuando hay una función NormalizeDouble() que compara dos números más rápido que ComparePrice()?
VBAG, ¿por qué reinventar la rueda cuando hay una función NormalizeDouble() que compara dos números más rápido que ComparePrice()?
Si puedes sugerir una moto similar o mejores soluciones alternativas, estaré encantado de utilizarlas.
Respetuosamente,
Vladimir
VBAG, ¿por qué reinventar la rueda cuando hay una función NormalizeDouble() que compara dos números más rápido que ComparePrice()?
Si puedes sugerir una rueda similar o mejores alternativas, estaré encantado de utilizarlas.
Respetuosamente,
Vladimir
2007.09.12 07:15:09 $CheckCompareDouble USDJPY,M5: CD: 20485, xNormalize: 51265
Conclusión:
La función CD compara dos números dobles , da la respuesta <, > o = con 14 decimales y trabaja 2 veces más rápido que simplemente realizando NormalizeDouble()(incluso sin la lógica para compararlos).
Muchas personas escriben que para comparar deben utilizar la función incorporada NormalizeDouble(). (esto es lo que recomiendan también los desarrolladores).
Por lo tanto, primero me gustaría definir: "¿Qué es NormalizeDouble()?", es decir, cómo funciona, cuál es su algoritmo.
Redondear un número de punto flotante a una precisión especificada.
...
No sé cómo se organiza el redondeo en MQL4 (pregunte a los desarrolladores), pero conozco un método estándar Redondear números de punto flotante a la precisión especificada:
Aquí, una función:
En esta función se puede ver que primero pasamos de un número real a un número entero, y luego volvemos a un número real.
Para comparar, basta con pasar a un número entero.
Por lo tanto, creo que la forma más rápida y fiable de comparar números reales es convertirlos en enteros.
Así será la comparación:
Todo esto puede formarse en una función y utilizarse. ¡Es un dolor de escribir, parece que está claro cómo hacer una función!
Creo que esta forma es más rápida que llamar a NormalizeDouble().
Para estar seguro, también puedes hacer que la función MathRound() devuelva un entero, ya que por defecto devuelve doble.
La forma más fácil de hacerlo es de esta manera
Entonces sólo se compararán números enteros, ¡y se comparan bien!
Creo que esta forma es la más correcta, ¿no?
Así que creo que la forma más rápida y fiable es convertir los números reales en enteros
La comparación sería así:
Creo que es la forma correcta de hacerlo, ¿no?
Toda la belleza del código de Irtron radica en su compacidad (no hay absolutamente nada extra - ¡incluso las variables se guardan!).
Y sugieres que deberíamos añadir dos operaciones más por cada operación de como mínimo.
¡Eso es una ventaja de velocidad!
No lo creo. Juzgue usted mismo