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

 

Olá, Vasily, e olá a todos vocês. Estou usando o GuiController que usa um formulário criado com o Visual Studio C #.


A ideia era preencher os campos do ComboBox com dados de um banco de dados SQLite3.


Instalei todo o pacote System.Data.SQLite, mas com o GuiController não consigo fazê-lo funcionar.


Alguém pode me explicar por quê?


Obrigado pela ajuda

 

Fiquei muito interessado neste artigo. Finalmente, uma possibilidade de abrir uma janela real e tudo o que você deseja ter. Todo o exemplo é executado com a restrição de que somente os arquivos fornecidos são funcionais. Além disso, há problemas com o "enum GuiEventType"; se você não adicionar esse "enum", o MetaTrader5 não compilará o exemplo. Os eventos só são conhecidos pelo editor a partir da DLL até que você queira compilar.

Teria sido muito bom ter finalmente opções reais de interface. Mas, infelizmente, isso é apenas uma demonstração - muito invejosa para mim.

A primeira opção para mim teria sido uma tela, já que o System-Out é muito antiquado e ilegível. Mas, infelizmente, a demonstração só funciona com as versões compiladas. Assim que eu mesmo compilo a DLL com o Visual, o programa inicia com um erro de .NET. Independentemente de a compilação em 3.x ou 5.NET ter sido selecionada. Minha suposição é que nosso autor tenha um MetaTrader especial onde esse tipo de coisa funciona - que pena.

 

Hi

Gostaria de saber se há um evento para que o EA seja removido do gráfico quando o formulário for fechado.

Preciso alterar a biblioteca?

Alguém pode me ajudar?

 

Criei uma classe WinForm em C# com base no TradingForm acima. Adicionei alguns recursos e eles estão funcionando muito bem.

Na verdade, estou tentando adicionar outros elementos de formulário via Nuget, mas o formulário não aparece quando as bibliotecas são referenciadas e usadas no código.

Então, é possível fazer isso ou há outra maneira de trabalhar com bibliotecas referenciadas?

Agradeço antecipadamente por algumas dicas :-)

 
Mano #:
Podemos anexar esse aplicativo .Net ao gráfico?
Você conseguiu fazer isso? Eu realmente preciso disso
 

Saudações. Você pode me dizer, por favor? O que estou fazendo de errado? Quando ligo o Expert Advisor, o formulário não é exibido. Não há erros no registro.



 
Andrey Sokolov #:

Saudações. Você pode me dizer, por favor? O que estou fazendo de errado? Quando ligo o Expert Advisor, o formulário não é exibido. Não há erros no registro.



Olá! Para qual versão do .NET a biblioteca e o aplicativo com o formulário foram criados? O MT4 e o MT5 não oferecem suporte ao .NET Core 3 (não verifiquei as versões mais novas), .NET 5 e .NET 6, nem para a biblioteca nem para o aplicativo de formulário.
É claro que posso estar errado, mas também não executei o formulário nessas versões. Eu mesmo consegui iniciá-lo ao criar no .NET Framework 4.8.

Além disso, se estiver tentando importar para o MT4, será necessário modificar um pouco o código da biblioteca, pois há problemas com a passagem de parâmetros por referência.

 

Não está funcionando:

GuiController baixado do repositório. Instalei o Visual Studio 2022, criei um formulário com um botão, executei-o no MetaTrader 5 e recebi um erro:

2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) System.Reflection.TargetInvocationException: O destino da chamada criou uma exceção. ---> System.BadImageFormatException: esperava-se que o módulo contivesse um manifesto de montagem. (Exceção HRESULT: 0x80131018)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) em System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in System.Reflection.Assembly.LoadFile(String path)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in MtGuiController.GuiController.GetGuiController(String assembly_path, String form_name)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) in MtGuiController.GuiController.ShowForm(String assembly_path, String form_name)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) --- Fim do rastreamento da pilha de exceções internas ---
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) em System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) em System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) em Wrapper.Wrapper.Call(MethodInfo method, Int64 owner, Int64 parameters, Int64 result)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) Erro de tempo de execução do .Net


Resultado do comando clrver:

PS C:{Development\Visual Studio Community 2022\C Sharp\GuiMt> clrver

Ferramenta de versão CLR do Microsoft (R) .NET Versão 4.8.3928.0

Copyright (c) Microsoft Corporation. Todos os direitos reservados.

Versões instaladas no computador:

v2.0.50727

v4.0.30319


A que o erro pode estar relacionado?

 
Nextor o Visual Studio 2022, criei um formulário com um botão, executei-o no MetaTrader 5 e recebi um erro:
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) System.Reflection.TargetInvocationException: O destino da chamada criou uma exceção. ---> System.BadImageFormatException: esperava-se que o módulo contivesse um manifesto de montagem. (Exceção HRESULT: 0x80131018)
2022.03.16 19:22:44.629 TradeAssistant (EURUSD_i,M5) em System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)


O resultado do comando clrver:

PS C:\Development\Visual Studio Community 2022\C Sharp\GuiMt> clrver

Ferramenta de versão do Microsoft (R) .NET CLR Versão 4.8.3928.0

Copyright (c) Microsoft Corporation Todos os direitos reservados.

Versões instaladas no computador:

v2.0.50727

v4.0.30319

A que o erro pode estar relacionado?

O GuiController está desatualizado e precisa ser recompilado.

 

Desde outubro de 2018, a MQL5 oferece suporte nativo à integração com as bibliotecas do Net Framwork

Boa tarde. Você poderia me dizer onde posso ler informações oficiais sobre o suporte a C#? Não encontrei na documentação, há informações sobre como conectar o VS, usar o MT como compilador, trabalhar com Python, mas não vi nenhuma informação sobre o Sharp. Ficaria grato se me enviassem um link para a documentação oficial para me familiarizar com todos os recursos.