Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1039

 
Gracias por las respuestas, eso es lo que pensaba. Pero aquí está el problema, el hecho es que todos los días pierdo el comienzo de la tabla, en los minutos es de unos dos o tres meses, por lo que el agua todos los días hay un gráfico de corte para el día, por lo que los indicadores comienzan a contar todos los días desde un lugar diferente, por lo que sus lecturas cambian y en general no es posible trabajar, cómo aumentar la historia, y al principio de la tabla no se pierde ... y por la mañana abro MT y tuve todas las señales, porque los indicadores comenzaron a contar desde otro lugar????
 
nikelodeon: Todos los días me falta el principio del gráfico,

Servicio -> Configuración -> Historial Barra Máxima yGráficos de Barra Máxima en la Ventana

Ahora la velocidad. La mayoría de los indicadores sólo manejan una, la última barra de cada tick. O 2 cuando aparece una nueva barra. Pero hay indicadores que calculan muchas o incluso todas las barras en cada tick debido a errores de programación o debido a un algoritmo específico. En primer lugar, tenemos que identificarlos. Esto se puede hacer utilizando el Administrador de Tareas, determinando la carga de la CPU. O, más precisamente, puede insertar en el indicador algo como

  if(XXX>1)Alert("Пересчитываем=",XXX,"   Bars=",Bars);
где XXX - количество пересчитывемых баров. При запуске будет много, затем на каждый новый бар 2

Es poco probable que el indicador deba recalcular todas las barras. Deberíamos comprobar 1) lo que devuelve este indicador por el operador return 2) el número de barras recalculadas en el código del indicador. 3) Máximas barras en la ventana 4) Los indicadores, llamados por la función iCustom, no deben estar en el gráfico. De lo contrario, obtendremos la duplicación del indicador y aumentaremos la carga del procesador.

Escribo el texto en Word y lo copio a través del portapapeles para mejorar la alfabetización. Si no, 4 sintaxis y 1 coma...


 

¡Buenos días, colegas!

Por favor, díganme cuál es el problema con este trozo de código:

   int TF[6]={1,5,15,30,60,240};
   for(int TF=0;TF<6;TF++)
      for(int i=iBars(NULL,TF[TF]);i>=0;)
El compilador produce esto:
'[' - array required        20      30
La ayuda y el tutorial no dicen nada sobre el uso de arrays en series temporales, ¿se puede solucionar el problema? ¿De qué otra manera podemos hacer una repetición de todas las velas en múltiples TFs?
¡Muchas gracias!
 
Ekburg: Por favor, díganme cuál es el problema con este trozo de código:
 int TF[6]={1,5,15,30,60,240};
   for(int TF=0;TF<6;TF++)       TF[TF] ???????

TF se describe como una matriz de 6 elementos, es decir, hay: TF[0]=1, TF[1]=5, TF[2]=15, TF[3]=30 TF[4]=60 TF[5]=240
Referirse a TF sin corchetes, es decir, sin especificar un índice, no tiene sentido. ¿Qué elemento de la matriz debo utilizar?
Supongo que se podría utilizar algo como for(int NTF=0;NTF<6;NTF++) for(int i=iBars(NULL,TF[NTF]);i>=0;)
 
Ekburg:

¡Buenos días, colegas!

¿Puede decirme cuál es el problema con este trozo de código?

int TF[6]={1,5,15,30,60,240};
for(int i=0; i<6; i++) int b=iBars(NULL,TF[i]);
 
LRA:
TF se describe como una matriz de 6 elementos, es decir, hay: TF[0]=1, TF[1]=5, TF[2]=15, TF[3]=30 TF[4]=60 TF[5]=240
Acceder a TF sin corchetes, es decir, sin especificar un índice, no tiene sentido. ¿Qué elemento de la matriz debo utilizar?
Supongo que se podría utilizar algo como for(int NTF=0;NTF<6;NTF++) for(int i=iBars(NULL,TF[NTF]);i>=0;)
artmedia70:

Gracias, chicos)

Entonces, el hecho de haber definido la variable TF en el primer operadorfor(int TF=0;TF<6;TF++), ¿el compilador lo confunde con un array?

 
Ekburg ¿El compilador confunde la variable TF con un array?

Es peor... TF se declara dos veces 1) como un array 2) como una variable entera. La segunda declaración cubre (hace invisible, casi destruye) la primera.

El compilador genera primero la advertencia: la declaración de 'TF' oculta la declaración local ... La segunda declaración de TF oculta la anterior. Ahora TF no es un array sino una variable entera. Por eso el siguiente uso de TF[] requiere un array que ya está oculto, y el error: '[' - array requerido Array required.

 
LRA:

Es peor... TF se declara dos veces 1) como un array 2) como una variable entera. La segunda declaración cierra (hace invisible, casi destruye) la primera.

El compilador generará primero la advertencia: la declaración de 'TF' oculta la declaración local ... La segunda declaración de TF oculta la anterior. Ahora TF no es un array sino una variable entera. Por eso el siguiente uso de TF[] requiere un array que ya está oculto, y el error: '[' - array requerido Array required.



Eso es... Ya veo, muchas gracias.

arreglado todo, no se devuelve ningún error (sin embargo, estaba confundido por el hecho de que cuando declaré la variable f en lugar de la variable TF, no hubo errores usando TF[TF]),

pero el script no se abre en la terminal, ¿tal vez se trate de advertencias?

 
LRA:

Servicio -> Configuración -> Historial Barra Máxima yGráficos de Barra Máxima en la Ventana


Ahora la velocidad. La mayoría de los indicadores sólo manejan una, la última barra de cada tick. O 2 cuando aparece una nueva barra. Pero hay indicadores que calculan muchas o incluso todas las barras en cada tick debido a errores de programación o debido a un algoritmo específico. En primer lugar, tenemos que identificarlos. Esto se puede hacer utilizando el Administrador de Tareas, determinando la carga de la CPU. O, más precisamente, puede insertar en el indicador algo como

Es poco probable que el indicador deba recalcular todas las barras. Deberíamos comprobar 1) lo que devuelve este indicador por el operador return 2) el número de barras recalculadas en el código del indicador. 3) Máximas barras en la ventana 4) Los indicadores, llamados por la función iCustom, no deben estar en el gráfico. De lo contrario, obtendremos la duplicación del indicador y aumentaremos la carga del procesador.

Escribo el texto en Word y lo copio a través del portapapeles para mejorar la alfabetización. De lo contrario, hay 4 sintaxis y 1 coma...



Con los errores es fácil. Gracias por la respuesta, que no ha servido de nada. Soy más que un usuario de mkul. Todo lo que me has escrito es conocido y probado desde hace tiempo, el indicador cuenta una vez y luego con la llegada de una nueva barra, sólo cuenta una barra, lo he publicado todo bien visible. Tengo el historial de la barra máxima en la ventana. Creo que tal vez mi agente de bolsa se equivoca. Por ejemplo, hoy he guardado los datos sobre el oro en un archivo KQF, pero se han vuelto inconsistentemente diferentes del archivo que guardé ayer. Durante el día todo parece ir bien, pero vamos a ver qué pasa mañana...
 

¡¡Ekburg!! Todas las advertencias deben ser eliminadas. La primera advertencia significa que la declaración no tiene efecto - descartada por el compilador - esto es malo. La última advertencia es que el tamaño de la variable local (array) supera los 512kB y, por lo tanto, no tiene ningún efecto. El resto de las advertencias - una variable no inicializada podría ser utilizada. Es como cuando te olvidas de poner dinero en la tarjeta e intentas gastarlo. Tenemos que comprobar todas las ramas del programa. A veces, el compilador está demasiado asegurado. En este caso deberías declararlo así: int x=0; string y=""; bool z=false;