Erro conversão MQL4 para MQL5 - preciso de ajuda por favor

 

Boa tarde

Eu terminei a conversão do Custom Indicator de MQL4 para MQL5. Em compensação estou pegando um erro que não consigo corrigir de jeito algum. O erro que pego  Function already defined and has a body. O erro está presente nessa linha de código.

}
ENUM_TIMEFRAMES TFMigrate (int tf)
{
 
PedroCamargo:

Boa tarde

Eu terminei a conversão do Custom Indicator de MQL4 para MQL5. Em compensação estou pegando um erro que não consigo corrigir de jeito algum. O erro que pego  Function already defined and has a body. O erro está presente nessa linha de código.

Olá PedroCamargo,

Por favor verifique novamente seu código em sua totalidade... Pela mensagem de erro em inglês você está definindo a mesma função duas vezes (ou duas funções com o mesmo nome) no corpo de seu indicador.

Por favor atente para o fato de que MQL5 é "case sensitive", ou seja, letras maiúsculas e minúsculas podem interferir no nome de variáveis e funções. 

Abraços,
Malacarne 

 
Malacarne:

Olá PedroCamargo,

Por favor verifique novamente seu código em sua totalidade... Pela mensagem de erro em inglês você está definindo a mesma função duas vezes (ou duas funções com o mesmo nome) no corpo de seu indicador.

Por favor atente para o fato de que MQL5 é "case sensitive", ou seja, letras maiúsculas e minúsculas podem interferir no nome de variáveis e funções. 

Abraços,
Malacarne 

Bom dia amigo. Infelizmente eu tiro uma das funções repetidas, o MetaTrader dá um bug assustador, com mensagem de erros até a linha 10000 (sendo que minha conversão do OBTR tem só 200). Se eu por outro lado tiro o corpo pelo fato de a função já estar definida, o mesmo erro acontece. Suspeito eu que seja um BUG na biblioteca que estou utilizando para conversão. Para evitar mais erros optei por começar o OBTR do zero.
 
PedroCamargo:
Bom dia amigo. Infelizmente eu tiro uma das funções repetidas, o MetaTrader dá um bug assustador, com mensagem de erros até a linha 10000 (sendo que minha conversão do OBTR tem só 200). Se eu por outro lado tiro o corpo pelo fato de a função já estar definida, o mesmo erro acontece. Suspeito eu que seja um BUG na biblioteca que estou utilizando para conversão. Para evitar mais erros optei por começar o OBTR do zero.

"Eu tiro uma das funções repetidas" significa que você, explicitamente, sabe que existem funções repetidas... e isso é um mal sinal...

Não é possível ter funções repetidas em nenhum código MQL5.

Ou você acerta isso, ou realmente essa mensagem continuará a aparecer.

Abraços,
Malacarne 

 
Malacarne:

"Eu tiro uma das funções repetidas" significa que você, explicitamente, sabe que existem funções repetidas... e isso é um mal sinal...

Não é possível ter funções repetidas em nenhum código MQL5.

Ou você acerta isso, ou realmente essa mensagem continuará a aparecer.

Abraços,
Malacarne 

Na verdade foi engano de expressão minha. Não há repetição da função, há apenas o corpo da função. Quando eu o tenho o, aparece o erro. Quando eu faço a remoção do mesmo, o meu Indicador buga completamente. 
 
Enfim corrigi e terminei a conversão do OBTR de MT4 para MT5. Qual não foi minha surpresa que ao ve lo operando, os valores estavam ridículos e haviam gaps no indicador. Pois bem abri o OBTR do MetaTrader 4 e vi que é ruim igual. Resultado joguei uma semana fora convertendo um indicador que não funciona. Lição aprendida.
 
PedroCamargo:
Enfim corrigi e terminei a conversão do OBTR de MT4 para MT5. Qual não foi minha surpresa que ao ve lo operando, os valores estavam ridículos e haviam gaps no indicador. Pois bem abri o OBTR do MetaTrader 4 e vi que é ruim igual. Resultado joguei uma semana fora convertendo um indicador que não funciona. Lição aprendida.

Olá Pedro, perfeito, o ideal era ter testado antes no MT4 para ver se estava dentro das tuas expectativas.

Seja como for, o importante é que teu trabalho para aprendizado de MQL4 e MQL5 não foi perdido, e é fazendo esse tipo de codificação que se aprende bastante.

Minha sugestão, é continuares gerando tua versão a partir desse mesmo código. 

 

É Figurelli o que importa foi o conhecimento adquirido. Fiquei muito decepcionado com o resultado final, mas bola pra frente. Infelizmente essas coisas acontecem. 

 
PedroCamargo:

É Figurelli o que importa foi o conhecimento adquirido. Fiquei muito decepcionado com o resultado final, mas bola pra frente. Infelizmente essas coisas acontecem. 

Exato Pedro, não esqueça também que muitas vezes é assim que se descobre novas estratégias, e na área de finanças quantitativas os bugs ou erros, em algumas situações, podem ajudar nisso.
 
figurelli:
Exato Pedro, não esqueça também que muitas vezes é assim que se descobre novas estratégias, e na área de finanças quantitativas os bugs ou erros, em algumas situações, podem ajudar nisso.

Exatamente. Muito obrigado pelo apoio. Infelizmente apareceu um problema no meu EA (não manda ordens de venda ou compra após o update), que tem me atrapalhado em terminar o OBTR. 

Razão: