Discussão do artigo "Integração de um EA em MQL e bancos de dados (SQL Server, .NET e C#)"

 

Novo artigo Integração de um EA em MQL e bancos de dados (SQL Server, .NET e C#) foi publicado:

Este artigo descreve como adicionar a um EA um recurso para trabalhar com o servidor de banco de dados Microsoft SQL Server. São importadas funções de uma DLL. Para criar a DLL, é implementada a plataforma Microsoft .NET e a linguagem C#. Com pequenas alterações, os métodos usados no artigo também são adequados para EAs escritos em MQL4.

Nos fóruns, ocasionalmente há perguntas sobre como integrar o trabalho com bancos de dados a EAs escritos em MQL5. O interesse neste tópico não é surpreendente. Os bancos de dados são muito bons como meio para salvar dados. Ao contrário dos logs de terminal, os dados não desaparecem dos bancos de dados. Eles são fáceis de classificar e filtrar. Através do banco de dados, o EA pode enviar as informações, por exemplo, certos comandos. E o mais importante é que os dados obtidos podem ser tanto analisados de diferentes ângulos quanto processados estatisticamente. Por exemplo, a fim de descobrir o lucro médio e o lucro total de um tempo especificado para cada par de moedas, basta escrever uma solicitação numa linha, o que leva literalmente um minuto. Agora imagine quanto tempo leva calculá-lo manualmente usando o histórico da conta no terminal de negociação.

Infelizmente, não existem meios regulares para interagir com os servidores do banco de dados nos terminais MetaTrader. O problema é resolvido apenas através da importação de funções a partir de arquivos DLL. Embora a tarefa não seja fácil, é realizável.

Iniciamos o EA alterando os dados da cadeia de conexão nos parâmetros para os parâmetros de acesso ao nosso servidor de banco de dados. Se tudo for feito corretamente, o EA registrará as seguintes entradas:

2018.07.10 20:36:21.428    MqlSqlDemo (EURUSD,H1)    Conexão ao banco de dados estabelecida.
2018.07.10 20:36:22.187    MqlSqlDemo (EURUSD,H1)    Tabela criada no banco de dados.
2018.07.10 20:36:22.427    MqlSqlDemo (EURUSD,H1)    Dados registrados na tabela.
2018.07.10 20:36:22.569    MqlSqlDemo (EURUSD,H1)    Número lido no banco de dados: 1
2018.07.10 20:36:22.586    MqlSqlDemo (EURUSD,H1)    String lida no banco de dados: Test

 Conexão ao banco de dados, execução de comandos SQL, registro e leitura de dados — tudo bem-sucedido.

Autor: Сергей Ткаченко