[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 353

 
Zhunko:

Primero hay que optimizar. La velocidad MQL4 es adecuada para la mayoría de las tareas.

Hay un ejemplo de DLL en la carpeta de MT4.


Me refiero a tareas individuales, en las que una ejecución del script lleva varias horas. ¿Qué quiere decir con optimización?
 
Bueno unas horas es mucho, normalmente hay opciones para hacer que los cálculos funcionen más rápido rediseñando el algoritmo de cálculo, sacando acciones repetitivas del bucle, evitando construcciones lentas, arrays multidimensionales, etc.
 
splxgf:
Bueno, unas cuantas horas es mucho. Normalmente, hay variantes para hacer los cálculos más rápidos modificando el algoritmo de los cálculos, moviendo las acciones repetitivas fuera del bucle, evitando construcciones lentas, matrices multidimensionales, etc.

¿Tiene una respuesta a la pregunta: es mejor almacenar las características de las órdenes abiertas en una matriz multidimensional o en varias matrices unidimensionales, una por característica? Lo he probado de las dos maneras. No he notado ninguna diferencia en la velocidad. ¿Cuál es la forma óptima (diferentes órdenes, tanto de mercado como pendientes, e incluso órdenes perdedoras dirigidas de forma diferente)?

¿Quizás, el "según la definición del problema"?

 
splxgf:
Bueno unas horas es mucho, normalmente hay opciones para hacer que los cálculos funcionen más rápido rediseñando el algoritmo de cálculo, sacando las acciones repetitivas del bucle, evitando construcciones lentas, arrays multidimensionales, etc.

Si no es difícil, ¿puede mostrar un ejemplo de dicha optimización? Por ejemplo, considera todos los periodos del indicador Alligator iAlligator de 1 a 100 (7 periodos), las operaciones matemáticas en sí son simples (suma, resta).

 
snail09:

¿Tiene una respuesta a la pregunta: es mejor almacenar las características de las órdenes abiertas en una matriz multidimensional o en varias matrices unidimensionales, una por característica? Lo he probado de las dos maneras. No he notado ninguna diferencia en la velocidad. ¿Cuál es la forma óptima (diferentes órdenes, tanto de mercado como pendientes, e incluso órdenes perdedoras dirigidas de forma diferente)?

Probablemente, sería "según el enunciado del problema", ¿no?


Todavía no me lo he encontrado, no lo sé. Pero si tu código es correcto y hace la tarea, entonces en mi opinión, qué diferencia hay en qué array.
 
khorosh:
¿Existe un indicador de equidad que permita establecer una fecha en su variable externa, de forma que todas las órdenes abiertas antes de esa fecha no se tengan en cuenta a la hora de calcular la equidad?


Mira estos... Begin_Monitoring y Draw_Begin...

Archivos adjuntos:
 
FelixFX:

Me refiero a tareas individuales, en las que la ejecución de un script lleva varias horas. ¿Qué quiere decir con optimización?
Me refiero a modificar el código para que funcione más rápido. Hay algunas características especiales de MQL4, conociéndolas, puede acelerar los cálculos varias veces. Sin su código, no se puede decir qué se puede optimizar.
 
Zhunko:
Esto significa modificar el código para que funcione más rápido. Hay peculiaridades de MQL4, conociéndolas, puede acelerar los cálculos varias veces. Sin su código, es imposible decir qué se puede optimizar.

Por ejemplo, considere todos los períodos del indicador Alligator iAlligator de 1 a 100 (7 parámetros variables), las operaciones matemáticas son sencillas (suma, resta - por ejemplo, puede tomar la suma de las diferencias de los precios máximos y mínimos de cada barra, cuyo precio de cierre es superior a todas las líneas del indicador).
 
FelixFX:

Todavía no me lo he encontrado, no lo sé. Pero si tu código es correcto y hace lo que se supone que debe hacer, creo que da igual en qué matriz.
Ambas opciones son correctas. Por eso he preguntado. ¿Y cómo hace el seguimiento de "sus" pedidos? Por favor, comparte.
 
FelixFX:

Si no es difícil, ¿puede mostrar un ejemplo de dicha optimización? Por ejemplo, considera todos los periodos del indicador de caimanes iAlligator de 1 a 100 (7 periodos), las operaciones matemáticas en sí son simples (suma, resta).

Por ejemplo, el problema es cuántas veces ha cruzado el precio un nivel determinado en los últimos dos años.

1. Puedes tomar cada nivel y revisar los datos de dos años. Los costes: el número de barras multiplicado por el número de niveles.

2. Puedes crear una matriz de niveles independiente. Basta con revisar todas las barras comprobando e incrementando los elementos necesarios del array. En este caso los cálculos serán más rápidos.

Razón de la queja: