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

 
Roman Sharanov:

Necesito almacenar matrices de citas en un array

Para copiar una vez en un bucle y luego realizar los cálculos utilizando ArrayCopy, no CloseCopy

Por supuesto, cada uno es libre de hacer lo que quiera. Pero, ¿por qué debemos copiar un array elemento por elemento en otro array bidimensional y luego trabajar con este array bidimensional? ¿No podemos realizar los mismos cálculos en lugar de copiar?

¿O me estoy perdiendo algo? ¿Se puede copiar una matriz unidimensional en la segunda dimensión de una matriz bidimensional?
 
Alexey Viktorov:

Por supuesto, cada uno es libre de hacer lo que quiera. Pero, ¿por qué copiar elemento por elemento en otra matriz bidimensional y luego trabajar con esta matriz bidimensional? ¿No podemos hacer esos cálculos en lugar de copiar?

¿O me estoy perdiendo algo? ¿Es posible copiar una matriz unidimensional en la segunda dimensión de una matriz bidimensional?

Tengo dos bucles anidados, el externo tiene CopyClose, y el interno

Y todos ellos copian los mismos caracteres de la matriz.

Quiero introducir una matriz de cotizaciones para cada par en una matriz separada antes de los bucles.

De todos modos, esto es lo que hice, envolví una matriz doble de moneda en una estructura, e hice una matriz de estructuras

for(int i = 0; i<ACTIVES; i++){
      CopyClose(all_pairs[i], PERIOD_CURRENT, 1, calculation_period, pairs_data[i].currency);
      pairs_data[i].pair = all_pairs[i];
   }
for(int i = 0; i < ACTIVES-1; i++){
	 ArrayCopy(first_data, pairs_data[i].currency, 0,0,WHOLE_ARRAY);
	//работа с firstData
	...
      
	 for(int k = i+1; k < ACTIVES; k++){
		 ArrayCopy(second_data, pairs_data[i].currency, 0,0,WHOLE_ARRAY);
         	//Работа с secondData
         	...
      }
   }
 

Amigos míos, no puedo dormir sin resolver este problema durante algún tiempo:

Utilizo un indicador, que periódicamente se refresca después de recibir un tick. Pero a veces esta actualización es necesaria en este momento, pero el tic es con retraso, y los fines de semana el mercado está dormido.
Tengo que hacer clic con el botón derecho del ratón en el gráfico - "actualizar". Lamentablemente, no he encontrado una tecla de acceso directo para esta acción.

Lo más efectivo que veo es un indicador/asesor independiente muy especializado con un botón en el gráfico, que al pulsarlo imita la acción de "refrescar" una sola vez. He intentado buscar la solución en Google, pero sin éxito...

Ya que el tema se llama "Cualquier pregunta de los novatos, ayuda y discusión" me atrevo a hacer esta pregunta.
Espero que alguien inteligente en este asunto ayude, o al menos meta la nariz - "exactamente ESTO ya se ha discutido aquí".


 
Roman Sharanov:

la diferencia media cercana no es igual a la diferencia media cercana, ay y ah

Bueno, ¡eso es obvio!

Pero si se pasa al espacio de las medias cercanas, se está automáticamente en un espacio matemático diferente.

Es decir, realizas una transformación integral de medias móviles, y conscientemente(!!!! En tu caso, según entiendo, no del todo) dejas el espacio de las cotizaciones (por Close, en tu caso).

Es decir, se abandona conscientemente las cotizaciones (Close) y se entra en el espacio de la media móvil (integral).

Nadie te obliga a hacerlo. Lo haces tú mismo, por tu propia voluntad, y de forma bastante consciente. (!?)

Pero... En este nuevo espacio (integral) hay que trabajar con las diferencias de las medias, y no con las cotizaciones.

¡¡¡La diferencia entre comillas no tiene sentido en el espacio (integral) de los promedios!!!

¡¡¡Y la diferencia media entre comillas en el espacio medio integral tampoco tiene sentido !!!

Espero que estas sencillas verdades matemáticas te queden claras. (!?)

------------------------------------------------------------------------------------------------

Y lo que tienes es que te mueves en el espacio de los promedios. Y, al mismo tiempo, sigue considerando la diferencia media por un cierre.

¿Qué clase de milagro matemático es ese?

-------------------------------------------------------------------------------------------------------

No se puede tener un pie en el barco y otro en la orilla y seguir navegando en el mar.

 
Alexey Viktorov:

Por supuesto, cada uno es libre de hacer lo que quiera. Pero, ¿por qué debo copiar elemento por elemento en otra matriz bidimensional y luego trabajar con esta matriz bidimensional? ¿No podemos realizar esos cálculos en lugar de copiar?

¿O me estoy perdiendo algo? ¿Se puede copiar una matriz unidimensional en la segunda dimensión de una matriz bidimensional?

Probablemente no entiendas algo.

Por definición, no está permitido realizar cálculos en matrices de datos sin procesar.

Para realizar los cálculos, debemos copiar la matriz de datos original en una nueva matriz, y luego realizar los cálculos con esta nueva matriz.

De este modo, si se producen errores o fallos, siempre podemos volver fácilmente a la matriz original y empezar de nuevo.

----------------------------------------------------------------------------------------------------------------------------------

Si utilizamos el array original para los cálculos, cualquier error será fatal.

--------------------------------------------------------------------------------------------------------------------------------------------

Y copiar una matriz unidimensional en una bidimensional puede ser bastante útil.

Por ejemplo, escribimos "color de las comillas" en la primera matriz, y las propias comillas en la segunda.

Entonces por el "color" del array se puede juzgar sobre los movimientos de las propias cotizaciones, sin prestar atención a los valores.

------------------------------------------------------------------------------------------------------------------------------------------------

Por cierto, es útil tener una "gradación de color" similar en el propio gráfico (¡y no sólo un fondo liso!).

También puedes hacer una "barra de color" en el lateral. Es muy útil tenerlo para el comercio.

 
Сергей Николаев:


Utilizo un indicador, que periódicamente se refresca después de la llegada de la garrapata. Pero a veces esta actualización se necesita ahora mismo, y el tick se recibe con retraso, y los fines de semana el mercado está dormido.
Tengo que hacer clic con el botón derecho del ratón en "refrescar" el gráfico. Lamentablemente, no he encontrado ninguna tecla de acceso directo para esta acción.

seguir este evento en un temporizador y actualizar su indicador

 
neverness:

Probablemente no entiendas algo.

Los cálculos en conjuntos de datos brutos están, por definición, prohibidos.

Realmente... no puedes entender una tontería como la que escribes...

¿Qué matrices originales? ¿Y quién lo prohibió?

Todo lo demás, no sólo es difícil de entender el significado, sino que incluso es imposible entender a qué se refiere todo lo que has escrito...

 
Alexey Viktorov:

De hecho... Es imposible entender semejantes tonterías como las que escribes...

¿Qué son las matrices originales? ¿Y quién lo prohibió?

Todo lo demás, es difícil no sólo entender el significado, incluso entender a qué se refiere todo lo escrito...

Practica la comprensión de las "tonterías", no de ti mismo.

Una vez más, en la programación, los datos brutos no se corrigen, y no cambian bajo ninguna condición.

Por eso estos datos van sólo "en modo lectura - SOLO LECTURA".

Es decir, para trabajar con los datos en bruto, hay que copiarlos en una nueva matriz de datos.

Y es por eso que C++Builder tiene un procedimiento para copiar datos en el bloque Memo, que por sí mismo determina el tamaño de la matriz necesaria para copiar.

Por cierto, esto también está presente en MT4/MT5. Bien hecho, los desarrolladores de MT4/MT5 se encargaron de ello.

 
neverness:

Otra sarta de tonterías que no sólo no tiene ninguna relevancia en el tema que nos ocupa, sino que no tiene ningún sentido.

 
Alexey Viktorov:

Otra sarta de tonterías que no tiene nada que ver con el tema en cuestión y que no tiene ningún sentido.

No te enfades. Es normal. Si no lo entiendes, no pasa nada. No es gran cosa.

Razón de la queja: