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

 

Hola.

Cuando estoy teselando (terminal MT-4-670, Alt+R), las ventanas de los gráficos se colocan en lugares nuevos cada vez.

¿Puede indicar si es posible fijarlos de manera que la posición de cada gráfico en particular en la pantalla sea constante?

 
Shurkin:

Hola.

Cuando estoy teselando (terminal MT-4-670, Alt+R), las ventanas de los gráficos se colocan en lugares nuevos cada vez.

¿Puede indicar si es posible fijarlos de manera que la posición de cada gráfico en particular en la pantalla sea constante?



La colocación depende del gráfico que estaba activo en el momento de aplicar el comando "Mosaico".
 
barabashkakvn:


La disposición depende de qué gráfico estaba activo en el momento de aplicar el comando "Mosaico".


También depende de la disposición anterior de los gráficos. El algoritmo de esta dependencia no está del todo claro.
 
Shurkin:


Y también depende de la disposición anterior de los gráficos. El algoritmo de esta dependencia no está del todo claro.

Es mejor configurarlo manualmente una vez, según lo necesites, y siempre se abrirá de la misma manera con precisión de píxeles.
 

¿dónde está el error?

double Level=1.2925;
int i;
double u;
double q=High[1];
double a=Low[1];
for(u=a;u<q;i++)
  {
   u=u+i*Point;
   if(u==Level)
      Alert("Предыдущий бар пересекал уровень");
  }
 
305:

¿dónde está el error?

Si se inserta este trozo de código en el indicador, no habrá ningún error:

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
                 const datetime &time[],     // Time
                 const double &open[],       // Open
                 const double &high[],       // High
                 const double &low[],        // Low
                 const double &close[],      // Close
                 const long &tick_volume[],  // Tick Volume
                 const long &volume[],       // Real Volume
                 const int &spread[]         // Spread
                 )
  {
   double Level=1.2925;
   int i;
   double u;
   double q=High[1];
   double a=Low[1];
   for(u=a;u<q;i++)
     {
      u=u+i*Point;
      if(u==Level)
         Alert("Предыдущий бар пересекал уровень");
     }
   return(prev_calculated);
  }
 
Tengo un script sencillo, pero no da nada. La alerta no aparece
 
barabashkakvn:


Si tienes un guión entonces:

double q=High[1]; // массив High не объявлен - компиляции не будет
double a=Low[1];  // массив Low не объявлен - компиляции не будет
Hay que declarar las matrices, inicializarlas (rellenarlas).

¿Desde cuándo es necesario declarar series temporales estándar? ¿Y se permiten valores de expresiones dobles en el bucle, como en el ejemplo anterior? Y no es así como se construye el contador para el bucle.
 

Sobre la inicialización - se confunde con "cinco".

Pero no se pueden comparar dos valores de tipo doble directamente. Tal vez haya un error aquí. Tipos reales (double, float)

 
Ni siquiera se trata de los tipos en sí (double, float), sino de la construcción del bucle
for(double u=a;u<q; int i++) //i - нигде не инициализирован, всегда ли значение по умолчанию = 0?