Nova versão da plataforma MetaTrader 5 build 4755: melhorias gerais

 

Na sexta-feira, 13 de dezembro de 2024, será lançada uma versão atualizada da plataforma MetaTrader 5. Nela, corrigimos um erro no cálculo de swap triplo no testador de estratégias, que ocorria em certas combinações de condições de teste. Além disso, fizemos várias melhorias e correções menores para tornar a plataforma ainda mais estável. A atualização estará disponível através do sistema Live Update.

 

Olá! Após o upgrade para a build 4755, meu EA não atualiza info do book caso eu altere algum parametro de entrada dele. Somente se eu alterar algum input...se eu abrir acaixa de diálogo mas não alterar nada, tudo certo... Se eu compilar novamente, ele volta a funcionar normalmente... Pode ter alguma relação? Antes funcionava normalmente...

Grato,

Rafael Peres

 
Rafael Peres #Olá! Após o upgrade para a build 4755, meu EA não atualiza info do book caso eu altere algum parametro de entrada dele. Somente se eu alterar algum input...se eu abrir acaixa de diálogo mas não alterar nada, tudo certo... Se eu compilar novamente, ele volta a funcionar normalmente... Pode ter alguma relação? Antes funcionava normalmente... Grato, Rafael Peres

Olá Rafael, quando você altera qualquer parâmetro de entrada do EA, o MetaTrader reinicializa o EA. Durante esse processo, eventos como OnDeinit() e OnInit() são chamados. Qualquer recurso previamente alocado, como assinaturas do livro de ofertas [MarketBookAdd()] ou buffers de indicadores personalizados, pode ser liberado [MarketBookRelease() em OnDeinit()] e precisa ser configurado novamente. Caso o EA utilize a função MarketBookAdd() para registrar o livro de ofertas, é crucial verificar se essa função está sendo chamada novamente em OnInit():

int OnInit()
{
    if (!MarketBookAdd(_Symbol))
    {
        Print("Falha ao adicionar o livro de ofertas para ", _Symbol);
        return(INIT_FAILED);
    }
}


2. Utilize GetLastError() após chamadas críticas para identificar possíveis falhas, especialmente após alterações nos parâmetros. Adicione logs detalhados para monitorar o fluxo de execução e identificar onde o processo está falhando:

if (!MarketBookAdd(_Symbol))
{
    Print("Erro ao registrar MarketBook: ", GetLastError());
}


ChatGPT