Na minha memória, essa é a única biblioteca em que a #include está presente, mas nada dela é chamado pelo usuário em qualquer parte do código.
Bem, o principal aspecto dessa biblioteca é uma substituição complicada de funções padrão. Acontece que se trata de uma chamada implícita.
Estou lhe falando sobre o perigo do ponto de vista das alterações e do suporte ao código. Todas essas substituições implícitas serão facilmente esquecidas e, quando a plataforma mudar ou o sincronizador quebrar, será muito difícil detectá-las. Mas, ainda assim, concordo que essa é uma situação rebuscada. Em geral, a ideia é muito original e sensata. De fato, ao simplesmente conectar a biblioteca, sem nenhuma chamada, obtemos um resultado muito útil.
Suspeito que isso ocorra às vezes, mas nem sempre e nem necessariamente.
Provavelmente, isso se deve ao "threadrace" e não é possível determinar o que é executado quando e em que ordem.
Certa vez, eu mesmo tive a ideia (no MT4, mas também deve funcionar no MT5)
int lastPing = TerminalInfoInteger(TERMINAL_PING_LAST);
de usar uma interrupção da conexão com o servidor - não é possível!
Como o teste de ping é executado pelo terminal em seu próprio thread, não é certo que esse comando, mesmo que seja o primeiro, muito, muito primeiro em OnCalculate() ou OnTick(), exibirá o cálculo inferior corretamente.
Se o teste de ping foi executado apenas um milissegundo antes, ele mostra que está tudo bem :(
Experimente simplesmente puxar o cabo de aterrissagem...
Minha sugestão é alterar o encadeamento (provavelmente difícil) ou fornecer os últimos 2 ou 3 testes de ping (seria fácil) de um EA ou indicador para poder reconhecer uma interrupção com muita facilidade: Não temos intenção....
Infelizmente, não consigo entender isso. Nenhuma sequência é perturbada em meus testes.
O DeInit e o Init são executados conforme o esperado. Qualquer outra coisa seria bastante questionável.
Portanto, eu me pergunto o que esse exemplo de código deve fazer!
Se você iniciar esse indicador e alterar seu período de tempo ou símbolo, verá um distúrbio na ordem das cadeias de caracteres "Init" e "Deinit" no diário.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Não encontrei um exemplo perigoso.
Na minha memória, essa é a única biblioteca em que a #include está presente, mas nada dela é chamado pelo usuário em qualquer parte do código.
Bem, o principal aspecto dessa biblioteca é uma substituição complicada de funções padrão. Acontece que se trata de uma chamada implícita.
Estou lhe falando sobre o perigo do ponto de vista das alterações e do suporte ao código. Todas essas substituições implícitas serão facilmente esquecidas e, quando a plataforma mudar ou o sincronizador quebrar, será muito difícil detectá-las. Mas, ainda assim, concordo que essa é uma situação rebuscada. Em geral, a ideia é muito original e sensata. De fato, ao simplesmente conectar a biblioteca, sem nenhuma chamada, obtemos um resultado muito útil.
A propósito, obrigado pelo código. Aprendi muitas coisas valiosas e tive algumas ideias interessantes.
Às vezes, ele chega a 300 ms ao alternar o TF. E isso não acontece no "frio". Acontece que mesmo um terminal "quente" às vezes fica mais lento.
Provavelmente, eu deveria escrever sobre isso para que o SD o conserte.
Infelizmente, não consigo entender isso. Nenhuma sequência é perturbada em meus testes.
O DeInit e o Init são executados conforme o esperado. Qualquer outra coisa seria bastante questionável.
Então, eu me pergunto o que esse exemplo de código deve fazer!
Suspeito que isso ocorra às vezes, mas nem sempre e nem necessariamente.
Provavelmente, isso se deve ao "threadrace" e não é possível determinar o que é executado quando e em que ordem.
Certa vez, eu mesmo tive a ideia (no MT4, mas também deve funcionar no MT5)
de usar uma interrupção da conexão com o servidor - não é possível!
Como o teste de ping é executado pelo terminal em seu próprio thread, não é certo que esse comando, mesmo que seja o primeiro, muito, muito primeiro em OnCalculate() ou OnTick(), exibirá o cálculo inferior corretamente.
Se o teste de ping foi executado apenas um milissegundo antes, ele mostra que está tudo bem :(
Experimente simplesmente puxar o cabo de aterrissagem...
Minha sugestão é alterar o encadeamento (provavelmente difícil) ou fornecer os últimos 2 ou 3 testes de ping (seria fácil) de um EA ou indicador para poder reconhecer uma interrupção com muita facilidade: Não temos intenção....
Infelizmente, não consigo entender isso. Nenhuma sequência é perturbada em meus testes.
O DeInit e o Init são executados conforme o esperado. Qualquer outra coisa seria bastante questionável.
Portanto, eu me pergunto o que esse exemplo de código deve fazer!
Uma miscelânea de outra especificidade do indicador MT5.
Há um ponto muito sutil na fonte da biblioteca
É uma linha destacada, que é obrigatória, mas o motivo é difícil de explicar em palavras.
Olá @fxsaber, estou recebendo os seguintes erros ao tentar usar sua biblioteca
Como faço para corrigir isso? Obrigado.
Olá @fxsaber, estou recebendo os seguintes erros ao tentar usar sua biblioteca
Como faço para corrigir isso? Obrigado.
Leia a descrição com atenção.