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
VBAG echa un vistazo a este script
precio = 1,1111
ma = 1,11110001
Cuando se normaliza a 8 dígitos, el precio es correcto. La normalización a menos dígitos dará como resultado igual - incorrecto. Así se consigue la máxima precisión.
En general, sin normalizar ma > precio es también lo correcto. ¿Por qué conseguir la máxima precisión cuando ya está ahí, y ya se sabe que es mayor de lo que se puede conseguir?
La normalización a 9 dígitos no funciona. Es como si el precio tuviera 9 dígitos y el indicador 8 o viceversa (no lo recuerdo), en definitiva está cubierto por el misterio de lo desconocido.
Sí, lo más probable es que esté en el propio NormalizeDouble que sólo cuenta hasta 8 dígitos. Te digo que es una función ridícula, no importa cómo lo hagas.
Y en forma simplificada funciona tan rápido como ComparePrice:
Y en su forma original, es sólo una canción :)
¿O también sirve ComparePrice para comparar cualquier número con cualquier precisión?
¿O también sirve ComparePrice para comparar cualquier número con cualquier precisión?
Por supuesto. Si se conoce la precisión, como es el caso de los valores comerciales. Punto fijo.
Sólo hay que explicarlo a numerosos autores de temas "sobre comparación de dobles".
Por eso propuse una forma _universal_ (pero lejos de ser óptima) de comparar.
Y funciona. De forma lenta pero fiable. Y en todos los casos.
Y cuando aparezca un tema "Sobre la optimización de la comparación de dobles" podremos desarrollarlo ;)
¿Es necesario normalizar los precios en algún lugar?
En la documentación está escrito que los precios de las solicitudes comerciales deben estar normalizados.
En la rama "Historial no normalizado y posiciones de apertura ", dice lo siguiente:
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.
Dígito=0 causará problemas.
Cualquier dígito causará problemas. No entiendo qué es el dígito y qué sentido tiene la modificación.
Además, la función es más lenta que una sola llamada aNormalizeDouble().
¿Cuál es el tema de comparar funciones con diferente funcionalidad? Una se simplificó (sin embargo, es inviable), ahora es NormalizeDouble.
¿Qué y a quién quieres demostrar con una actitud tan descarada... (inserte la palabra que desee)?