Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1859

 
Владимир Казаков #:
Y dígame, ¿hay alguna diferencia en la velocidad de procesamiento entre una matriz estática y una dinámica?

Si se compara el manejo de dos matrices muy grandes, estáticas y dinámicas, puede haber o no una diferencia... En el uso normal, no hay prácticamente ninguna diferencia.

 

Mihail Matkovskij, Andrey Sokolov, gracias amigos, por la clara y rápida respuesta.

Realmente hubo un error con OP_SELL, OP_BUY (mezclado por falta de atención). He normalizado todo por nDigits, he añadido una comprobación por OrderSend para los errores. Espero que todo funcione. No puedo comprobarlo ahora, el mercado está cerrado )). Desde ahora hasta el lunes

 
Mihail Matkovskij #:

Si se comparan 2 matrices muy grandes, estáticas y dinámicas, puede haber o no una diferencia... En el uso normal, casi no hay diferencia.

Por desgracia, hay...

La diferencia en el uso de las dos funciones :

double foo(someargs..) {
   double tmpdata[];
   ArrayResize(tmpdata,100);
   ...
}
static double tmpdatabar[100];
double bar(someargs..) {
   ...
}

será importante.

Si conoces de antemano el tamaño máximo del array y no es demasiado grande 🚲

es mejor repartirlo de antemano

 
Владимир Казаков #:
¿Hay alguna diferencia en la velocidad de procesamiento entre una matriz estática y una dinámica?

¿Qué se entiende por tratamiento?

En cualquier caso, la existencia de una diferencia y su magnitud para un caso concreto puede aprenderse a partir de la elaboración de perfiles.

 
Maxim Kuznetsov #:

históricamente ha habido situaciones en las que la oferta de compra ha llegado sin normalizar

¿Han llegado con más caracteres que en el símbolo?

 

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Cualquier pregunta de los novatos sobre MQL4 y MQL5, consejos y discusión sobre algoritmos y códigos

Maxim Kuznetsov, 2022.01.15 11:29

hay lamentablemente...

la diferencia en el uso de las dos funciones :

double foo(someargs..) {
   double tmpdata[];
   ArrayResize(tmpdata,100);
   ...
}
static double tmpdatabar[100];
double bar(someargs..) {
   ...
}

sería significativo.

si conoces de antemano el volumen máximo de un array y no es demasiado grande 🚲

es mejor distribuirlo de antemano.

¿Y quién hace eso cuando se necesita velocidad, me da vergüenza preguntar?

Así es como se hace:

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Cualquier pregunta de los principiantes sobre MQL4 y MQL5, ayuda y discusión de algoritmos y códigos

Mihail Matkovskij, 2022.01.15 10:24

input int     trendSlowCountBar=9;

double  MAslowTrend[];

int OnInit() {
  ArrayResize(MAslowTrend, trendSlowCountBar, 0);
  ...
  return(INIT_SUCCEEDED);
}

Puedes usarlo como cualquier array y no importa el tipo de array que sea.

Son cosas sencillas. Pero no. En cien páginas explicaré lo que ya es obvio...

 
Andrey Sokolov #:

¿vienen con más marcas que en el símbolo?

????

¿qué tipo de señales?

 
Maxim Kuznetsov #:

????

¿Qué señales?

Ahora todavía probará lo que viene en Ask y Bid. Y en la nueva construcción habrá un fallo y el precio no vendrá normalizado. O tal vez los desarrolladores decidan cambiar el concepto (ya que el SL y el TP deben ser normalizados, es posible hacer precios de entrada en el mismo principio). Y escribirán que ahora hay que normalizar el Ask y el Bid. Y entonces empezará a correr. Empezará a reescribir todas sus solicitudes. Y aquellos a los que haya escrito solicitudes de autónomos no estarán satisfechos (porque los pedidos ya no se abrirán con normalidad) y exigirán mejoras.

 
Andrey Sokolov #:

¿aquellos vinieron con más marcas que en el símbolo?

Sí, eso es lo que pasó. En general, cualquier número de punto flotante que vaya al servidor - debe ser normalizado - es un axioma de buen tono y funcionamiento estable (independientemente de lo que haya dicho o no quién o de lo que esté escrito en la documentación... (Hoy dice una cosa, mañana otra)).

Si necesitas construir un objeto gráfico en el terminal, no necesitas normalizarlo, pero si lo solicitas en el servidor, necesitas

 
Ponte las pilas... Si el servidor no acepta valores de precio o tamaño de lote no normalizados, tampoco puede tenerlos no normalizados.
Razón de la queja: