Bibliotecas: Biblioteca de compatibilidade entre o MQL4 e MQL5

 

Biblioteca de compatibilidade entre o MQL4 e MQL5:

Versão 1.2 - MQL5\Include\mql4compat.mqh

Autor: T-1000

 

Olá,

Infelizmente, sua biblioteca está incompleta e com erros. Estou tentando usar sua biblioteca com esse indicador mql4 http://codebase.mql4.com/7472. Segui suas instruções e obtive 47 erros e 14 avisos.

'JJN-Fibo_with_compat_library.mq5' JJN-Fibo_with_compat_library.mq5 1 1
'mql4compat.mqh' mql4compat.mqh 1 1
'i' - identificador não declarado JJN-Fibo_with_compat_library.mq5 150 8
'ObjectDelete' - contagem de parâmetros incorreta JJN-Fibo_with_compat_library.mq5 175 4
'ObjectDelete' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 176 4
'ObjectDelete' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 177 4
'ObjectDelete' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 178 4
'ObjectDelete' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 179 4
'ObjectDelete' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 180 4
'ObjectDelete' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 181 4
'DisplayDec' - identificador não declarado JJN-Fibo_with_compat_library.mq5 190 4
'ObjectCreate' - contagem de parâmetros incorreta JJN-Fibo_with_compat_library.mq5 196 4
'DisplayDec' - identificador não declarado JJN-Fibo_with_compat_library.mq5 197 100
'StringConcatenate' - contagem de parâmetros incorreta JJN-Fibo_with_compat_library.mq5 197 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 197 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 198 4
'StringConcatenate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 199 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 199 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 200 4
'StringConcatenate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 201 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 201 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 202 4
'StringConcatenate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 203 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 203 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 204 4
'StringConcatenate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 205 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 205 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 206 4
'StringConcatenate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 207 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 207 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 208 4
'StringConcatenate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 209 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 209 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 214 4
'DisplayDec' - identificador não declarado JJN-Fibo_with_compat_library.mq5 215 104
'StringConcatenate' - contagem de parâmetros incorreta JJN-Fibo_with_compat_library.mq5 215 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 215 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 216 4
'StringConcatenate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 217 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 217 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 218 4
'StringConcatenate' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 219 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 219 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 220 4
'StringConcatenate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 221 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 221 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 222 4
'StringConcatenate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 223 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 223 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 224 4
'StringConcatenate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 225 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 225 30
'ObjectCreate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 226 4
'StringConcatenate' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 227 30
conversão implícita de 'number' para 'string' JJN-Fibo_with_compat_library.mq5 227 30
'ObjectDelete' - contagem incorreta de parâmetros JJN-Fibo_with_compat_library.mq5 99 4
'ObjectDelete' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 100 4
'ObjectDelete' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 101 4
'ObjectDelete' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 102 4
'ObjectDelete' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 103 4
'ObjectDelete' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 104 4
'ObjectDelete' - contagem de parâmetros errada JJN-Fibo_with_compat_library.mq5 105 4
'return' - a função 'void' retorna um valor JJN-Fibo_with_compat_library.mq5 110 4
47 erro(s), 14 aviso(s) 48 15

 
angevoyageur:

Olá,

Infelizmente, sua biblioteca está incompleta e com erros. Estou tentando usar sua biblioteca com esse indicador mql4 http://codebase.mql4.com/7472. Segui suas instruções e obtive 47 erros e 14 avisos.

Os nomes das funções que estão dando erros precisam ser ajustados adicionando MQL4 no final de seus nomes para que os erros de compilação desapareçam.

Além disso, testei esse indicador no MT4 e parece que ele também não funcionou corretamente.

P.S.: Fiz algumas pequenas atualizações e ajustes para a biblioteca de compatibilidade, portanto, você pode pegar a versão 1.1 mais recente assim que ela for aprovada. Na versão 1.0, a função StringConcatenate() da string não funcionava corretamente, pois entrava em conflito com a MQL4 e a MQL5 na forma como funcionava - adicionei StringConcatenateMQL4 na versão 1.1
 
T-1000:
Os nomes das funções que estão dando erros precisam ser ajustados adicionando MQL4 no final de seus nomes para que os erros de compilação desapareçam.

Também testei esse indicador no MT4, mas parece que ele não funcionou corretamente lá também.

P.S.: Fiz algumas pequenas atualizações e ajustes para a biblioteca de compatibilidade, de modo que você pode obter a versão 1.1 mais recente assim que ela for aprovada. Na versão 1.0, a função StringConcatenate() da string não funcionava corretamente, pois entrava em conflito com a MQL4 e a MQL5 na forma como funcionava - adicionei StringConcatenateMQL4 na versão 1.1.

Obrigado por sua resposta. Verificarei quando sua versão 1.1 estará disponível.

  • Se muitos nomes de funções precisarem ser ajustados, não se trata mais de uma biblioteca de compatibilidade, seria melhor ajustar sua biblioteca para suprimir o sufixo 'MQL4'. Sei que isso não é possível para todas as funções (StringConcatenate, por exemplo).
  • Sugiro que você verifique esse tipo de código, pois WHOLE_ARRAY não se destina a funcionar com a função Copyxxxx, e o resultado dessa função provavelmente não é o que você deseja.
void __Open(double &_Open[])
  {
   ArraySetAsSeries(_Open,true);
   CopyOpen(_Symbol,_Period,0,WHOLE_ARRAY,_Open);  // What is the returned value ?
  }
 

um três.

e a implementação da pesquisa de indicadores padrão é um lixo.

 
quando vou compilar o arquivo mql4compat.mqh, apresenta um erro: Erro
 

Essa biblioteca parece não ter sido mantida em 2021. Tentei entrar em contato com o autor enviando-lhe mensagens por meio da MQL5, mas não obtive resposta. Conectei-me continuamente ao canal de IRC mencionado por mais de um mês, mas fiquei sozinho o tempo todo...

Por isso, criei uma versão no github que corrige avisos/erros ao compilar com a versão 2981 da MQL5, bem como uma biblioteca muito simples que permite executar um script/ EA convertido na MQL4.

Portanto, obtenha a versão mais recente aqui: https: //github.com/eromawyn/mql4compat

E não hesite em me enviar seus patches se tiver feito algo interessante!

GitHub - eromawyn/mql4compat: MQL4 to MQL5 compatibility library
GitHub - eromawyn/mql4compat: MQL4 to MQL5 compatibility library
  • github.com
MQL4 to MQL5 compatibility library. Contribute to eromawyn/mql4compat development by creating an account on GitHub.