Discussão do artigo "Como criar um painel de informações para exibir dados em indicadores e Expert Advisors" - página 3
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
Até agora, descobri que é assim que o evento CHARTEVENT_CHART_CHANGE(9) é tratado.
Portanto, é natural que, quando o foco é retirado da janela do gráfico, seus tamanhos se tornem diferentes.
Aqui está o processamento:
Você deve tentar controlar o foco do gráfico e não reagir às alterações caso a janela do gráfico esteja fora de foco. Ou algo mais nesse sentido. Infelizmente, ainda não posso executá-lo e testá-lo para identificar as causas exatas e o método de correção.
Eu examinei o fórum. O problema já foi discutido. Por exemplo. Adicionei essa verificação ao código:
O bug parece ter desaparecido.
Outro problema. O desdobramento da janela do painel não é processado depois que o indicador foi removido do gráfico e o painel foi minimizado e, em seguida, iniciado novamente no gráfico.
Amanhã tentarei descobrir qual é o erro....
Artem, outro exemplo do artigo subsequente sobre osciladores também apresenta falhas ao minimizar a janela e, em seguida, excluir o programa do gráfico. Não se trata de um indicador, mas de um Expert Advisor. Veja aqui:
Outro problema. O desdobramento da janela do painel não é tratado depois que o indicador foi removido do gráfico e o painel foi minimizado e, em seguida, reiniciado no gráfico.
Amanhã tentarei descobrir qual é o erro....
Aqui você pode verificar a causa da desinicialização e não salvar o estado do painel nas variáveis globais do terminal ao remover um Expert Advisor (ou indicador) do gráfico. Isso não é uma solução para o problema, mas sua ocultação. É claro que isso não é bom. Mas serve para uma solução rápida.
Ou você precisa examinar esse comportamento. Infelizmente, tenho pouco tempo por enquanto.
Eu examinei o fórum. O problema já foi discutido. Por exemplo. Adicionei essa verificação ao código:
O bug parece ter desaparecido.
Obrigado. Adicionarei essa classe de painel aos meus códigos mais tarde. A propósito, de artigo para artigo, no qual esse painel foi usado, houve todos os tipos de aprimoramentos. Acho que aqui está o último artigo em que o painel foi usado. Mas não me lembro se já o aperfeiçoei.
Anexei o código da classe do painel aqui.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Discussão do artigo "Criando um painel de informações para exibir dados em indicadores e Expert Advisors"
Denis Kirichenko, 2024.09.23 22:26
Outro problema. Ele não lida com o desdobramento da janela do painel, depois que o indicador foi removido do gráfico e o painel foi minimizado e, em seguida, iniciado novamente no gráfico....
Sim, na versão mais recente do Dashboard.mqh não existe esse erro. Ele funciona.
Sim, na versão mais recente do Dashboard.mqh não há esse erro. Ele funciona.
O novo babador também tem um bug. Se você iniciar o painel em um gráfico e depois brincar com o tamanho da janela do gráfico, o painel ficará preso na parte inferior quando a janela for restaurada. E ele não quer sair de lá ((
Artem, tenho uma pergunta. No método void CDashboard::Move(int x, int y), existe uma coisa dessas:
Em particular, estou interessado nesse bloco. Ou seja, se a altura do painel for menor que a da janela do gráfico e se seu ponto Y (canto superior esquerdo) for menor que a diferença entre a altura da janela e a altura do painel, corrigida em 2 pixels, o ponto superior do painel receberá o valor dessa diferença. Por que isso acontece, qual é o motivo?
Em suma, é por causa do método CDashboard::Move(int x, int y) que ocorre o travamento. Quando você tenta mover o painel depois de alterar o tamanho do gráfico, ele corrige constantemente as coordenadas e não permite que você mova a janela do painel livremente...