ahh sim, uma observação
vc esta declarando o i dentro, então ele sempre começará do zero
coloque o seu int i=0; como variavel global(acima do OnInit) e vai funcionar
Complementando a resposta acima, se vc quiser que a variável "i" continue sendo local , em vez de global, basta inserir o qualificador "static" antes da declaração.
Assim:
static int i = 0;
O qualificador "static" faz com que a variável seja alocada no segmento de dados (em vez de ser alocada na pilha do sistema, como no caso das variáveis locais não-estáticas).
Isso garante que o conteúdo da variável seja preservado entre diferentes chamadas consecutivas à função onde ela foi declarada.
A vantagem de usar o "static" é que ela continua sendo uma variável local da função onde foi declarada, de modo que vc pode utilizar o mesmo nome "i" para outras variáveis em outras funções, sem nenhuma interferência mútua.

- 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
Bom! Estou tentando desenvolver uma função que conte a quantidade de barras após uma posição aberta. Eu tente com esse código:
Seguindo essa logica eu pensei o seguinte: a cada vez que a função novabarra for igual a true, ou seja, eu tenho uma novabarra sendo aberta, ele vai somar i+1, porém, ao rodar o EA, i não sai de zero kkkk...
Tentei tambem dessa forma:
Dessa forma retorna sempre 1, pois a cada nova barra, a variavel i é criada e somada a um.