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 472

 
Pr0t0tip:

Olá, eu tenho o seguinte problema. O registro dá uma OrderModify de 130 quando testado, ajude-me a encontrar uma saída. Aqui está o código da EA:


SL = NormalizeDouble(Bid+StopLoss*Point, Digits);

SL = NormalizeDouble(Bid-TakeProfit*Point, Digits);     Здесь поменяй   SL  на   TP
SL = NormalizeDouble(Ask-StopLoss*Point, Digits);

SL = NormalizeDouble(Ask+TakeProfit*Point, Digits);     И здесь
 

'}' - nem todos os caminhos de controle retornam um valor

destaca tal erro na função..... embora retorne um valor e funcione bem em outro indicador sem este erro


 
Zver4991:

'}' - nem todos os caminhos de controle retornam um valor

destaca tal erro na função..... embora retorne um valor e funcione bem em outro indicador sem este erro



Abra em um novo editor, destaque o primeiro parêntese e verifique o último, você verá tudo de uma só vez.
 

Você pode me dizer se é possível organizar uma execução passo a passo do programa no modo de depuração? E adicionar mais variáveis para rastreamento

 
Zver4991:

'}' - nem todos os caminhos de controle retornam um valor

a função..... embora retorne um valor e funcione bem em outro indicador sem este erro


Esta é uma mensagem que lhe diz que existem opções de ramificação na função quando ela pode não devolver nada. Por exemplo:

//+----------------------------------------------------------------------------+
int TestFunc(int a) {
   if(a>2 || a<0) a=2;
   if(a==0) return(1);
   else if(a==1) return(2);
   else if(a==2) return(3);
}
//+----------------------------------------------------------------------------+

O valor de uma variável parece ser limitado na faixa de 0 a 2, mas o compilador ainda considera isto um erro.

Coloque return() com valor de retorno padrão da função antes do parêntese de fechamento do corpo da função e tudo ficará bem:

//+----------------------------------------------------------------------------+
int TestFunc(int a) {
   if(a>2 || a<0) a=2;
   if(a==0) return(1);
   else if(a==1) return(2);
   else if(a==2) return(3);
   return(-1);
}
//+----------------------------------------------------------------------------+
 
artmedia70:

Isto lhe diz que existem opções de ramificação na função quando ela pode não devolver nada. Por exemplo:

O valor de uma variável parece ser limitado na faixa de 0 a 2, mas o compilador ainda a considera um erro.

Coloque retorno() antes do parêntese de fechamento do corpo da função com o valor de retorno padrão da função e tudo será tripa de grão:


E se a não for um tipo int?

tipo de função - valor de retorno no final da função

int  - return(-1);

void - return;

bool - return(false);

string - return(""); 
 
artmedia70:

Isto lhe diz que existem opções de ramificação na função quando ela pode não devolver nada. Por exemplo:

O valor da variável a parece estar limitado a uma faixa de 0 a 2, mas o compilador ainda a considera um erro.

Coloque retorno() antes do parêntese de fechamento do corpo da função com o valor de retorno padrão da função e tudo será tripa de grão:


muito obrigado..... salvou meus nervos
 
Vladon:


E se o tipo de uma pessoa não for int?

o tipo de função é o resultado do retorno no final da função


O que foi isso? Apenas dei um exemplo - a primeira coisa que veio à minha cabeça. Você poderia ter escrito uma função devolvendo qualquer outro tipo de dados (exceto os nulos). Isso não muda a questão.
 
artmedia70:
O que foi isso? Apenas dei um exemplo - a primeira coisa que veio à minha cabeça. Você poderia ter escrito uma função devolvendo qualquer outro tipo de dados (exceto os nulos). Isso não muda a questão.


Estava apenas esclarecendo o tipo de dados. Este é um ramo de perguntas de novatos, então eles esperam o mesmo retorno em qualquer função
 

Ajuda com os bugs!

Decidi fazer um EA para mim com base em um exemplo do manual mql4. Já faz uma semana que estou mexendo nisso, mas isso sempre me dá algum tipo de erro.

Favor verificar o que pode estar errado, talvez algo deva ser mudado ou removido além de parênteses.

Erros:

'}' - fim inesperado do programa expert.mq4 218 3

{' - parênteses desequilibrados expert.mq4 23 2

Arquivos anexados:
expert_1.mq4  9 kb
Razão: