Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 902
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
1.Tengo una duda, como puedo borrar un elemento de un array a través de la memoria, de momento borro un elemento desplazando el array matemáticamente a través de un bucle, ¿es posible en mql4? Si es posible, por favor, dé un ejemplo de cómo se hace esto en un array unidimensional.
2. Además, ¿qué forma sería más eficaz, teniendo en cuenta: si elimino a través de la memoria, cortar un segmento con elementos innecesarios, la matriz se reducirá y su número disminuirá por el valor de los elementos eliminados, y en el siguiente uso de la matriz, tendremos que restaurar la matriz a su estado original; si elimino a través de un método matemático, el procesamiento del ciclo, que implica cálculos constantes para asignar valores a las variables, lo que a su vez afecta al programa?
1.Tengo una duda, como puedo borrar un elemento de un array a través de la memoria, de momento borro un elemento desplazando el array matemáticamente a través de un bucle, ¿es posible en mql4? Si es posible, por favor, dé un ejemplo de cómo se hace esto en un array unidimensional.
2. Además, ¿qué forma será más eficaz, teniendo en cuenta que si se elimina a través de la memoria, recortar una matriz con elementos innecesarios, la matriz se reducirá y su número disminuirá por el valor de los elementos eliminados, y en el siguiente uso de una matriz, tendremos que restaurar la matriz a su estado original; si se elimina a través de un método matemático, el procesamiento del ciclo, que implica cálculos constantes para asignar valores a las variables, que a su vez afecta al programa?
Simplemente copie el array "en sí mismo" y reduzca el tamaño del array en el número de elementos que no necesita.
Para insertar un solo elemento, basta con aumentar el tamaño, copiar de nuevo "a sí mismo" y pegar el valor deseado en el espacio libre.
Basta con copiar la matriz "en sí misma" y reducir el tamaño de la matriz en el número de elementos innecesarios.
Para insertar un solo elemento, basta con aumentar el tamaño, copiar de nuevo "a sí mismo" y pegar el valor deseado en el espacio libre.
He intentado insertar un array de 3 dimensiones en la función de copia, no hay errores, por lo que esta función puede trabajar con arrays de diferentes dimensiones o simplemente tiene duplicados para diferentes dimensiones. Resulta que esta función se puede utilizar en lugar de una función de desplazamiento, no hace falta escribir una propia, ojalá se me hubiera ocurrido antes, lo arriesgado que es copiar un array a sí mismo, está escrito que el resultado puede no estar definido.
He intentado insertar un array de 3 dimensiones en la función de copia, sin errores, por lo que esta función puede trabajar con arrays de diferentes dimensiones o simplemente tiene duplicados para diferentes dimensiones. Resulta que esta función se puede utilizar en lugar de una función de desplazamiento, no hace falta escribir una propia, ojalá se me hubiera ocurrido antes, lo arriesgado que es copiar un array a sí mismo, está escrito que el resultado puede no estar definido.
Al copiar una matriz multidimensional, hay que tener en cuenta la dimensionalidad de la segunda dimensión y de las siguientes. Esto determina cuánto hay que desplazar al copiar. Sencillamente, según entendí en mis experimentos, todos los valores del array multidimensional se alinean en "una fila" y luego se vuelven a alinear en "columna por..."
En definitiva, ahora no puedo contar la teoría. Tendré que comprobarlo de nuevo, si necesito utilizarlo.
Al copiar una matriz multidimensional, hay que tener en cuenta la dimensionalidad de la segunda dimensión y de las siguientes. Esto determina la cantidad de desplazamiento que se necesita al copiar. Sencillamente, según entendí en mis experimentos, todos los valores de un array multidimensional se alinean en "una fila" y luego se vuelven a alinear en "columna por...".
En general, ahora no puedo contar la teoría. De nuevo habrá que comprobar si es necesario utilizarlo.
En C++, no hay diferencia entre este
en cualquiera de estos casos habrá una salida. Porque están en un solo bloque de memoria y C++ accede a ellos directamente, mientras que en nuestro shell el acceso a la memoria es cerrado y no hay forma de pasar correctamente arrays de distinta dimensión a una función, ni de direccionarlos de esta manera, el único matiz es que los arrays multidimensionales en C++ están dispuestos en memoria dinámica, quizás incluso dispersos, aunque nadie ha visto el mapa electrónico. Entonces, ¿copiar arrays multidimensionales por el concepto en sí mismo es una cuestión muy sutil o puede no funcionar correctamente?
Tengo un código que no se ejecuta en MQL5 en mi indicador
El caso es que siel precio == STO_LOWHIGH todo funciona correctamente, pero siel precio == STO_CLOSECLOSE la función asigna a las variables estáticas solamente
vhigh = 0; vlow = High[i];
... evitar el bucle
Tengo un código que no se ejecuta en MQL5 en mi indicador
La cuestión es que siel precio == STO_LOWHIGH todo funciona correctamente, pero si el precio == STO_CLOSECLOSE la función sólo asigna a las variables estáticas
... evitar el bucle
Algo no funciona con los paréntesis. En mi opinión, no son necesarios en absoluto. Ninguno de ellos es necesario en absoluto.
O, al menos, desplazar los resaltados antes del signo de interrogación hacia la izquierda.
En general, sólo hay que entender que el operador ?: es equivalente a if else
Tienes una condición dos veces. Una condición como esta sería suficiente
O no entiendo a qué querías llegar.Hay algo que falla en los soportes. En mi opinión, no son necesarios aquí en absoluto. Ninguno de ellos lo es.
O, al menos, mover los resaltados a la izquierda antes del signo de interrogación.
En general, sólo hay que entender que el operador ?: es equivalente a if else
Tienes una condición dos veces. Esta condición sería suficiente.
O no entiendo a qué querías llegar.Quiero obtener los estocásticos normales maxHigh y minLow dentro del periodo K por Low/High y Close/Close
Baja/Alta durante la inicialización funciona bien, pero Cerrar/Cerrar no
Hay algo que falla en los soportes. En mi opinión, no son necesarios aquí en absoluto. Ninguno de ellos lo es.
O, al menos, mover los resaltados a la izquierda antes del signo de interrogación.
En general, sólo hay que entender que el operador ?: es equivalente a if else
Tienes una condición dos veces. Esta condición es suficiente.
O no entiendo a qué querías llegar.No lo entendí de inmediato, pero si te refieres a esto.
no resuelve mi problema.