[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 14

 

a função em si deixará de funcionar, se houver um requote pela outra condição

if ( res!=-1){    
//..
}else{
    err = GetLastError();
    if ( err > 1) try = 0;
    Comment("Ошибка - ", err);          
}

try = 0, então o loop while vai parar e abrirOrder() retorna falso

Mas se usarmos a construção while(!openOrder(...)){}, então ela continuará a abraçar até abrir uma ordem

 
keekkenen . É sobre isso que eu estou curioso em sua função inicial() enquanto(!openOrder(...)){} você não revela o que é feito lá em {}. Você limita o número de tentativas de solicitação?
 

Como você escreveu que a ordem deve abrir, eu dei uma construção tão "rígida", se ela deve abrir, ela abrirá independentemente de quantas tentativas forem necessárias... Se abrirmos as ordens normalmente, então enquanto não for necessário, podemos passar o número de tentativas na tentativa e na função já determinar se devemos reagir a erros críticos ou ignorá-los e apenas tentar abrir a ordem tentar uma vez...


A questão do while(!openOrder(...)){} é que criamos um loop eterno, ou seja, ele funcionará até que a ordem seja aberta.

Na verdade, defina quais táticas devem ser usadas ao abrir pedidos, nós ajudaremos...

 

A questão é a seguinte:

Eu não posso trabalhar com uma matriz.

Inicializo a matriz, preencho-a com quaisquer dados, mas quando a leio, há zeros.

O que eu estou fazendo de errado?


double MASS[];

for (int i = 0; i < 10; i++)
 {
  MASS[ i]= i;
 }
for (int n = 0; n < 10; n++)
 {
  Print( MASS[ n]);
 }
 
Kontra писал(а) >>

Eu não posso trabalhar com uma matriz.

Você tem que especificar o tamanho da matriz, por exemplo, ao declará-la:

double MASS[10];

Ou então:

ArrayResize(MASS,10);
 

E se eu não souber qual será o tamanho da minha matriz?

E mesmo que o faça, ele não se compila:

Eu inseri uma variável externa:

extern int Razmer = 10;

E o resto do texto:

   double MASS[ Razmer];

for (int i = 0; i < 10; i++)
 {
  MASS[ i]= i;
 }
for (int n = 0; n < 10; n++)
 {
  Print( MASS[ n]);

A saída é:

Razmer' - número inteiro esperado C:\Program Files\MetaTrader - Alpari2experts\temp.mq4 (36, 16)
']' - C:\Program Files\MetaTrader - Alpari2 Experts\temp.mq4 (36, 22)
'MASSA' - variável não definida C:\Program Files\MetaTrader - Alpari2 Experts\temp.mq4 (40, 3)
'MASSA' - variável não definida C:\Program Files\MetaTrader - Alpari2 Experts\temp.mq4 (44, 9)

 
Kontra писал(а) >>

E se eu não souber qual será o tamanho da minha matriz?

Portanto, você tem que usar a função ArrayResize quando souber quantos elementos estarão na matriz.

Com uma variável externa, como você pode ver, não vai funcionar:)

Você pode fazer desta maneira:

ArrayResize(MASS,Razmer);
 

Obrigado, caro Cirurgião.

Está funcionando :)

 
int init()
  { 
   double A=AccountBalance()         //Определяем баланс
   double B=NormalizeDouble( A/50,0)  //Выполняем вычисления и делаем результат целым числом
   double Lots= B*0.01                //Вычисление лота.

if ( Lots>0)Alert("Лот будет ", Lots )

   return(0);
  }
Qual é o erro aqui e como ele pode ser implementado?
 

O que exatamente você está tentando alcançar?

Razão: