Discussão do artigo "Criando interfaces gráficas para EAs e indicadores baseados no .Net Framework e C#" - página 12

 
Nikolai Karetnikov:

Boa tarde! )

Peter, o que você quer dizer com "eram" e o que quer dizer com "alto"? Houve uma discussão sobre esse tópico em algum lugar ou algo assim

Boa tarde! )
Sim, houve discussões e muitas delas. Descobriu-se que, ao transferir dados do mql para as tabelas Sharpe em uma frequência de temporizador de 25 ms, elas são atualizadas cerca de uma vez por segundo por algum motivo desconhecido. Não sei se o autor ou outra pessoa conseguiu corrigir o problema, mas presumo que Vasily não continuou a série de artigos porque não conseguiu resolvê-lo.

P.S. (A propósito, eles pensaram que, após o artigo de Vasiliy, ninguém precisaria da minha linguagem de marcação, mas minhas tabelas funcionam bem, e a conexão é muito mais conveniente e pode ser colocada no Market, pois não há DLL). :)
 
Реter Konow:
Gentil! )
Sim, houve algumas discussões e muitas delas. Descobriu-se que, ao transferir dados de tabelas mql para sharps em uma frequência de temporizador de 25 ms, por algum motivo desconhecido, elas são atualizadas cerca de uma vez por segundo. Não sei se o autor ou outra pessoa conseguiu corrigir o problema, mas presumo que Vasily não continuou a série de artigos porque não conseguiu resolvê-lo.

P.S. (A propósito, eles pensaram que, depois do artigo de Vasily, ninguém precisaria da minha linguagem de marcação, mas minhas tabelas funcionam bem, e a conexão é muito mais conveniente e pode ser carregada no Market, porque não há DLL). :)

Entendo )))

Parece que você está certo, ou perdemos o Vasily ou ele perdeu o interesse no assunto).

 

versão ligeiramente melhorada do TradePanel Expert Advisor

No cabeçalho do formulário, o nome do instrumento [1], em vez da inscrição vender e comprar nos botões de cotações atuais [2], e os próprios formulários já [3] e "grudam" nas bordas da tela. Aderência - software de terceiros https://www.nurgo-software.com/products/aquasnap.

Se alguém pudesse adicionar uma função de magnetização ao próprio .sln, seria ótimo

Ao iniciar o EA, ele perguntará onde o TradePanel.dll está localizado, para que você não precise especificá-lo no código


Window docking
Window docking
  • www.nurgo-software.com
Split your desktop in one easy gesture Drag and drop your windows to the sides or corners of the screen, and they'll automatically be resized to fit one half or one quarter of the screen. This feature is just like the built-in Aero Snap function of Windows 10 , but with more possibilities! This is especially useful on either a 4K monitor or...
Arquivos anexados:
TradePanel.zip  74 kb
 
Nikolai Karetnikov:

Rafil, você descobriu qual era o problema?

Resolvi da mesma forma que você, adicionando uma enumeração ao mql

 
Olá VASILIY SOKOLOV

Primeiramente, muito obrigado por sua amostra e por compartilhar sua ideia.

Eu fiz o download e o utilizei muito bem.

Mas tenho uma pergunta: por que abrimos o winform na DLL e precisamos usar o "MtGuiController.dll"?

É possível simplesmente importar o "TradePanel.dll" e usá-lo sem o "MtGuiController.dll"?

Se alguém souber como fazer isso, obrigado.

 

Olá!

Obrigado por sua ideia!

Criei um formulário e usei um TabelLayoutPanel. Mas se eu clicar em um botão nesse TabelLayoutPanel, nada acontecerá.

Alguém pode me ajudar com isso?

PS: O mesmo botão funciona sem o TabelLayoutPanel.

 

O controlador é brilhante e você tem ideias muito boas sobre o que poderia fazer, mas o MT5 tem um grande problema:

Cada *.dll incluída no EA mq5 se torna inutilizável para outros acessos, e o controlador não pode encaminhar dados para outras dlls.

Isso provavelmente se deve ao fato de que o código C# é compilado diretamente e, portanto, várias coisas não podem ser feitas.

Além disso, não é possível gerenciar vários formulários, pois tenho de ter todos os controles que recebem dados em ambos os formulários ou somente no primeiro.

A única maneira de contornar isso é usar um controle de tabulação no qual você constrói as várias páginas de que precisa, comércio, mensagens, histórico etc. Ou você tem que recorrer ao C++.

Ou você terá que recorrer ao C++, pois poderá importar essas dll's e terá que importar as funções individuais.

 
Arturo Minor:

Você pode usar a representação numérica de cada tipo de evento:

Tipo de evento ID
Exceção 0
ClickOnElement 1
Mudança de texto 2
ScrollChange 3

Aqui está um exemplo com a função SendEvent (esse código é do TardePanel EA):

Você altera a representação do evento TextChange para seu ID, que é 2, e faz isso para todas as funções que precisam dele.


Obrigado pela solução. No entanto, a resposta à pergunta original ainda é interessante: por que a enumeração não está acessível a partir do EA? A enumeração é declarada como pública. Por que ela funcionou para os outros? (Ou não funcionou?)


Desde já, obrigado pela ajuda.

 
sachnyc:

Alguém conseguiu descobrir o motivo do erro abaixo?

O compilador MQL declara : "Undeclared Identifier" (Identificador não declarado) para qualquer uma das enumerações abaixo.

Também estou recebendo o mesmo erro.


Após alguns testes.


Para usar as constantes associadas às enumerações definidas no arquivo MtGuiController.dll, é necessário usar o espaço de nome MtGuiController antes de qualquer constante.

Por exemplo, em vez de escrever TextChange, é preciso escrever MtGuiController.TextChange.

 
Pete:

Sou relativamente novo em MQL5 e aprendi muito com este artigo! Muito obrigado!


Tenho uma pergunta. Nos últimos dois dias, tenho me esforçado um pouco para entender isso.


Concluí cada etapa com êxito algumas vezes, mesmo em outro computador, mas sempre que tento compilar o código, recebo uma mensagem de erro.


O compilador MQL afirma : "Undeclared Identifier" (Identificador não declarado) para qualquer uma das enumerações abaixo.


Se eu "comentar" essas enumerações no MQL5, ele funcionará de acordo, o que é interessante, pois isso significa que o código funciona, mas não consegue ler as enumerações, o que eu acho?

Se alguém puder me ajudar, ficarei muito grato :)


Obrigado,


Após alguns testes.


Para usar as constantes associadas às enumerações definidas no arquivo MtGuiController.dll, é necessário usar o espaço de nome MtGuiController antes de qualquer constante.

Por exemplo, em vez de escrever TextChange, você deve escrever MtGuiController.TextChange.