Obtener el número de decimales de cualquier número (no sólo las comillas) evitando Digits() en MQL4 y MQL5 - página 21
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
En la carretera por ahora. Puedes probarlo tú mismo. La idea es utilizar uniones con matrices de estructuras de diferentes tamaños, por ejemplo, 10, 100, 1000, 10000...
Se utilizó esta idea. En este caso
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Obtención del número de decimales de cualquier número (no sólo de las comillas) evitando Digits() en MQL4 y MQL5
fxsaber, 2018.12.08 16:25
He probado diferentes tamaños, por supuesto. Por alguna razón no afectan al resultado.
Se utilizó esta idea. Al hacerlo
Puedes ver todo en el libro de consulta.Sí, lo he buscado. Es extraño que no tenga ningún efecto.
Hay una línea en la fuente que controla el tamaño
Puedes cambiar este valor y ver el resultado. Si el valor es superior a cien, la velocidad no aumenta. En realidad, es fácil de explicar, porque en total se copian el mismo número de elementos. Además, se eliminan los retrasos asociados a las pequeñas porciones de copia.
Me temo que ya estamos encerrados en el máximo rendimiento.
Sí, estoy de acuerdo.
Lo he probado - el mismo resultado que en su TicksToIntArray_fxsaber4/IntArrayToTicks_fxsaber4
Tienes el código fuente, puedes medirlo tú mismo.
Así que mídelo. Estoy bastante seguro de que no, así que no veo el sentido de perder el tiempo ni en el artículo ni en la medición.
Me temo que ya estamos al límite del rendimiento.
Para ser honesto, estoy muy sorprendido de que hayan logrado acercarse tanto a memcpy. Simplemente no puede ser. Algo no está bien.
Me temo que ya estamos atascados con el máximo rendimiento.
Creo entender un grave error de cálculo tuyo.
Su BANCO selecciona el mínimo de 50 carreras absolutamente idénticas.
Pero el compilador es un gran listillo y perezoso. No hará el mismo trabajo 50 veces y optimizará el código. Por eso deberías cambiar al menos las matrices en cada ejecución. O puede sustituir 50 por 1 y aumentar el número de pruebas. Entonces los resultados serán muy diferentes y más objetivos.
Cuando la diferencia respecto a memcpy es del 40% es más plausible
Me pregunto si comprimir la matriz tendrá algún efecto. Una matriz de ticks puede comprimirse por un factor de 10-12. La única pregunta es si esto ahorrará el tiempo resultante en el envío y la recepción a través del recurso.
Creo entender un error de cálculo muy grave tuyo.
Tu BANCO selecciona el mínimo de 50 ejecuciones absolutamente idénticas.
Pero el compilador es un gran listillo y perezoso. No hará el mismo trabajo 50 veces, sino que optimizará el código.
El código está escrito de tal manera que hará exactamente lo que se supone que debe hacer. El compilador no podrá afectar a la velocidad de memcpy, pero los resultados de los pases son los siguientes
Un bucle de una pasada
De 50
El código está escrito de tal manera que hará exactamente lo que quieres que haga. El compilador no puede afectar la velocidad de memcpy, pero los resultados de las pasadas son
Un bucle de una pasada
De 50.
Así que mídelo. Estoy bastante seguro de que no, así que no veo el sentido de perder el tiempo ni en el artículo ni en la medición.
No tengo que hacerlo.