Discussão do artigo "Melhore os gráficos de negociação com uma interface gráfica interativa baseada em MQL5 (Parte III): Interface de negociação simples e móvel" - página 2
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
há uma escuridão de métodos elaborados com belas setas "como implementar a interface do usuário de modo que não seja terrivelmente doloroso" :-) MVC e similares. Portanto, o front-end (win, gtk, qt, web) às vezes pode ser alterado com um leve movimento da mão.
Nenhum deles foi implementado em MQL. Tudo é pregado, pior do que o TurboVision - embora ele tenha classes do Adam, mas tem modelos
Há anos as pessoas vêm escrevendo sobre "fácil e simples" e "interface simples", mas é exatamente o mesmo que neste artigo. Um monte de código que não facilita nada. O único efeito é um bônus na conta do autor.
Ah, a simples menção de MVC me faz estremecer.
Isso vem desde a época em que fiz o site da minha esposa, uma loja on-line no mecanismo OcStore.
Quando cheguei a entender pelo menos um pouco como ele funciona, eu já estava meio grisalho))))
Não vamos julgar com rigor, essa série de artigos é voltada para iniciantes.
Os artigos são escritos de forma clara e lúcida, e escrever com clareza não é uma tarefa fácil.
O autor cumpre essa tarefa com perfeição.
Ai, a simples menção do MVC me faz estremecer.
Ele está presente desde que criei o site da minha esposa com o mecanismo OcStore.
Quando comecei a entender como ele funciona, já estava meio cinza))))
Não vamos julgar com severidade, pois esta série de artigos é voltada para iniciantes.
Os artigos foram escritos de forma clara e compreensível, e escrever com clareza não é uma tarefa fácil.
O autor consegue realizar essa tarefa com perfeição.
Tenho a lembrança de contar a largura/altura e as coordenadas relativas e absolutas de um botão de merda, o que é deprimente :-)
2024 - mas ainda assim o usuário da biblioteca precisa contar os pixels.
o diálogo fornecido, na forma de um campo de entrada de volume e dois botões de compra/venda.
Como a caixa de diálogo acima resolve os problemas de tolerância de volume e negociabilidade? Sim, os lotes não podem ser menores que o mínimo, incrementados por etapas e não mais que o máximo. A compra/venda nem sempre é possível.
Alguma dica de solução? Não.
COMO ? manualmente... dentro do EA, gerencie manualmente todas as opções de uma GUI específica. Não é melhor do que usar diretamente as funções do terminal.
entre ObjectSetXXX(chart,objName,propertyName,propertyValue) e obj.SetInteger(value) - a diferença é coberta por definições, nenhuma OOP é necessária aqui.
---
Não se trata do artigo, mas de "escritores" em geral. É melhor você ler
Tenho a memória de calcular a largura/altura e as coordenadas relativas e absolutas de um botão, o que é deprimente :-)
2024 - mas ainda assim, o usuário da biblioteca deve contar os pixels
o diálogo fornecido, no formato: campo de entrada de volume e dois botões de compra/venda
Como a caixa de diálogo acima resolve os problemas com a admissibilidade dos volumes e a possibilidade de negociação? Sim, os lotes não podem ser menores que o mínimo, eles são incrementados em etapas e não mais que o máximo. A compra/venda nem sempre é possível. Há alguma sugestão de solução? Não há
COMO? Em um combate corpo a corpo... dentro do consultor, controle manualmente todas as opções de uma GUI específica. Não é melhor do que usar as funções do terminal diretamente.
entre ObjectSetXXX(chart,objName,propertyName,propertyValue) e obj.SetInteger(value) - a diferença é coberta por definições, nenhuma OOP é necessária aqui
---
Isso não se refere mais aos termos do artigo, mas, em geral, aos "escritores". Seria melhor se eles lessem
Gostaria de salientar que esta série não foi escrita para esta GUI de compra/venda, mas sim para qualquer GUI, e esta GUI de compra/venda funciona como um exemplo simples.
Obrigado por ter pensado na série, gostaria de receber sugestões.
Atenciosamente
Tenho a lembrança de contar a largura/altura e as coordenadas relativas e absolutas de um botão de merda, o que me deixa desanimado :-)
2024 - mas ainda assim um usuário de biblioteca precisa contar pixels
o diálogo fornecido, na forma de: campo de entrada de volume e dois botões de compra/venda
Como a caixa de diálogo acima resolve os problemas com tolerância de volume e negociabilidade? Sim, os lotes não podem ser menores que o mínimo, incrementados por etapas e não mais que o máximo. A compra/venda nem sempre é possível.
Alguma dica de solução? Não.
COMO ? manualmente... dentro do EA, gerencie manualmente todas as opções de uma GUI específica. Isso não é melhor do que usar diretamente as funções do terminal.
entre ObjectSetXXX(chart,objName,propertyName,propertyValue) e obj.SetInteger(value) - a diferença é coberta por definições, não é necessário usar OOP aqui.
---
Não se trata do artigo, mas de "escritores" em geral. É melhor você ler
Cara, este é apenas meu terceiro painel, não quero me lembrar dos dois primeiros, se algum programador os vir, ficarei envergonhado.
Gostaria de fazer isso agora para que, da próxima vez, eu não tenha que mexer tanto com isso.
Agora, no arquivo do plug-in, resta apenas uma classe com código para arrastar todos os elementos do painel e um monte de gets.
E, abaixo, tenho apenas funções para desenhar objetos, copiadas da ajuda, pois parece muito conveniente ter tudo em uma única pilha.
Como resultado, o código no Expert Advisor era longo, agora é amplo e, em geral, mudei de uma coisa para outra.
Outro arquivo de plug-in com funções de negociação usadas com frequência, como calcular todas as posições, normalizar o preço, fechar posições, etc.
Mas ainda é um pouco complicado e não é universal.
No próximo painel, teremos de calcular cada campo e escrever o processamento para esses campos (botões/campo de entrada).
E não consigo pensar em um esquema de como fazer tudo isso de forma mais universal.
Você pode me dar algumas boas dicas sobre como projetar o código?
Mas ainda é um pouco incômodo e não é versátil.
No próximo painel, teremos de calcular cada campo e escrever o processamento para esses campos (botões/campo de entrada).
E não consigo pensar em nenhuma maneira de torná-lo mais universal.
Você pode me dar algumas boas dicas sobre como projetar o código?
A variante mais prática e universal é projetar formulários visualmente, sem se preocupar com o código do layout - é isso que as classes devem fazer. Uma das soluções possíveis estava no artigo.
A opção mais prática e universal é projetar formulários visualmente, sem se preocupar com o código do layout - é exatamente isso que as classes devem fazer. Uma das soluções possíveis estava no artigo.
Eu me lembrei :-)
Para quem não está no mercado, quer algo mais ou menos complexo, mas bonito, e tem muita preguiça de escrever DLLs, existe o GtkServer https://sourceforge.net/projects/gtk-server/ e o designer de formulários Glade.
Metodologia: O GtkServer é iniciado como um ouvinte tcp, o orientador que usa SocketOpen/SocketSend envia o texto "load form" (ou ele mesmo por etapas forma widgets gtk) e também lê o resultado....
A opção mais prática e universal é projetar formulários visualmente, sem se preocupar com o código do layout - é exatamente isso que as classes devem fazer. Uma das soluções possíveis estava no artigo.
Stanislav, bem, no artigo para iniciantes você fornece um link para o artigo para usuários avançados :)
Eu o li, não o li, mas apenas o li, porque meu nível de programação é muito mais baixo do que o necessário para entender o que está escrito lá.
Tento usar o mínimo possível o que não entendo. Uma situação recente me fez acreditar ainda mais nisso.
Você provavelmente está lendo o tópico "Erros, bugs, perguntas", então eu tinha a tarefa de exibir setas de posições fechadas em um renko gráfico, entrada-saída entre elas - uma linha.
Decidi não escrever eu mesmo, mas pegar um código pronto do Saiber e, como resultado, perdi meio dia de tempo. No final, o Saiber corrigiu seu código, mas eu perdi tempo.
E se eu quisesse pegar o código do seu artigo e precisasse ajustar alguma coisa, bem, você entende, nada de bom sairia disso.
Tenho uma tarefa mais simples do que a que você se propôs ao escrever seu artigo. Só preciso fazer com que eu possa construir o próximo painel a partir de peças de código prontas, como as crianças constroem casas com lego.
Na minha opinião, não preciso de OOP para esse fim. Não a conheço, portanto não gosto dela.
O princípio MVC é bastante adequado para meus objetivos, se eu o entendi corretamente)))))
Em geral, já tenho uma ideia de como deve ser.
A propósito, você pode me dizer como fazer para que, quando eu acessar as funções da classe herdeira do programa, eu não veja as funções da classe base? Bem, se for possível.
me veio à mente :-)
Para quem não está no mercado, quer algo mais ou menos complexo, mas bonito, e tem muita preguiça de escrever uma DLL, há o GtkServer https://sourceforge.net/projects/gtk-server/ e o designer de formulários Glade.
Metodologia: O GtkServer é iniciado como um ouvinte tcp, o orientador que usa SocketOpen/SocketSend envia o texto "load form" (ou ele mesmo por etapas forma widgets gtk) e também lê o resultado....
Você também :)
Eu considero palavras como tcp listener, SocketOpen/SocketSend como palavrões , nem mesmo sei o significado delas sem o Google, e você sugere usá-las.
Senhores, tenham consciência, parem de assustar as pessoas com sua terminologia)))))
Stanislav, bem yo-ma-yo, abaixo do artigo para iniciantes você coloca um link para o artigo para avançados :)
Eu o li, não o li, mas apenas o li, porque meu nível de programação é muito mais baixo do que o necessário para entender o que está escrito lá.
Tento usar o mínimo possível o que não entendo. Uma situação recente me fez acreditar ainda mais nisso.
Infelizmente, a situação do software é tal que é impossível entender tudo por conta própria. De acordo com essa lógica, o sistema operacional deve ser personalizado (que é o que alguns apologistas do Linux fazem).
É por isso que a abordagem moderna é pegar tijolos prontos (que fazem mais ou menos o que você precisa) e acoplá-los (sem se aprofundar na implementação).
Eu estava apenas respondendo à pergunta sobre como fazer mais universalmente. Você não pode contestar o fato de que meu artigo é complicado, mas o ponto é que você pode descrever a GUI necessária como um modelo sem programação, apenas conectando gabinetes para obter controladores, arrastar janelas, redimensionar e assim por diante.