Discussão do artigo "Escrevendo um livro de ofertas de scalping com base na biblioteca gráfica CGraphic" - 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
As palavras que escrevi em minha pergunta não significam nada?
Seu exemplo
Esse código foi publicado pelo autor do tópico na descrição da classe https://www.mql5.com/pt/articles/3336.
Portanto, essa pergunta não deve ser dirigida a mim, pelo menos...
Essas palavras não significam nada para mim, exceto uma coisa: você não estudou o código do exemplo.
você dá um exemplo de exclusão por meio de
m_book_market.SetMarketBookSymbol(Symbol())Se abrirmos esse método, veremos que há uma assinatura do ticker passado.
mas não a exclusão da assinatura )) a exclusão da assinatura é feita por meio de uma função:
Deve ser um copypasta. Isso acontece. O autor provavelmente escreveu esse código parcialmente no navegador.
Em vez de
CMarketBook MarketBook.mqh
escrever
CMarketBook MarketBook;
foi uma pergunta capciosa para seu homônimo )) ele não gosta de ler código, mas espera por uma resposta pronta ))
era uma pergunta capciosa para meu homônimo )) ele não gosta de ler código, mas espera por uma resposta pronta ))
É exatamente isso que sempre faço e, inicialmente, fiz a remoção do vidro como deveria ser, como no seu exemplo, o que é realmente necessário ao trabalhar com o vidro a partir da ajuda.
Mas quando uso esse método,
recebo este erro
P|S descobri qual é o problema, pois acontece que se esse método for usado no construtor da classe, não é necessário usá-lo no OnDeinit.
Retiro minha pergunta, você pode me dar um doce.
Se você não usar um destrutor em uma classe
Essa construção funciona normalmente
Mas talvez eu simplesmente não saiba como usar o destrutor, ou talvez ele tenha sido implementado de forma incorreta e, portanto, não funcione como deveria.
Se você tiver muitos objetos em seu código e houver atrasos em sua exclusão, pode não haver tempo suficiente alocado para o processamento do OnDeinit, o que significa que alguns objetos não serão excluídos.
Nesse caso, você pode procurar um problema no código, o que é mais correto, pois é óbvio que há um problema e ele dará um tiro no pé um dia, ou simplesmente excluí-los no OnDeinit e esquecer o assunto.
ps.
Isso é o que eu sempre faço.
Obviamente, você não analisou o exemplo ou digitou um código errado desde o início, por exemplo, desmonte-o e eu vou rir))
Com esse objeto CMarketBook MarketBook.mqh, o compilador compilaria o código? Bem, você criou um objeto MarketBook.mqh, o compilador não percebeu esse sacrilégio, mas você está trabalhando com um objeto MarketBook, você teria um erro no estágio OnInit, porque você não tinha esse objeto.Prestei atenção imediatamente porque o exemplo obviamente não está funcionando, então fiz uma pergunta, mas você obedientemente culpou o desenvolvedor da classe e seu exemplo....
Forneça um exemplo de código funcional em que esse erro seja reproduzido ou explique tudo de uma vez, sem códigos desnecessários, como fez agora, e você também economizará seu tempo.
Se você tiver muitos objetos em seu código e houver atrasos na exclusão deles, pode não haver tempo suficiente alocado para o processamento do OnDeinit, o que significa que alguns objetos não serão excluídos.
Nesse caso, você pode procurar um problema no código, o que é mais correto, pois é óbvio que há um problema e ele dará um tiro no pé um dia, ou simplesmente excluí-los no OnDeinit e esquecer o assunto.
ps.
Obviamente, você não analisou o exemplo ou inseriu um código incorreto desde o início, portanto, descubra por si mesmo e eu darei risada ))
Com um objeto como o CMarketBook MarketBook.mqh, o compilador compilaria o código? Bem, você criou um objeto MarketBook.mqh, o compilador não percebeu esse sacrilégio, mas você está trabalhando com o objeto MarketBook, você teria um erro no estágio OnInit, porque você não criou esse objeto.Prestei atenção imediatamente porque o exemplo obviamente não está funcionando, então fiz uma pergunta, mas você obedientemente jogou tudo no desenvolvedor da classe....
Você deve fornecer um exemplo de código funcional em que esse erro seja reproduzido ou explicar tudo de uma vez, sem códigos desnecessários, como fez agora, e economizará seu tempo também.
Você está apenas em seu repertório, não me importa o que o autor fez no exemplo, quais erros de impressão ele cometeu, você precisa ser um completo idiota para não perceber que é apenas um erro de impressão.
A pergunta era completamente diferente.
Em seu exemplo, há inicialização - chamada do vidro, depois há sua atualização por meio do método Refresh(), mas não há sua exclusão por meio do método
MarketBookReleaseOnDeinit ou implementação do mesmo, mas no destrutor da classe.
É por isso que fiz uma pergunta ao autor, como é mais correto, em sua opinião, matar o copo usando sua classe, porque esse trabalho está faltando no exemplo principal e na própria classe e seria bom implementá-lo antes, não estou dizendo que há algo ruim, etc., apenas que esse ponto está faltando, me parece.
A pergunta foi feita ao autor e normalmente formulada, por que fazer e discutir minhas perguntas e demagogia por várias páginas sobre o que li, o que quero obter de alguém, etc. Eu mesmo sou capaz de entender tudo em meu código, o que é realmente feito... A pergunta era bem diferente.
Acima, no código, acrescentei em amarelo o que, em minha opinião, deveria estar presente no indicador anexado.
Você está apenas em seu repertório, não me importa o que o autor fez no exemplo, quais erros de impressão ele cometeu, você tem que ser um completo idiota para não perceber que é apenas um erro de digitação.
A pergunta era completamente diferente.
Em seu exemplo, há inicialização - chamada do vidro, depois há sua atualização por meio do método Refresh(), mas não há sua exclusão por meio do método
OnDeinit ou implementação do mesmo, mas no destrutor da classe.
É por isso que fiz uma pergunta ao autor: na opinião dele, é mais correto eliminar o vidro usando a classe dele, pois esse trabalho está faltando no exemplo principal e na própria classe, e seria bom implementá-lo antes; não estou dizendo que há algo ruim, etc., mas me parece que esse ponto está faltando.
A pergunta foi feita ao autor e formulada normalmente, por que perguntar e discutir minhas perguntas e fazer demagogia por várias páginas sobre o que li, o que quero obter de alguém, etc. Eu mesmo sou capaz de entender tudo em meu código, que é exatamente o que fiz.... a pergunta era completamente diferente
Acima, no código, adicionei em amarelo o que, em minha opinião, deveria estar presente no indicador anexado.
não há telepatas aqui, o exemplo que você deu na pergunta original não reproduz o problema sobre o qual você está escrevendo, além disso, todos os mecanismos estão presentes na classe, a solução é dada a você, mas não vejo nada além de reprovações, a disputa está encerrada.
Não há telepatas aqui, o exemplo que você deu em sua pergunta original não reproduz o problema sobre o qual você está escrevendo, além disso, todos os mecanismos estão presentes na aula, a solução é dada a você, mas não vejo nada além de reprovações, a disputa está encerrada.
- Em primeiro lugar, não havia problema algum em minha pergunta.
- Em segundo lugar, eu não repreendi ninguém por nada, apenas fiz uma pergunta simples ao autor para esclarecer minhas suposições... e de você, em todas as mensagens, algumas acusações ridículas e perguntas sobre o código, em minha direção, que eu não escrevi, mas tirei da descrição do artigo da classe como um exemplo.
A ajuda diz:
Destructor é uma função especial que é chamada automaticamente quando um objeto de uma classe é destruído. O nome do destrutor é escrito como o nome da classe com um til (~). Strings, matrizes dinâmicas e objetos que exigem desinicialização serão desinicializados de qualquer forma, independentemente da presença de um destrutor. Se um destrutor estiver presente, essas ações serão executadas depois que o destrutor for chamado.
Não há nenhum destrutor na classe que fecharia o vidro de preço pelo método
MarketBookReleaseTambém no próprio indicador, em
também não está presente. Fizeram-me uma pergunta simples: Como fazer corretamente a desinicialização do vidro.
Eu esperava uma resposta para essa pergunta,
- não invente nada, a própria classe fechará tudo, mesmo que não haja um destrutor declarado nela.
- Adicione
Ou adicione um destrutor à própria classe.
E você ficará feliz... e você começou uma demagogia me acusando de alguns erros de impressão no código de outra pessoa, que ele não compilará, o que eu sei sem você, que não consigo ler algo lá.... em russo, você me registrou como um veado.
Perfect ! Great Perfect ! Great job!Foi publicado o novo artigo Implementing a Scalping Market Depth Using the CGraphic Library:
Autor: Vasiliy Sokolov
Obrigado, essa é uma ótima ferramenta, muito fácil de modificar.