Teste o código e me diga se ele funciona mal. Teste antes de comentar negativamente.
1. previous_time inicializado incorretamente, o código emitirá um alarme falso imediatamente na inicialização
2. acesso caro ao iTime em cada tick.
3. nem todo tick forma uma barra (raramente, mas um tick pode aparecer em um dia de folga, não é uma negociação - apenas alguns procedimentos internos do servidor)
1. previous_time inicializado incorretamente, causando alarmes falsos imediatamente após a inicialização do código.
2. acesso dispendioso ao iTime a cada tick.
3. nem todos os ticks formam uma barra (em casos raros, um tick pode ocorrer em um dia de folga e não é uma transação, mas apenas um procedimento interno do servidor).
Não é possível saber quando uma vela se fecha. Somente quando chega um novo tick que inicia uma nova barra é que a barra antiga é fechada, e esse tick pode chegar quase no final da duração de uma barra.
Para um novo teste de barra, Bars não é confiável (uma atualização/reconexão pode alterar o número de barras no gráfico), volume não é confiável (ticks perdidos), Price não é confiável (preços duplicados e O operando == - Fórum de programação MQL4.) Sempre use o tempo.
MT4: New candle - Fórum de programação MQL4 nº 3 (2014)
MT5: Accessing variables - Fórum de programação MQL4 nº 3 (2022)
Não concordo com a criação de uma nova função de barra, porque ela só pode ser chamada uma vez por tick (a segunda chamada retorna falso). Uma variável pode ser testada várias vezes.
Executando o EA uma vez no início de cada barra - Fórum de programação MQL4 (2011)
static datetime curDT=0; datetime preDT=curDT; curDT=iTime(_Symbol,_Period,0); if(curDT != preDT){ … }
Não concordo com a criação de uma nova função de barra, porque ela só pode ser chamada uma vez por tick (a segunda chamada retorna falso). Uma variável pode ser verificada várias vezes.
Consegui criar uma função genérica IsNewBar(symbol, timeframe), que funciona corretamente em um EA para diferentes combinações de símbolo e timeframe, e pode ser chamada várias vezes no processamento de um tique, retornando a mesma coisa na segunda vez (e nas vezes subsequentes) que na primeira.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
New Candle or Bar formation.:
Esse Bot detecta a abertura de uma nova vela em qualquer período de tempo definido, facilitando assim a execução de um código único, a realização de negociações e a chamada de outras funções. O código é escrito na função OnTick().
Author: Clinton Dennis Edem