Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 708

 

Olá.

Quando estou tesselando (terminal MT-4-670, Alt+R), as janelas do gráfico são colocadas em novos lugares a cada vez.

Você pode informar se é possível consertá-los de forma que a posição de cada gráfico em particular na tela seja constante?

 
Shurkin:

Olá.

Quando estou tesselando (terminal MT-4-670, Alt+R), janelas dos gráficos são colocadas em novos lugares a cada vez.

Você pode informar se é possível corrigi-los para que a posição de cada gráfico em particular na tela seja constante?



A colocação depende de qual gráfico estava ativo no momento em que o comando "Mosaico" foi aplicado.
 
barabashkakvn:


O arranjo depende de qual gráfico estava ativo no momento em que o comando "Mosaico" foi aplicado.


Depende também da disposição anterior dos gráficos. O algoritmo para esta dependência não é totalmente claro.
 
Shurkin:


E também depende do arranjo anterior dos gráficos. O algoritmo para esta dependência não é totalmente claro.

É melhor configurá-lo manualmente uma vez, como você precisa, e ele sempre abrirá o mesmo caminho com precisão de pixel!
 

onde está o erro?

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:

onde está o erro?

Se este pedaço de código for inserido no indicador, não haverá erro:

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);
  }
 
Tenho um roteiro simples, mas que não dá nada. O alerta não aparece
 
barabashkakvn:


Se você tem um roteiro, então:

double q=High[1]; // массив High не объявлен - компиляции не будет
double a=Low[1];  // массив Low не объявлен - компиляции не будет
Você precisa declarar as matrizes, rubricá-las (preenchê-las).

Desde quando é necessário declarar as séries cronológicas padrão? E os valores de expressões duplas são permitidos no laço, como no exemplo acima? E não é assim que o balcão é construído para o loop.
 

Sobre a inicialização - confundido com "cinco".

Mas não se pode comparar diretamente dois valores de tipo duplo. Talvez haja aqui um erro. Tipos reais (duplo, flutuador)

 
Não se trata nem dos tipos em si (duplo, flutuador), trata-se da construção do laço
for(double u=a;u<q; int i++) //i - нигде не инициализирован, всегда ли значение по умолчанию = 0?