![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
mql5 es bueno porque no habrá problemas de compatibilidad y legibilidad del código.
Y cómo se envían, no sabemos qué tipo de datos tomaste como base.
Stream, cast, Json.
Si el escalonamiento se hace en un bucle for, yo renunciaría a los bucles.
Cualquier bucle tiene tiempo de procesamiento, y eso es latencia.
Sólo hay unos 40 niveles de precios en el bombo, hacia arriba y hacia abajo.
Por lo tanto, para cada nivel escribiría su propia variable con el valor deseado, eliminando el bucle.
mql5 es bueno, no habrá problemas de compatibilidad y legibilidad del código.
Y cómo se envían, no sabemos en qué tipo de datos se han basado.
Stream, cast, Json.
Si el escalonamiento se hace en un bucle for, yo renunciaría a los bucles.
Cualquier bucle tiene tiempo de procesamiento, y eso es latencia.
Sólo hay unos 40 niveles de precios en el bombo, hacia arriba y hacia abajo.
Por lo tanto, para cada nivel escribiría su propia variable con el valor deseado, eliminando el bucle.
Mira el código de la página anterior.
Centralizo los datos entrantes en relación con la celda central del vaso. El precio más cercano a la demanda se pone en la celda del centro y luego hacia arriba el resto de los precios en orden ascendente. Lo mismo ocurre con los precios de las ofertas y con sus ofertas.
mql5 es bueno, no habrá problemas de compatibilidad y legibilidad del código.
Y cómo están mapeados, no sabemos qué tipo de datos tienes.
Stream, cast, Json.
Si el escalonamiento se hace en un bucle for, yo renunciaría a los bucles.
Cualquier bucle tiene tiempo de procesamiento, y eso es latencia.
Sólo hay unos 40 niveles de precios en el bombo, hacia arriba y hacia abajo.
Por tanto, para cada nivel escribiría su propia variable con el valor deseado, eliminando el bucle.
No sé cómo resolver el problema de la distribución de los datos entrantes sin un ciclo. ¿Puedes darme una pista?
A veces entran más de 40 niveles de precios. Algunos no caben en la taza. Así que hice una matriz de receptores de 100 celdas. Es imposible mostrar todo en el selector, pero se puede solicitar al motor.
...
Por ello, prescribiría para cada nivel una variable con el valor necesario, excluyendo el ciclo.
Los datos se presentan en una matriz ordenada del precio más alto al más bajo. No hay límite en la cantidad de datos. Puede haber 60 precios con ofertas, 30 para cada lado, o puede haber 30 precios, todos con precios más altos que la demanda o más bajos que la oferta. Por lo tanto, sin un ciclo no hay manera de resolver el problema.
Los datos se presentan en una matriz ordenada del precio más alto al más bajo. No hay límite en la cantidad de datos. Puede haber 60 precios con ofertas, 30 para cada lado, o puede haber 30 precios, todos con precios más altos que la demanda o más bajos que la oferta. Por lo tanto, no es posible resolver el problema sin un ciclo.
Si la indexación de los elementos entrantes en el array no se rompe, podemos tomar cada elemento del array sin el bucle y asignarlo a nuestra variable.
Y ya asigna cada variable que contiene el valor a su propio nivel de celda.
O bien, puede asignar cada elemento de la matriz a un nivel a la vez.
Entonces también excluimos las variables, pero los datos no inicializados no son una buena práctica de codificación.
Se me ocurrió otra idea.
Tras aplicar ambos métodos, podemos medir la velocidad de procesamiento.Para dividir la matriz recibida en dos matrices Oferta y Demanda
Y piensa en cómo utilizar la función CopyArray().
Y cuál dará el mejor resultado, y dejarlo.
Si la indexación de los elementos entrantes en el array no está rota, podemos tomar cada elemento del array sin el bucle y asignarlo a nuestra variable.
Y ya cada variable que contiene el valor se asigna al nivel de la celda.
O bien, puede asignar cada elemento de la matriz a un nivel a la vez.
Entonces también excluimos las variables, pero los datos no inicializados no son una buena práctica de codificación.
Por desgracia, no hay precios ordenados en la matriz y su indexación no apunta a celdas específicas en el bombo. Los datos van de un precio más alto a uno más bajo, pero ahí termina el orden. Puede haber un punto entre los precios, o pueden ser 10 o 153. La barra deslizante muestra los últimos volúmenes de pedidos modificados en todo el rango en el que se encuentran. Si un precio de más de 150 pips desde el asc ha cambiado el número de órdenes limitadas, aparecerá en el array. Por lo tanto, no hay ningún orden en la matriz que no sea de mayor a menor y los datos no pueden ser reordenados de otra manera que no sea en un bucle.
Por desgracia, no hay indexación en la matriz. Los datos van de un precio más alto a uno más bajo, pero ahí termina el orden. Puede haber un punto entre los precios, o puede haber 10 o 153. La pila muestra los últimos volúmenes de pedido modificados para todo el rango en el que se encuentran. Si un precio de más de 150 pips desde el asc ha cambiado el número de órdenes limitadas, aparecerá en el array. Por lo tanto, no hay ningún orden en la matriz que no sea de más a menos, y los datos no pueden ordenarse más que en un bucle.
Hay una indexación por elementos del array en el array receptor.
Los datos van de mayor a menor precio, siempre están ordenados secuencialmente, ¿no es así?
Entonces, elige cualquier elemento necesario del array por índice, pero sin el bucle.
Y si es imposible captar mejor la oferta/solicitud debido al tamaño cambiante de los datos entrantes,
entonces tal vez deberíamos pensar en CopyArray()
Hay una indexación por elementos del array en el array receptor.
Los datos van de mayor a menor precio, siempre están ordenados secuencialmente, ¿no es así?
Así que selecciona cualquier elemento deseado de la matriz de recepción por el índice, pero sin el bucle.
Ordenados secuencialmente. Pero:
Ordenados secuencialmente. Pero:
¿De dónde sacas esos datos tan torcidos? ))
1) Defina un rango claro de selección de datos, por ejemplo 20 arriba, 20 abajo.
y seleccionar sólo esta gama, y cualquier otra cosa no es importante para nosotros.
2. Dices que los precios van de mayor a menor y se ordenan de forma descendente.
Así que lo que puede venir más arriba o más abajo, no importa, no se fijan en los precios sino en los índices de la matriz.
2. Si te refieres a ordenar por la distancia entre los niveles de precios, no importa en absoluto, tenemos la indexación en la matriz de recepción.