[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 415

 

Castigue-o, coloque-o no canto. :)

Em essência, mantenha-o simples, o fraseado é projetado de tal forma que você pode quebrar seu cérebro e não entender o que você quer. Ninguém sabe o que ele "aprendeu" com você antes.

 
Shniperson:
Cavalheiros, como "treinar" um EA para não negociar à noite ? Isto é, tempo terminal entre 23 e 02 horas (GMT)... Hora()>=2&Hora()<=23 não ajudou...

extern int bh = 0; // час начала
extern int bm = 0; // минута начала
extern int eh = 23;// час окончания
extern int em = 2; // минута окончания

int start()
{
   if(TradeTime() && Ваши условия входа) OrderSend(...);
}

bool TradeTime()
  { 
   int TimeNow = 60 * Hour() + Minute();   
   if (60 * bh + bm < TimeNow && TimeNow < 60 * eh + em) return (true);
   return (false);
  }
 

Здравствуйте всем. У меня МТ4 (демо) не связывается с сервером, даже не пытается. Постоянно горит надпись "нет связи". Пробовал "просканировать серверы" - не помогает.

 
Katso:


Existe um representante a caminho?
 
Vinin:

Não
 
int start()                         
  {
//--------------------------------------------------------------------
   int
   S1,S2,                                                                 //S1 и S2 площадя следущего и предыдущего прямоугольников соответственно 
   j;                                                                     //значения стороны
//--------------------------------------------------------------------
   for( j=499, int i=1; i<500; i++,j--)                                   //последовательный перебор значений площади
      {
       S2=S1; S1=i*j;                                                     //вычисляем площадь следущую и предыдущую
       if(S2>=S1)                                                         //проверка максимального значения  
         {
          i--; j++;                                                       //возвращаем значения сторон соответствующие максимальной площади
          break;
         }
      }                 
//--------------------------------------------------------------------
Alert("Максимальная площадь равна ",S2,"mm*mm  A=",i,"mm B=",j,"mm");        
return(0);
  }
//--------------------------------------------------------------------

Este algoritmo funciona corretamente, mas se você trocar os operadores de atribuição no cabeçalho do cabeçalho por declaração na primeira expressão, o programa não funciona mais. Por quê?

int start()                         
  {
//--------------------------------------------------------------------
   int
   S1,S2,                                                                 //S1 и S2 площадя следущего и предыдущего прямоугольников соответственно 
   j;                                                                     //значения стороны
//--------------------------------------------------------------------
   for(int i=1, j=499; i<500; i++,j--)                                    //последовательный перебор значений площади
      {
       S2=S1; S1=i*j;                                                     //вычисляем площадь следущую и предыдущую
       if(S2>=S1)                                                         //проверка максимального значения  
         {
          i--; j++;                                                       //возвращаем значения соответствующие максимальной площади
          break;
         }
      }                 
//--------------------------------------------------------------------
Alert("Максимальная площадь равна ",S2,"mm*mm  A=",i,"mm B=",j,"mm");        
return(0);
  }
//--------------------------------------------------------------------
 
VladimirR:

Este algoritmo funciona corretamente, mas se você trocar os operadores de atribuição no cabeçalho do cabeçalho por declaração na primeira expressão, o programa não funciona mais. Por quê?






for(int i=1, j=499;

declarar a variável j uma segunda vez

 
ilunga:

declarar a variável j uma segunda vez

Obrigado))))

 
VladimirR:

Este algoritmo funciona corretamente, mas se você trocar os operadores de atribuição no cabeçalho do cabeçalho por declaração na primeira expressão, o programa não funciona mais. Por quê?







Pergunto-me por que os valores do contador deveriam ser alterados duas vezes no loop. E por alguma razão não há atribuição (preliminar) de S2. No início é 0, e somente na segunda iteração (mais precisamente na terceira) há uma comparação real de valores (depende de como contar a partir de zero ou de um)
 

Isto também não funciona

int start()
{
int S1,S2; //S1 e S2 das áreas do próximo retângulo e do anterior respectivamente
//

for( int i=1, j=499; i<500; i++,j--) //valores de área de pesquisa sequencial
{
S2=S1; S1=i*j; //calcule a área próxima e anterior
if(S2>=S1) //check maximum value {
i--; j++; //valores de retorno correspondentes à área máxima
break;
}
}
///
Alerta("Área igual a ",S2, "mm*mm A=",i, "mm B=",j, "mm");
return(0);
}
//+------------------------------------------------------------------+