Erros, bugs, perguntas - página 1395

 
Anatoli Kazharski:

Experimente desta forma:

Não importa qual é o valor vazio, ou se existem quaisquer valores aleatórios no início do gráfico. O importante é que existem valores de 0 a -5 no buffer2 que não são exibidos no gráfico porque é DRAW_NONE e o valor mínimo de escala de 0 é definido.

MT4 nesta situação escalou correctamente o gráfico de 0 para o valor de tampão máximo na janela enquanto MT5 escalas do mínimo (-5, não 0) para o máximo como 0,0605 e adiciona algo como 10% de cima, o que quebra completamente a escala.

 
Ilya Malev:

Não importa qual é o valor vazio ou se existem quaisquer valores aleatórios no início do gráfico. O que é importante é que existem valores de 0 a -5 no buffer1 que não são exibidos no gráfico, uma vez que é DRAW_NONE e o valor mínimo de escala de 0 é definido.

MT4 nesta situação escalou correctamente o gráfico de 0 para o valor de tampão máximo na janela enquanto MT5 escalas do mínimo (-5, não 0) para o máximo como 0,0605 e adiciona algo como 10% de cima, o que quebra completamente a escala.

De modo algum. Um valor vazio não é zero. Pode ser qualquer coisa e qualquer pessoa.
 
Ilya Malev:

Não importa qual é o valor vazio ou se existem quaisquer valores aleatórios no início do gráfico. O importante é que existem valores de 0 a -5 no buffer2 que não são exibidos no gráfico, pois é DRAW_NONE e o valor mínimo de escala de 0 é definido.

MT4 nesta situação escalou correctamente o gráfico de 0 para o valor de tampão máximo na janela enquanto MT5 escalas do mínimo (-5, não 0) para o máximo como 0,0605 e adiciona algo como 10% de cima, o que quebra completamente a escala.

A propósito, porquê escalar o gráfico por valores tampão que não são exibidos?
 
Karputov Vladimir:
De modo algum. Um valor vazio não é zero. Pode ser qualquer coisa e qualquer um.

Tente mudar a linha para"buffer2[i]=-MathRand()%5*Ponto(); " E verá como a escala irá mudar no exemplo. Isto prova que, neste caso, o preenchimento dos primeiros elementos da história não tem qualquer efeito sobre a escalada. Porque se se multiplicar por Ponto, alinha-se.

 
Anatoli Kazharski:
A propósito, porque devemos escalar o gráfico por valores do buffer que não é exibido?

Boa pergunta! Era exactamente isso que eu estava a pedir. Porque faria MT tal escalada se o tampão é declarado como DRAW_NONE

Estava também em MT4, mas apenas se os valores de tal tampão estivessem dentro do intervalo de exibição limitado pelo indicador_máximo e mínimo. E em MT5 os valores fora dos limites estão incluídos na fórmula da escala.

 
Ilya Malev:

Tente mudar a linha para"buffer2[i]=-MathRand()%5*Ponto();" e verá como a escala irá mudar neste exemplo. Isto prova que, neste caso, o preenchimento dos primeiros elementos da história não tem qualquer efeito sobre a escalada. Porque se se multiplicar por Ponto, alinha-se.

O seu exemplo é tortuoso e não quer consertá-lo. Irei verificá-lo quando o corrigir.
 
Ilya Malev:
Boa pergunta! Era exactamente isso que eu estava a pedir.

Está no seu código, não está?

buffer2[i]=-MathRand()%5;

O que diz é o que se recebe. De que serve fazer isto para um tampão que não é exibido. Era sobre isso que eu estava a perguntar. ))

 
Anatoli Kazharski:

O que está escrito é o que recebemos. De que serve fazer isto para um tampão que não é exibido. Era sobre isso que eu estava a perguntar. ))

Sim, por isso quando o terminal o faz, está OK (escala por valores com DRAW_NONE e é mesmo inferior ao limiar mínimo de visualização do indicador - pelo menos em MT4 era adequado), mas quando um utilizador define os seus próprios valores arbitrários no buffer sem visualização (DRAW_NONE), não está OK (como manter e não deixar, quem se importa porque é que o utilizador precisa dele?)

A razão é trivial - estes atributos mostram importantes atributos numéricos das barras no gráfico, que o negociante necessita para análise. Ou seja, são utilizados pelo comerciante e utilizados pelos Consultores Especialistas.

 
Ilya Malev:

Sim, isto é, quando o terminal o faz, está OK (escala por valores com DRAW_NONE, e ainda menos que indicador_mínimo - pelo menos era adequado em MT4), mas quando um utilizador fixa os seus valores arbitrários no buffer sem exibição (DRAW_NONE), não está OK (como manter e segurar, quem se importa, porque é que o utilizador precisa dele?)

A razão é trivial - estes atributos exibem importantes atributos numéricos das barras na janela de dados, que o negociante necessita para análise.

Bem, eu não disse nada sobre normal ou anormal. Só me perguntava por que razão o fazer. )

Penso que os amortecedores que não são exibidos (DRAW_NONE) não devem ser envolvidos no cálculo da escala.

Pode tentar comunicar este erro ao servicedesk e esperar por uma resposta.

 
Anatoli Kazharski:

Bem, eu não estava a falar de normal ou anormal. Só me perguntei porque faria tal coisa. )

Penso que os amortecedores que não são exibidos (DRAW_NONE) não devem ser envolvidos no cálculo da escala.

No exemplo, fiz MathRand apenas para demonstrar como funciona a escala. No original tinha o cálculo dos níveis numéricos lá usando a metodologia do autor de algum comerciante. No início, quisemos fazê-los de 1 a 5, mas mesmo MT4 não conseguiu atingir a escala adequada mesmo com tais valores no tampão com DRAW_NONE. Depois de os termos tornado negativos e fixado o mínimo em 0, o problema foi resolvido. Ao portar o indicador para o MT5 parecia que esta solução também não funcionaria. Tive de me multiplicar por Ponto, como disse Voldemar.
Razão: