Versão Beta do MetaTrader 4 IDE incluindo o novo compilador e editor MQL4

 

Início do tópico:

Abaixo está a versão beta da IDE, a mesma para MetaTrader 4/MQL4 e MetaTrader 5/MQL5. Esta é uma versão prévia para revisão pública.

Quais são as diferenças em relação à versão antiga da MQL4?

  • A prioridade das operações lógicas E/OU foi alterada. Agora tudo é como no clássico C/C++.

  • Introduziu uma avaliação resumida das expressões lógicas. Agora, ao avaliar uma expressão lógica, as demais subexpressões não são avaliadas. Como em C/C++.

  • O operador do interruptor agora usa apenas valores inteiros. Anteriormente, você poderia usar os verdadeiros.

  • Agora, você não pode usar uma parada completa em nomes variáveis. Além disso, não se pode usar os caracteres '@', '$', '?' em nomes variáveis.

  • Os requisitos para a função inicial foram reforçados. Anteriormente, era possível especificar parâmetros na função de início. Agora todos os pontos de entrada init, start, deinit, OnInit, OnStart, OnTick, OnTimer, etc. devem corresponder exatamente a suas assinaturas

  • Devido à expansão do conjunto de palavras-chave, não podemos usar nomes como short, long, float, const, virtual, input, delete, new, do, char.

  • Agora as funções de dll importadas não podem ter como parâmetro as matrizes de caracteres. Como na MQL5

  • Agora apareceram os nomes das variáveis predefinidas _Período, _Símbolo, _LastError, _CriticalError, _StopFlag, _Ponto, _Dígitos, _UninitReason, _RandomSeed que podem entrar em conflito com variáveis simples declaradas em fontes existentes com os mesmos nomes

  • O tipo de data/hora se tornou 8 bytes como na MQL5.

As diferenças não são fatais e podem ser facilmente corrigidas no código. Em troca, temos muitas características MQL5 disponíveis, assim como a velocidade de execução e um controle de qualidade muito mais rigoroso.


Estamos planejando realizar testes públicos ao longo do próximo mês para coletar o máximo de feedback possível e para preparar os desenvolvedores.

Discussão sobre o fórum da MQL5: https://www.mql5.com/ru/forum/13651

Arquivos anexados:
 

Isso foi o que mais me estressou:

Renat:

Agora as funções dll importadas não podem aceitar matrizes de caracteres como parâmetro. Como na MQL5

Por que é impossível manter a compatibilidade? Você precisa reescrevê-lo novamente? As matrizes de cordas MQL4 permanecem? Se permanecerem, não está claro como você proibiu e por quê?
 
É apenas uma questão de transferir para uma DLL.
 
Renat:

Discussão sobre o fórum da MQL4: https://www.mql5.com/ru/forum/13651

:)
 
Podemos realmente fazer o fórum MT4 como uma seção do fórum MT5?
 
Anteriormente, ao compilar, não havia avisos se os nomes das variáveis globais e locais coincidissem, mas agora ela emite - "declaração de 'dist' oculta declaração global na linha 63", também este aviso emite quando os nomes dos parâmetros formais da função e os nomes das variáveis globais coincidem. É crítico e pode afetar o comportamento do programa? Ou é puramente incorreto do ponto de vista estilístico, por exemplo, para que não haja confusão em projetos complexos? (já estou acostumado a manter em mente os escopos das variáveis e muitas vezes chamo variáveis semelhantes em propósito com o mesmo nome)
 
zenz:
... Isto é crítico e pode afetar o comportamento do programa?
O comportamento do programa não mudará, se houve um mau uso de uma variável em 4ka, ela permanecerá no novo compilador.
 
Compilou o arquivo no novo editor e o passou para o MT4.509 - ele o apagou... :(
 
TarasBY:
Compilei o arquivo com o novo editor e deslizei-o para o MT4.509 - ele o apagou... :(

Isto é lógico, pois o terminal antigo não sabe nada sobre o novo formato de linguagem.

Até agora, lançamos apenas um editor e compilador para testes preliminares. Dentro de algumas semanas lançaremos uma versão beta do novo terminal que pode funcionar com o novo formato do programa.

Recomendo a leitura dos links no post original - eles praticamente cobrem tudo.

 
Renat:

Isto é lógico, pois o terminal antigo não sabe nada sobre o novo formato de linguagem.

Até agora, lançamos apenas um editor e compilador para testes preliminares. Dentro de algumas semanas, lançaremos uma versão beta do novo terminal que pode funcionar com o novo formato do programa.

Recomendo a leitura dos links no post original - eles cobrem quase tudo.


Ainda não olhei para ele, mas seria melhor fazer um testador como o MT5, com citações :), e não faria mal anexar um testador aos recursos do processador.
 
M2012K:

Eu ainda não assisti, mas seria melhor se eles fizessem um testador como o MT5, com citações :), e não faria mal anexar um testador aos recursos do processador.


Lembra-se do desenho animado "Porridge from the axe"? ;)))