Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 1177
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
Olá!
Você pode aconselhar como configurar o indicador para funcionar apenas na abertura da barra, e não em cada tic e como fazer com que não funcione sempre (em cada nova barra) em toda a história?
Gostaria de usar o indicador como um indicador de abertura de barra, e lhe agradecerei antecipadamente.
Rostislav
Primeiro, sobre os bares. Quando uma nova barra é formada, um novo valor é escrito no Tempo[0] - o tempo em que a barra se abre.
OnCalculate(...)
{
if(Time[0] == t) return(0); // Se esta barra for processada --> sair
t = Time[0];
Agora para toda a história: ela vai diminuir
data/hora t;
Primeiro, sobre as barras. Quando formamos uma nova barra, escrevemos um novo valor no Tempo[0] - o tempo em que a barra se abre.
OnCalculate(...)
{
if(Time[0] == t) return(0); // se esta barra for processada --> exit
t = Tempo[0];
Agora para toda a história: vai diminuir a velocidade
Obrigado pela resposta rápida. O que eu estou perguntando é como fazer com que NÃO abrande e passe pela história quando uma nova barra aparece, mas apenas processe a nova barra...
Agora está organizado da seguinte forma: for(int i=limit-1; i>=0; i--) e como eu entendo, significa que a cada abertura de uma barra, todos os valores de toda a história serão recalculados novamente, enquanto você deve trabalhar apenas com a última barra...
É assim que ele calcula na última barra:
Vamos ver a linha primeiro
para tornar isso mais claro para mim, eu o reescrevi desta maneira.
Aha!!! Agora estou começando a entender... No loop, a variável uma muda de 1 para 6. Com valores desta variável 1, 5 e 6, não há ação. Então apenas
Ou no seu estilo.
O resultado será o mesmo, mas será mais rápido!
Agora você precisa se livrar da função estatística, escrever seu corpo três vezes seguidas, substituir os parâmetros formais em cada uma das três partes por parâmetros reais e remover as declarações de variáveis duplicadas. O código total será um pouco mais longo, mas a execução será mais rápida. Faz sentido jogar fora a impressão() - quem exatamente neste momento vai olhar através do log de mensagens? - Ou substitua-o por Alert() para exibi-lo na tela. Além disso, há uma variável namZz2 - seu valor muda?
Eu preciso usar stats() em vez de stats(). Estupidamente, sei que posso reescrever três vezes, como você disse, mas o problema é que muito provavelmente o resultado da coleta de estatísticas terá que adicionar mais matrizes e, mais cedo ou mais tarde, voltarei às originais. É por isso que eu lhes ofereço formas simples, que eu já conheço, e que infelizmente me levarão ao início. É por isso que estou olhando para o futuro, para que eu não tenha que voltar a ele no futuro!
como colocar este código no estatístico!? para ser um procedimento único você no início, como eu disse a pergunta, por favor olhe!
Eis como é calculado na última barra:
Aqui está um extrato do código de trabalho ! Como recolhê-la em um único vazio Estatística sem vazio intermediário Stat ! Eu teria que refazer todo o código para reunir todas as matrizes em uma só e tentar arranhá-lo dali para fora!
O trecho citado de seu código de trabalho ou está errado ou sua função Statistic() não faz nada além de imprimir quando chamado de Stat().
De qualquer forma, parará logo após o retorno;.
Por favor, nos dê o código completo para entender o que você quer.
Para o registro. Demasiados tópicos no fórum para ajudar os novatos na MQL4.
Esta linha não é mais suportada e está fechada.
Favor dirigir todas as perguntas a qualquer uma das seguintes linhas ativas:
https://www.mql5.com/ru/forum/160683
https://www.mql5.com/ru/forum/160587
Todos os outros posts neste tópico serão excluídos.