OnDeinit em indicadores - página 3

 

Faça uma impressão no início do OnDeinit e depois de fechar o terminal do cliente, olhe o registro do Expert e certifique-se de que o OnDeinit foi chamado!

Aqui está seu erro

for(int i=ObjectsTotal()-1;i>=0;i--)

Você conhece claramente os objetos que você mesmo criou.

Manter seus nomes e apagá-los sem referência a ObjetosTotal e ObjectName

PS a nova construção acrescentou uma função para excluir um grupo de objetos por prefixo. Ele o ajudará se você nomear seus objetos usando o mesmo prefixo único em seu nome

 
stringo:

Faça uma impressão no início do OnDeinit e depois de fechar o terminal do cliente, olhe o log do EA e certifique-se de que o OnDeinit foi chamado!

Aqui está seu erro

Você conhece claramente os objetos que você mesmo criou.

Salvar seus nomes e excluí-los sem referência a ObjetosTotal e ObjectName

PS A nova construção acrescentou uma função para excluir um grupo de objetos por prefixo. Ele o ajudará se você nomear seus objetos usando o mesmo prefixo único em seu nome

Já tive a oportunidade de testar como funciona a eliminação de um grupo de objetos por prefixo. Ótimo, mas mesmo o código compilado em construções anteriores não funciona. Conseqüentemente, ele pode ser usado, por enquanto, apenas para fins pessoais. Não temos que forçar os usuários a se atualizar por causa disso. Muitos não sabem nem mesmo como atualizar até carregar a atualização para o servidor DC.
 
stringo:

Na verdade, o deinit em todos os programas é chamado quando o terminal é fechado.

Há até mesmo um código especial para a causa da desinicialização. RAZÃO_CLOSE

E ele zera ou não os amortecedores indicadores?
 
eevviill:
E ele reinicia ou não os amortecedores indicadores?
O que é "reiniciar os amortecedores indicadores"?
 
eevviill:
E ele reinicia ou não os amortecedores indicadores?
Tudo é reinicializado. Afinal de contas, o terminal fecha ))))
 
stringo:

A situação com seu indicador foi resolvida.

É o seguinte - o indicador é calculado não apenas na chegada dos carrapatos, mas também no primeiro desenho e na chegada da história em falta.

1. Chega um novo tick - o indicador é calculado.

2. Chega o histórico que falta, que tapa o buraco entre os últimos dados da última partida do terminal e o último tick. O indicador é calculado. Mas, ao mesmo tempo, não há nenhuma nova condição de bar!

Para resolver este problema você precisa verificar o número de barras. Aproximadamente assim

Hmm. Coloque EMPTY_VALUE bloco de inicialização do buffer EMPTY_VALUE em Inite. O problema permanece.
 

Enfiou o bloco de inicialização do buffer com um valor vazio tanto no init quanto no deinit. O resultado é o mesmo. Isto é, ela não existe.

Aguardando os comentários dos desenvolvedores.

 
Scriptong:
Tudo é reinicializado a zero. Afinal de contas, o terminal fecha ))))
Sim, sim.
 
eevviill:
Hmm. O bloco de inicialização do buffer EMPTY_VALUE é colocado em Inite.

Por quê? Os amortecedores de iniciativas ainda não podem ser alocados.

E quando o buffer é fortemente tamponado (um novo lote de dados históricos chegou)?

Nesses casos, a inicialização dos amortecedores é feita antes do cálculo do indicador, quando fica claro que todo o indicador será recalculado.

 
stringo:

Por quê? Os amortecedores de iniciativas ainda não podem ser alocados.

E quando o buffer é muito grande (um novo lote de dados históricos chegou)?

Nesses casos, a inicialização dos amortecedores é feita antes do cálculo do indicador, quando fica claro que todo o indicador será recalculado.

ok. O zeramento também não funciona no deinit.