
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
Isso soa como um disparate. Os cronômetros indicadores de cópia nada têm a ver um com o outro.
500 anos atrás, a afirmação de que a Terra é esférica também soava como um disparate para a maioria das pessoas.
OK, vou refazer este exemplo para um temporizador agora.
Ok, agora vou refazer este exemplo para o temporizador.
Onde é inequívoco.
Experimente este exemplo primitivo. Você entenderá a "singularidade" ao trocar o TF.
Neste exemplo, um objeto com coordenadas de tempo e preço atuais é criado no OnInit. Na OnCalculate, este objeto se move junto com o preço.
No OnDeinit, ele é simplesmente (logicamente) apagado.
Ao trocar o TF, verifica-se que o objeto aparece e depois desaparece.
Por que isso acontece?
Porque às vezes o OnDeinit da antiga TF elimina o que já foi criado no OnInit da nova TF. Não é um bug! O que deve pensar o programador que criou este exemplo e não leu este ramo?
Você quer mostrar que o EvenKillTimer no estado antigo deinit afetará o EventSetTimer no novo init?
Eu estava errado. Minhas desculpas. Meu erro.
De fato, o temporizador do novo TF acabou se revelando sobrevivível, oEventKillTimer do antigo TF. :)
Em seu exemplo, o objeto gráfico está presente em todas as TFs, basta ampliar para vê-lo.
Não, não é. Ele é removido às vezes pela Deunit da antiga TF.
De fato, o temporizador do novo TF revelou-se resistente, não matável pelo EventKillTimer do antigo TF. :)
Não, não é. Ele é apagado algumas vezes por Deinit da antiga TF.
Para forçar a atualização dos objetos gráficos, use o comando ChartRedraw() para redesenhar o gráfico.
Adicione isto ao Init e ao Deinit:
ChartRedraw();
Adicione isto ao Init e Deinit:ChartRedraw();
Experimentei-o. Isto não muda a situação, e não pode mudar, se o objeto já tiver sido removido,ChartRedraw() não o ressuscitará.
Não excluo, Sergey, que esta "peculiaridade" de ambigüidade da seqüência de execução do OnInit da nova TF e OnDeinit da antiga TF possa depender do hardware. Desde fios diferentes, processadores diferentes com arquitetura de coprocessador diferente - é tudo complicado e eu não sou bom nisso. Mas o fato deste "recurso" aparecer em meu computador e nos computadores de outros, a julgar por este tópico, é certo.
Então, você quer dizer que tentou este exemplo em seu computador e quando você troca de TF você sempre vê o objeto?
A propósito, notei que se você aumentar os castiçais até o tamanho máximo, ou seja, a tela tem um mínimo de barras, é muito difícil fazer o objeto desaparecer. Tive que trocar o TF 30 vezes para remover o objeto (ou seja, o DeUnit foi acionado mais tarde que a Unidade). Aparentemente, esta "peculiaridade" é afetada pelo desempenho dos fios. Isto é como uma hipótese ou um pensamento em voz alta.
Muito feliz por minha ilusão ter se revelado uma ilusão.
:) Não foi uma ilusão, apenas uma hipótese.
Obrigado pela hipótese. Graças a ele e aofxsaber eu tive uma nova rodada de conscientização do que é uma cópia indicadora. O temporizador simplesmente pertence a essa cópia e morre junto com ela, mesmo quando a TF muda. Mas os objetos vivem por si mesmos, mesmo que sejam criados por uma cópia do indicador, eles pertencem apenas à janela. Agora entendo que não adianta escreverEventKillTimer no Deunit, de qualquer forma, o temporizador morrerá se o Deunit já tiver sido chamado.
Ou seja, todo o problema é adicionar UMA linha no início de qualquer indicador.
Código da biblioteca