Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
Detectando o início duma nova barra ou vela - expert para MetaTrader 5
- Visualizações:
- 5970
- Avaliação:
- Publicado:
- 2022.12.02 23:28
- Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Para um Expert Advisor (EA), quando é recebida uma nova cotação (“tick”) pelo MetaTrader, a função padrão de manipulação de eventos OnTick() é chamada pelo terminal. No entanto, não há função de manipulação de eventos padrão para quando é iniciada uma nova barra (vela).
Para detectar esta situação, é necessário monitorizar a hora de abertura da barra mais recente. Ao mudar, significa o início de uma nova barra, e pode-se reagir a situação e lidar com o evento. O seguinte exemplo de código, compatível com ambos o MQL4 e MQL5, demonstra um dos métodos de como pode ser alcançado:
// Manipulador padrão de evento de tick void OnTick() { // Verifiquar a existencia duma nova barra (compatível com MQL4 e MQL5). static datetime dtBarraCorrente = WRONG_VALUE; datetime dtBarraPrecedente = dtBarraCorrente; dtBarraCorrente = iTime( _Symbol, _Period, 0 ); bool bEventoBarraNova = ( dtBarraCorrente != dtBarraPrecedente ); // Reajir ao evento duma barra nova e lidar com a situação. if( bEventoBarraNova ) { // Detectar se este é o primeiro tick recebido e lidar com a situação. /* Por exemplo, quando é aplicado pela primeira vez ao gráfico e a barra está algures a meio do seu progresso e não é realmente o início de uma nova barra. */ if( dtBarraPrecedente == WRONG_VALUE ) { // Fazer algo no primeiro tick ou no meio duma barra ... } else { // Fazer algo quando uma barra normal surgir ... }; // Fazer algo independente da condição anterior ... } else { // Fazer outra coisa ... }; // Fazer outras coisas ... };
No código anterior, a variável estática acompanha a hora de abertura da barra, mesmo ao retornar da função OnTick(). Ao contrário de uma variável local normal, memoriza o seu conteúdo de dados e não o libera ao sair da função. Esta é a chave para detectar uma mudança na hora de abertura da barra actual.
Também é importante observar que, quando o EA é colocado pela primeira vez em um gráfico, o anterior código reage como se a barra tivesse acabado de abrir. Essa condição requer tratamento especial se a situação necessitar ser tratada de maneira diferente.
Observe por favor, que o código-fonte de todas as minhas publicações no CodeBase, estão agora também disponíveis através de "Projetos públicos" do MetaEditor sob o nome "FMIC".
Envio de mensagem push para verificação do VPS e MT5.
Mercado Futuro - Buscando o ativo (código) da série vigenteO código dessa biblioteca tem o objetivo de retornar o valor do ativo vigente para o (mini)índice e (mini)dólar da bolsa brasileira B3.
Script para obter informações sobre o número, tipos e tamanhos de tensores de entrada e saída do modelo onnx
Funções de Tempo Aplicadas no CódigoTempo local e de servidor