[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 368

 

Boa tarde.

Tenho que determinar a abertura de um novo bar. Inseri em meu Expert Advisor uma função de puro exemplo do tutorial MQL

void Fun_New_Bar() // Nova função de detecção de barras
{
data estática hora New_Time=0; // Tempo atual da barra
bool New_Bar=false; // Sem nova barra
if(New_Time!=Time[0]) // Compare o tempo
{
New_Time=Time[0]; // O tempo agora é
New_Bar=true; // Apanhei a nova barra
}
return(New_Bar);
}

Ele dá um único erro "(' - definição de função inesperada - eu entendo isto como uma definição de função inesperada.

Defini a variável "New_Time" antes da função int como data/hora New_Time;- sem ela a compilação deu um erro de variável indefinida.

A função é chamada no programa principal da seguinte forma:

Fun_New_Bar(); // Chamando f-i
if (New_Bar==false) // Se a barra não for nova...
retornar;

Quem pode me dizer por que tudo isso não funciona?

E outra observação interessante - quando você conserta algo, você o copia - sem erros, então você o copia novamente - novamente

(' - definição de função inesperada - é por isso. Estou escrevendo tão ofuscado que o compilador não consegue me entender de imediato?

 
keekkenen >> :
acontece, às vezes você imprime lugares tortuosos e vê 0,0000 = 0 e não funciona - falso, normaliza os valores só no caso de.

Acrescentei uma nova condição que duplica a problemática e o problema é resolvido.

Obrigado!


PS É bom que no meu caso o erro com as ordens tenha relatado o problema - em outros a lógica da EA pode estar completamente quebrada,

sem nenhuma mensagem, e não haverá maneira de saber sobre isso :(((

 

A função é declarada nula, ou seja, não retorna nada, mas no código diz return(New_Bar); esta é a razão do erro...

deve ser declarado de acordo com o tipo de variável retornada - bool Fun_New_Bar()

e usá-lo de acordo com isso se ( !Fun_New_Bar() ) retornar(0);

 
keekkenen писал(а) >>

A função é declarada nula, ou seja, não retorna nada, mas no código diz return(New_Bar); esta é a razão do erro...

deve ser declarado de acordo com o tipo de variável retornada - bool Fun_New_Bar()

e usá-lo de acordo com isso se ( !Fun_New_Bar() ) retornar(0);

Eu o tinha exatamente como "bool Fun_New_Bar()" na primeira versão, mas o erro era o mesmo, então eu nomeei a função como no manual - vazio. Eu implementei sua dica e não há nenhuma mudança - o erro é o mesmo.

Mas uma mudança ocorreu - o erro é encontrado na linha 279 (esta é a linha de comentários), enquanto a função começa em 280

Uma questão relacionada é se é aceitável carregar a função int() com algum bloco de análise único, por exemplo, determinando os valores das duas últimas reversões no indicador.

Eu já o fiz. Talvez isso possa causar um desligamento do Expert Advisor?

 

definiçãoda função inesperada - provavelmente faltando ou parênteses extras em código ANTES da função Fun_New_Bar,

Olhe o código cuidadosamente e você provavelmente encontrará o problema.

 
keekkenen писал(а) >>

definição da função inesperada - provavelmente faltando ou parênteses extras em código ANTES da função Fun_New_Bar,

Olhe o código cuidadosamente e você verá o que está errado.

Vou procurá-lo agora. Vou tentar espremer esta função no lugar de onde a estou chamando. Duas funções com tal erro já foram copiadas sem erros após terem sido movidas para o local de chamada. Além disso, se a função "defeituosa" for movida para o local de chamada, o mesmo erro pula para a outra função, não necessariamente a próxima em ordem.

 
alsu >> :

1. Instale o QIPInfium se você ainda não o tiver feito

2. Criar uma conta ICQ separada para o terminal

3. Instalar e configurar o plugin MsgBox - instruções detalhadas

A partir do Expert Advisor (indicador, roteiro), que deve produzir sinais, escreva arquivos com as mensagens necessárias na pasta OutBox, como explicado nas instruções no link acima. Para escrever no arquivo fora do diretório do terminal, você pode, por exemplo, usar a biblioteca ZI_File_Functions_Full_Lib


Assim, com um pouco de google e um pouco de criatividade, você pode fazer o que quiser em quatro etapas com programação mínima:))))

Obrigado, funciona :)

 

Ao executar a EA em modo de demonstração, a janela de confirmação do pedido continua aparecendo, como na negociação manual. Esta função foi cancelada nas opções, mas ainda está presa em algum lugar.

Existe alguma maneira de cancelar a janela de confirmação?

 
Andrei01 >> :

Ao executar a EA em modo de demonstração, a janela de confirmação de pedidos continua a aparecer, como na negociação manual. As opções cancelaram esta função, mas ela ainda está presa em algum lugar.

Há alguma maneira de cancelar esta janela de confirmação?


configurações_Configuração de serviços_Configuração de serviços-aconselhadores


expert_settings

 

obrigado. isso é exatamente o que não funciona, pois está escrito em algum lugar do perfil e não podia ser desfeito. o problema foi resolvido com a recriação do perfil.