Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Ainda estou aprendendo os meandros dos indicadores e tenho perguntas. Eu reinicializo o buffer indicador no OnInit(), mas por alguma razão os buffers não são reinicializados durante a compilação do indicador. Para a lógica, deveria haver uma célula completa para cada célula tampão após a compilação, mas na figura você pode ver que há muitas delas (acho que estas são as células tampão anteriores). Onde eu cometo um erro?
if(rates_total-8==i)// || rates_total-5==i || rates_total-2==i) { ColorHistogram_2Buffer1[i]=high[i]; ColorHistogram_2Buffer2[i]=low[i]; ColorHistogram_2Colors[i]=0; }
Ainda estou aprendendo os meandros dos indicadores e tenho perguntas. Eu reinicializo o buffer indicador no OnInit(), mas por alguma razão os buffers não são reinicializados durante a compilação do indicador. Para a lógica, deveria haver uma célula completa para cada célula tampão após a compilação, mas na figura você pode ver que há muitas delas (acho que estas são as células tampão anteriores). Onde eu cometo um erro?
No OnInit, os amortecedores indicadores têm comprimento zero.
É por isso que eles podem fazer o que você quiser, tudo parece ser trabalho de um homem morto para eles.
E quando a execução do código muda para OnCalculate, o tamanho imediatamente se torna igual a taxas_total.
e há "lixo" em todas as células da matriz. Também pode haver sobras do cálculo de indicadores antigos.
No OnInit, os amortecedores indicadores têm comprimento zero.
É por isso que você pode fazer o que quiser com eles, eles são um presente de morte.
E quando a execução do código passa para a OnCalculate, o tamanho imediatamente se torna igual a taxas_total.
e todas as células da matriz têm "lixo" nelas. Pode sobrar um pouco do cálculo do antigo indicador.
Muito obrigado, eu consegui tudo e funcionou! Foi assim:
Muito obrigado, tudo deu certo! Eu o fiz assim:
Por que atribuir um valor a uma variável duas vezes?
E uma pergunta: Qual é o objetivo de fazer tudo isso? Afinal de contas, passando por todas as barras do laço, todas as células da matriz devem ser preenchidas de qualquer forma. A menos que o indicador mostre apenas a posição atual, mas então a matriz deve ser inicializada em cada barra, não apenas no início...
Por que atribuir um valor a uma variável duas vezes?
E a pergunta é: Por que precisamos de tudo isso? Afinal de contas, passando por todas as barras do laço, todas as células da matriz devem ser preenchidas com algo, de qualquer forma. A menos que o indicador mostre apenas a posição atual, mas então a matriz deve ser inicializada em cada barra, não apenas no início...
Neste exemplo, eu só queria entender como reiniciar o buffer. Mas no futuro (no indicador em que estou trabalhando agora), precisarei tanto deixar as células anteriores quanto adicionar novas células. E só nisso comecei a trabalhar, por assim dizer - os primeiros testes.
Não tinha certeza de que todas as ações com o gráfico fossem imitadas pelo OnInit(), por exemplo, mudança de taimfreims. Trocando o taimfreim reset (conferido agora), mas talvez haja algo mais, então coloquei o segundo no OnInit() para ter certeza. Mas se não, então não vou colocá-lo lá.
Ahh. Bem, sim, as variáveis de nível global não são inicializadas quando o período do gráfico muda. ???Eu acho que... não consegue se lembrar exatamente.
E, em geral, você pode prescindir dessa variável de bool extra.
E em geral, você pode prescindir desta variável de bool extra.
Sim, exatamente, melhor ainda, obrigado.
Você pode me dizer por que, se o período é superior a 30 minutos, ele retorna um número tão estranho?
KP 0 14:33:22.423 Teste_DRAW_COLOR_HISTOGRAM2 (EURUSD,M30) PERÍODO: 30
GG 0 14:33:24.402 Teste_DRAW_COLOR_HISTOGRAM2 (EURUSD,H1) PERÍODO: 16385
RJ 0 14:33:25.675 Test_DRAW_COLOR_HISTOGRAM2 (EURUSD,H4) PERÍODO: 16388Você pode me dizer por que se o período é superior a 30 minutos, ele retorna um número tão estranho?
Em MT5, os valores do período não são iguais ao número de minutos, como em MT4