Erros, bugs, perguntas - página 1985

 
Alexey Kozitsyn:
Sim, é claro.
Bem, se sim e o valor for fixado em 0, então é claro que algo está errado... Pode-se ver pela imagem que cada barra tem uma seta com o valor 0.
 
Alexey Viktorov:
Se for e o valor for 0, então há certamente algo de errado... Pode-se ver pela imagem que cada barra tem uma seta com o valor 0.
O truque é que vazio = VAZIO_VALOR.
 
Alexey Kozitsyn:
O truque é que vazio = VAZIO_VALOR.
Vazio está vazio, mas a PLOT_EMPTY_VALUE é atribuído um valor que não será mostrado no gráfico e na janela de dados. Tente mudar EMPTY_VALUE para 0
PlotIndexSetDouble(plot_index, PLOT_EMPTY_VALUE, 0);
 

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

A EA não vai ao mercado. Erro 130.

fxsaber, 2017.09.04 17:19

void OnStart()
{
  Print(0.99872);
}

Resultado

0.9987200000000001
(string)NormalizeDuplo(0,99872, 5) - resultado muito longo.
 
Alexey Viktorov:
Vazio está vazio, mas a PLOT_EMPTY_VALUE é atribuído um valor que não será mostrado no gráfico e na janela de dados. Tente mudar EMPTY_VALUE para 0
Não, ainda há um acidente. Agora substituí EMPTY_VALUE pela constante EMPTY_VALUE = EMPTY_VALUE. Agora está melhor. Mas ainda há lixo na tabela quando a TF é alterada. Eu defino VAZIO = 0. É ainda melhor, mas mais uma vez, quando a TF é frequentemente alterada, o gráfico contém lixo. Em geral, tenho de escrever um pedido para o CD.
 
Alexey Kozitsyn:
Não, ainda há um insecto. Agora substituí EMPTY_VALUE por EMPTY_VALUE constante = EMPTY_VALUE em todo o código. Agora está melhor. Mas ainda há lixo na tabela quando a TF é alterada. Eu defino VAZIO = 0. É ainda melhor, mas mais uma vez, quando a TF é frequentemente alterada, o gráfico contém lixo. Em geral, tenho de escrever um pedido para o CD.

Do que se tratava? Estava a falar de algo completamente diferente. Bem, numa pitada, em vez de reiniciar o tampão.

ArrayInitialize(массив, 0);

poderia defini-la para...

ArrayInitialize(массив, EMPTY_VALUE);
 
Alexey Viktorov:

Do que se tratava? Estava a falar de algo completamente diferente. Bem, numa pitada, em vez de reiniciar o tampão.

poderia colocar

Trata-se de alterar todas as inicializações no código ao mesmo tempo. O código que escreveu é inicializado onde quer que precise dele. ArrayInitialize() é executado em OnDeinit(), mas eu já descrevi o resultado acima.
 

Alexey Kozitsyn:
...

ArrayInitialize() corre em OnDeinit(), mas eu já descrevi o resultado acima.

Experimente OnInit().
 
Anatoli Kazharski:
Experimente no OnInit().

Há inicialização em OnCalculate() na primeira execução (pré-cálculo == 0). Pensa que mudá-lo para o OnInit() irá mudar alguma coisa? Bem, vou tentar, claro, mas isto é algo fora do reino da fantasia...

Corte. Como disse, em OnDeinit() as matrizes são inicializadas, que já não são utilizadas no próximo arranque (alteração dos parâmetros de entrada). Se isto (inicializando um array que não é utilizado como amortecedor) ajudar - seria também um bug MT. Acontecerá que não só as matrizes não são utilizadas, como ainda podem (não marcadas) ser inicializadas e isso afectará a visualização...

 
fxsaber:
(string)NormalizeDouble(0,99872, 5) é um resultado muito longo.

Boa tarde!

Obrigado pela sua mensagem, vamos verificar