Obtener el número de decimales de cualquier número (no sólo las comillas) evitando Digits() en MQL4 y MQL5 - página 15
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
si ArrayCopy() se realiza de la misma manera que Cysh memmove(),
Creo que la velocidad de ArrayCopy() depende de la velocidad de asignación de la memoria, si la memoria intermedia del buffer está lista para ser copiada, ArrayCopy() se ejecutará muy rápidamente, si la memoria no está asignada, empezará a solicitar al sistema operativo que asigne memoria
puedes intentar probarlo - haz una llamada a ArrayCopy() con un volumen de datos grande, preparando así la memoria intermedia para el intercambio, y luego haz un bucle con ArrayCopy() con un volumen de datos más pequeño a copiar y luego mide la velocidad
En nuestro ejemplo actual, la copia se ejecuta en un array estático, pero en general es interesante, por supuesto, cuando ArrayCopy es más lento que un simple for. Si necesitas asignar memoria, tendrás que hacerlo de todos modos, no importa cómo lo hagas.
En nuestro ejemplo actual, la copia se realiza en un array estático, pero en general es interesante, por supuesto, cuando ArrayCopy es más lento que el simple for. Si necesitamos asignar memoria, tendremos que hacerlo de todos modos.
No importa si es estático o dinámico, no sabemos cómo se implementa ArrayCopy(), sólo asumí que es una "envoltura" sobre las funciones estándar de Cish, memmove() suele funcionar a través de un buffer adicional... bueno, como siempre, así es como se escribía antes, es difícil saber cómo y qué compilador funciona
SZY: Es que no sé cómo probar el tiempo de ejecución en MQL ((( - Lo he intentado un par de veces, creo que he tomado ejemplos de la ayuda, los resultados son de alguna manera muy diferentes, y he ignorado esta pregunta por necesidad - no pruebo el rendimiento, suelo mirar en el perfilador, qué y cómo se ejecuta en el tiempo
Es que no sé cómo probar la velocidad de ejecución en MQL ((( - Lo intenté un par de veces, creo que tomé ejemplos de la ayuda, pero los resultados fueron muy diferentes por alguna razón, así que desistí de este tema porque no pruebo el rendimiento, suelo usar el perfilador para ver cómo y qué se ejecuta en el tiempo
esta es la forma más fácil, que he utilizado arriba
Esta es la forma más fácil que he utilizado arriba
Gracias, lo tengo, lo probaré mañana
Sí, esto funcionará mucho más rápido (sustituido en lo posible por ArrayCopy, el resto es lo mismo):
Ya te dije que escribí lo primero que se me ocurrió sin hacer pruebas))
Esta variante no es diferente de la mía. Las mediciones (tiempo mínimo de 10 intentos) lo demuestran.
Puedes ver que la variante con ciclo es más rápida, porque el ciclo de 60 /4 = 15 elementos.
Esta variante no es diferente de la mía.
Aparentemente sí, sólo el tipo de estructura y el tipo de matriz son arbitrarios.
Puedes ver que la variante del bucle es más rápida, porque el bucle de 60 /4 = 15 elementos.
Extrañamente, conseguí ser más rápido que ArrayCopy con los mismos MqlTicks e int...
Extrañamente, obtuve más rápido que ArrayCopy con los mismos MqlTicks e int...
Lo estoy ejecutando en MT5x64.
Aparentemente, sí, pero el tipo de estructura y el tipo de matriz son arbitrarios.
He evitado a propósito el caso común para permitir la participación de más personas.
Hasta ahora
Funcionando en MT5x64.
Se ha obviado el caso general para que puedan participar más personas.
Hasta ahora.
Supongo que tu código ya es más rápido :)
Tengo que añadir un montón de código de servicio allí para mejorar la funcionalidad de ArrayCopy (inicio de origen, inicio de destino, recuento) y comprobar los parámetros para que sean correctos...
En general, tenéis tantas obras/bibliotecas chulas que es extraño que preguntéis y discutáis la mejor solución en el foro :)
Es extraño que preguntes y discutas la mejor solución en el foro :)
Necesito uno para la biblioteca de HistoryTicks. Gracias por participar.