Esto parece ser un reemplazo completo para ceil(),round(),floor(), que da 3-4 veces la ventaja de velocidad.
Parece más o menos decente. He ejecutado su _round(), recuerde que muestra la función compare_prices(). Entonces, hay un script que busca patrones de precios, obviamente compare_prices() es llamado allí muy activamente. Resultados:
comparar_precios con la ronda estándar y con la comprobación de la diferencia de puntos = 13 seg comparar_precios con la ronda estándar y con la comprobación de la diferencia de puntos desactivada = 19 seg comparar_precios con su _ronda y con la comprobación de la diferencia de puntos desactivada = 15 seg comparar_precios con su _ronda y con la comprobación de la diferencia de puntos activada = 13 seg
La conclusión es que la mayor parte de las llamadas en las tareas del mundo real terminan en la comprobación del punto. El tiempo es el mismo (cuando la comprobación de las diferencias en el punto está activada), pero el rango de trabajo ha bajado de 1,7*10^308 a unos 2*10^9 (o ^19 si se utiliza el largo) (aunque se necesita una gran ronda como quinta rueda en un carro). No sé, tal vez usted utiliza estas funciones exóticamente de alguna manera ...
Parece que Nikolai tenía razón sobre los nerds )).
Personalmente, no vi ningún ataque personal allí. Y sí que tienes muchas letras en tus posts, pero todo es off-topic, parece que discutes por discutir.
Sí, estoy de acuerdo, es una pérdida de tiempo - es un hecho.
Entonces, ¿por qué escribiste aquí en primer lugar? Pensé que era para discutir, discutir. Bueno, no seas tan poco razonable. Pero no te relajes, tienes todo un campo sin arar delante de ti https://www.mql5.com/ru/docs/math. Buena suerte))
Parece más o menos decente. He ejecutado su _round(), recuerde que muestra la función compare_prices(). Entonces, hay un script que busca modelos de precios, obviamente compare_prices() es llamado allí muy activamente. Resultados:
Así que la conclusión es que la mayor parte de las llamadas en las tareas reales terminan en la comprobación del punto. El tiempo es el mismo (cuando la comprobación de las diferencias en el punto está activada), mientras que el rango de trabajo ha bajado de 1,7*10^308 a cerca de 2*10^9 (o ^19 si se utiliza el largo) (aunque se necesita una gran ronda como quinta rueda de un carro). No sé, tal vez usted utiliza estas funciones exóticamente de alguna manera ...
ZS:
Envuelve la x entre paréntesis.
No he podido entender - ¿en qué casos es necesario utilizar esta función:?
// 0 - first is greater than second// 1 - equal// 2 - second is greater than firstuchar compare_prices(double first, double second)
{
if(first - second >= _Point)
return0;
if(second - first >= _Point)
return2;
first = round(first/_Point);
second = round(second/_Point);
if(first > second)
return0;
if(first < second)
return2;
return1;
}
por qué no usarsimplemente if (first>second), o si necesitas un resultado (0,1 o 2) :
#define _compare_prices(f,s) (f>s)?0:(f<s)?2:1;
Porque aquí no se necesitan funciones de redondeo.
No, esta es una función real. Sólo por el interés, lo he retocado en mis trabajos. Nikolai, bueno, entiendo que no hay necesidad de discutir. Lo dejaré así.
pavlick_:
Entonces, ¿por qué escribiste aquí? Pensé que era para discutir, estoy discutiendo. Bueno, no seas tan poco razonable. Pero no te relajas, delante de ti todo el campo sin arar https://www.mql5.com/ru/docs/math. Buena suerte).
:) Lo que quería decir es que es una pena el tiempo que se pierde en "arreglar las cosas", desgraciadamente en este hilo ha ocurrido. No se pierde tiempo en discusiones constructivas.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Opción de números positivos y negativos:
Esto parece ser un reemplazo completo para ceil(),round(),floor(), que da 3-4 veces la ventaja de velocidad.Parece más o menos decente. He ejecutado su _round(), recuerde que muestra la función compare_prices(). Entonces, hay un script que busca patrones de precios, obviamente compare_prices() es llamado allí muy activamente. Resultados:
comparar_precios con la ronda estándar y con la comprobación de la diferencia de puntos desactivada = 19 seg
comparar_precios con su _ronda y con la comprobación de la diferencia de puntos desactivada = 15 seg
comparar_precios con su _ronda y con la comprobación de la diferencia de puntos activada = 13 seg
La conclusión es que la mayor parte de las llamadas en las tareas del mundo real terminan en la comprobación del punto. El tiempo es el mismo (cuando la comprobación de las diferencias en el punto está activada), pero el rango de trabajo ha bajado de 1,7*10^308 a unos 2*10^9 (o ^19 si se utiliza el largo) (aunque se necesita una gran ronda como quinta rueda en un carro). No sé, tal vez usted utiliza estas funciones exóticamente de alguna manera ...
SZU:
envolver x entre paréntesis.
Parece que Nikolai tenía razón sobre los nerds )).
Personalmente, no vi ningún ataque personal allí. Y sí que tienes muchas letras en tus posts, pero todo es off-topic, parece que discutes por discutir.
Si el tiempo de la CPU que se ahorra se multiplica por mil millones, incluso entonces sería menos que el tiempo que se dedicó a la discusión IMHO
Sí, estoy de acuerdo, la pérdida de tiempo es una pena, es un hecho.
Sí, estoy de acuerdo, es una pérdida de tiempo - es un hecho.
Entonces, ¿por qué escribiste aquí en primer lugar? Pensé que era para discutir, discutir. Bueno, no seas tan poco razonable. Pero no te relajes, tienes todo un campo sin arar delante de ti https://www.mql5.com/ru/docs/math. Buena suerte))
Parece más o menos decente. He ejecutado su _round(), recuerde que muestra la función compare_prices(). Entonces, hay un script que busca modelos de precios, obviamente compare_prices() es llamado allí muy activamente. Resultados:
Así que la conclusión es que la mayor parte de las llamadas en las tareas reales terminan en la comprobación del punto. El tiempo es el mismo (cuando la comprobación de las diferencias en el punto está activada), mientras que el rango de trabajo ha bajado de 1,7*10^308 a cerca de 2*10^9 (o ^19 si se utiliza el largo) (aunque se necesita una gran ronda como quinta rueda de un carro). No sé, tal vez usted utiliza estas funciones exóticamente de alguna manera ...
ZS:
Envuelve la x entre paréntesis.
No he podido entender - ¿en qué casos es necesario utilizar esta función:?
por qué no usarsimplemente if (first>second), o si necesitas un resultado (0,1 o 2) :
Porque aquí no se necesitan funciones de redondeo.
¿O es sólo para una prueba?
No, esta es una función real. Sólo por el interés, lo pongo en mis trabajos. Nikolai, bueno, entiendo que no hay necesidad de discutir. Lo dejaré así.
No, esta es una función real. Sólo por el interés, lo he retocado en mis trabajos. Nikolai, bueno, entiendo que no hay necesidad de discutir. Lo dejaré así.
Entonces, ¿por qué escribiste aquí? Pensé que era para discutir, estoy discutiendo. Bueno, no seas tan poco razonable. Pero no te relajas, delante de ti todo el campo sin arar https://www.mql5.com/ru/docs/math. Buena suerte).