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

 
ANDREY:

Tengo la idea general... en lo que a mí respecta. Gracias por el consejo. Si no te importa, podrías decirme qué significa el signo de dólar antes del nombre del array $ array[] y antes del valor $var

Tengo la sensación de que no es de mql4 por alguna razón.

sí, no es demql, pero el significado es el mismo

 
Aleksei Stepanenko:
En su caso, la respuesta a la pregunta principal es interesante: ¿Por qué necesita hacer la clasificación cada minuto? ¿Cómo puede aplicarse su idea de forma más económica?

El código que he puesto es sólo un ejemplo del problema que no he podido resolver. En el código real la ordenación tendrá que hacerse en cada tick en una columna de tamaño 20 a 30 elementos. Tengo un procesador de cuatro núcleos y por eso no siento ningún retraso en las pruebas hasta ahora. Además, el código actual tampoco es muy grande. Pero aún no he representado completamente mi idea en forma de código. Cuando lo codifique por completo, entonces pensaré cómo mejorarlo desde el punto de vista del rendimiento.

¿Y he entendido bien que la búsqueda de 1000 valores en mql lleva menos tiempo que la ordenación de 1000 elementos de un array o cualquier otra operación con arrays? Por cierto, ¿podría decirme ..... qué operaciones en mql4 tardan mucho?

Gracias por la ayuda

 
Vitaly Muzichenko:

sí, no es demql, pero el significado es el mismo

¿Y qué lenguaje es y estoy en lo cierto al entender que algunas construcciones de este lenguaje se pueden utilizar en mql? Creo que para el futuro esta información me sería útil
Gracias por su ayuda.

 
ANDREY:

¿Qué lenguaje es y entiendo correctamente que algunas construcciones de este lenguaje se pueden utilizar en mql? Creo que para el futuro esta información me sería útil
Gracias por su ayuda.

Es php, pero no creo que necesites investigar, haysuficientes respuestas sobremql en este foro también.

 
Vitaly Muzichenko:

Es php, pero no creo que necesites investigar, haysuficientes respuestas sobremql en este foro también.

Lo tengo. Gracias.

 
ANDREY:

Lo tengo. Gracias.

Tienes que pensar bien la lógica de lo que quieres que sea el resultado, y luego empezar a escribir. Hay muchas cosas con las que no es necesario contar cada vez que se hace, sino sólo cuando la situación cambia.

Sólo hay que vigilar el cambio de la situación y hacer los cálculos pesados después, en lugar de hacerlos en cada tic innecesariamente.

 
Vitaly Muzichenko:

Tienes que pensar bien la lógica de lo que quieres que sea el resultado y luego empezar a escribir. Hay muchas cosas que no hay que calcular en cada momento, sino sólo cuando la situación cambia.

Para ello, sólo hay que vigilar el cambio de la situación y luego hacer cálculos pesados, en lugar de hacerlos a cada momento sin necesidad.

Ya he pensado en la lógica y entiendo claramente lo que quiero obtener en la salida. Entiendo Mql4 (y un poco de Mql5) hasta el punto de entender mucho (pero no todo) de lo que necesito de los manuscritos. Y lo más importante, entiendo casi todo lo que se me explica en este foro. Ahora estoy tratando de codificar mi concepción, pero no de cualquier manera, sino que el código debe ser ejecutado rápidamente, porque voy a tener que probarlo en muchos instrumentos y en largos plazos. Y de todos modos .... Es decir, ahora mismo estoy tratando de codificar mi concepto por ensayo y error (tengo muy poca experiencia en codificación) y al mismo tiempo aprender algo nuevo y útil para futuros intentos.

 
ANDREY:

Pero no de forma aleatoria, sino para que la ejecución del código tarde el mínimo tiempo

Así que dinos para qué se necesita la clasificación, tal vez podamos tener una idea para otra implementación.

 
Aleksei Stepanenko:

Así que dime para qué sirve la clasificación, tal vez podamos tener una idea para otra implementación.

Gracias por su ayuda. Me has intrigado ..... Creo que en 1-2 días terminaré una parte de código real con ordenación y luego lo publicaré aquí para conocer tu opinión profesional.

Y tengo una pregunta más sobre la información, que Maxim Kuznetsov me dio en este post. Él visita aquí con menos frecuencia que tú, así que te agradecería que me explicaras algo sobre su código

void Convert_7x2_2x7 (const double &src[7][2],double &dst[2][7]) {

for(int i=0;i<7;i++)

for(int j=0;j<2;j++) {

dst[j][i]=src[i][j];

}

}

Lo he estudiado detenidamente y durante mucho tiempo y esto es lo que se me ha ocurrido...

1.Esta es una función definida por el usuario

2.No hay ninguna referencia a ella en el código anterior. Está implícito en el código principal dentro del void OnTick()

3. En este código sólo se cambiarán los índices de la matriz. Lo que ocurre con los valores de los elementos de la matriz sólo puedo adivinarlo.

Lo que no entiendo es esto.

1. Si la ejecución final de esta función hace que dst[j][i] obtenga nuevos valores de dst[7][2], ¿qué sentido tenían los bucles? ¿No podría asignarse a dst[j][i] esos valores de índice de forma inmediata y explícita?

2. ¿He entendido bien que si cambio los valores de los índices en este código, los valores necesarios de los elementos del array cambiarán automáticamente a las nuevas celdas por sí mismos?

3. Le agradecería que escribiera una descripción de cómo se llama a esta función personalizada.

El tema de los arrays es bastante nuevo para mí, y aunque esta información no está relacionada con mi código actual, estoy seguro de que me será útil en el futuro. Y me gusta hacer reservas para el futuro por naturaleza. :-)
Gracias por su ayuda.

 

No, está muy lejos de ser un profesional.

double LoY[31][2], Mirror[2][31];

//вызывается так:
ConvertArray(LoY,Mirror);

//все значения строк из массива LoY запишутся в столбцы Mirror,
//условно сказать, массив повернётся
void ConvertArray(const double &src[31][2],double &dst[2][31])
   {
   for(int i=0; i<31; i++) for(int j=0; j<2; j++) dst[j][i]=src[i][j];
   }