Discussão do artigo "Otimização Walk Forward Contínua (Parte 1): Trabalhando com os Relatórios de Otimização" - 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
O artigo é interessante. Tudo está claramente descrito. Estou aprendendo a programar em C#. É possível escrever um robô em C#? E como fazer isso para que ele possa negociar em termenal? Muito obrigado!
Tudo é possível, mas é muito melhor escrevê-lo em MQL5. Entretanto, seja para fins educacionais ou para outras necessidades, você pode tentar. Há várias opções, sendo que a mais simples e ideal delas é escrever toda a lógica em C# na dll (biblioteca dinâmica) do projeto. Em seguida, declare uma classe pública com vários métodos estáticos públicos (eles serão exportados como funções C na MQL5). Aproximadamente, a classe deve conter um método que inicialize o robô, destrua o robô e seja chamado em cada tick (semelhante a OnInit, OnDeinit, OnTick). Em seguida, o robô é criado em MQL5, onde as funções estáticas mencionadas da dll criada são exportadas e, após a compilação, o seguinte acoplamento será obtido:
1. A MQL5 chama o método de inicialização da dll em OnInit. A dll inicializa a classe do robô em uma variável estática.
2. MQL5 OnTick chama o método OnTick da dll e, em resposta, recebe um sinal para vender/comprar/não fazer nada. Se for necessário entrar em uma transação, entramos usando o código escrito em MQL5.
3. MQL5 OnDeinit exclui o robô, chamamos o método OnDeinit da dll e fazemos alguma coisa. Em C#, você não precisa excluir classes, o Garbige Collector faz isso, tudo com memória é praticamente automatizado lá.
Ou seja, os cálculos são feitos no lado do C# e a negociação é feita no lado da MQL5.
Existem também algumas APIs semelhantes para o terminal, em que o código do C# interage diretamente com a MQL5 por meio de pipes ou outras conexões. Até encontrei um projeto desse tipo no github, mas, na minha opinião, é mais fácil escrever tudo por meio de uma dll.
Na última série de artigos sobre gerenciamento de otimização, mostrei como usar uma dll para conectar a GUI do WPF com o C#. Você pode usar o mesmo método para transferir o robô para o C#. Antes do meu artigo, eles também escreveram sobre a GUI, mas apenas WinForms e MQL5. Adotei parte desse mecanismo, não me lembro do link para esse artigo, mas ele também é bastante útil. Acho que fiz referência a ele em algum lugar deste artigo.
Além disso, no terceiro artigo desta série de artigos, é descrito como exportar uma série de funções estáticas para MQL5 a partir da dll.
Então, antes de poder usar esse programa, terei que fazer a conversão usando o Visual Studio?
Olá!
Então, antes de poder usar esse programa, terei que fazer a conversão usando o Visual Studio?
Olá. Este é o primeiro artigo de 5 partes que já foram publicadas. Na quarta parte, há o programa completo. E sim, você precisa compilar alguns códigos no Visual Studio. Se estivermos falando do código que foi anexado ao artigo atual, sim, ele deve ser compilado no Visual Studio.