[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 131
![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
Continuación del tema
Anteriormente aquí https://www.mql5.com/ru/forum/111497
Estoy tratando de llenar un array unidimensional ValueArr[].
No estoy seguro de que sea correcto.
En cada tic, la función GetValue() produce un valor int. ¿Cómo relleno ValueArr[]?
¿Es correcto mi intento?
¿El tamaño de la matriz debe aumentar en uno en cada tic? Entonces su tamaño estará limitado por la memoria disponible del ordenador.
Aumenta el tamaño del array ValueArr[] utilizando la función ArrayResize() y añade los nuevos datos al array. De nuevo, ¿dónde quiere añadirlos? ¿Al principio o al final?
Si al principio, es necesario mover los datos escritos anteriormente, de lo contrario serán sobrescritos por los datos recién escritos.
Si al final, entonces:
Inite establece el tamaño del array = cero, y al inicio lo incrementa en 1 (size++), luego redimensiona el array ( ArrayResize(ValueArr, size);) y escribe los datos en la celda ValueArr[] indexada por size-1 (ValueArr[size-1]), obtenida por GetValue(); (ValueArr[size-1]=GetValue();).
¿Quieres que el tamaño de la matriz aumente en uno en cada tic? Entonces su tamaño estará limitado por la memoria disponible del ordenador.
En cada tic, incrementa el tamaño del array ValueArr[] usando la función ArrayResize() y añade nuevos datos al array. De nuevo, ¿dónde quiere añadirlos? ¿Al principio o al final?
Si al principio, es necesario mover los datos escritos anteriormente, de lo contrario serán sobrescritos por los datos recién escritos.
Inite establece el tamaño del array = cero, y al principio lo aumenta en 1 (size++), luego redimensiona el array ArrayResize(ValueArr, size); y añade los datos obtenidos por la función GetValue() en la celda del array ValueArr[] indexada por size-1 (ValueArr[size-1]);
Sí, los datos de GetValue() se escribirán en cada tick en el array ValueArr[].
El tamaño de la matriz se incrementa con cada tic, pero se puede definir de una vez, por ejemplo, [10000].
Los elementos de la matriz se ordenan por orden de llegada, es decir, el primer elemento escrito es el primero de la "cola general",
el segundo elemento es el segundo en la cola.
Si lo he entendido bien, es así:
Espero haberle entendido bien.
Los elementos de la matriz están dispuestos por orden de llegada, es decir, el primero que se escribe es el primero en la "cola general",
¿por qué no utilizar una matriz de series temporales?
Estoy tratando de llenar un array unidimensional ValueArr[].
No estoy seguro de que sea correcto.
En cada tic, la función GetValue() produce un valor int. ¿Cómo relleno ValueArr[]?
¿Es correcto mi intento?
int ValueArr[size];
no puedes. Cuando se declara un array, se especifica una constante como tamaño o nada, y el array se considera entonces dinámico.
La forma correcta es esta
int ValueArr[]; int init() { ArrayResize(ValueArr,size); }
Por favor, aconséjeme. ¿Existe una función en MT4 que tenga en cuenta el resultado de una operación anterior para abrir una nueva? En caso afirmativo, ¿cómo puedo especificarlo correctamente?
Por favor, aconséjeme. ¿Existe una función en MT4 que tenga en cuenta el resultado de una operación anterior para abrir una nueva? En caso afirmativo, ¿cómo puedo especificarlo correctamente?
No existe tal función incorporada, tienes que escribirla tú mismo, mostré un ejemplo aquí:https://www.mql5.com/ru/forum/131277/page113
Esto es
no puedes. Cuando se declara un array, se especifica una constante como tamaño, o nada, y el array se considera entonces dinámico.
La forma correcta es esta
Entonces supongo que eso es todo:
¿Esto es correcto?