Discussão do artigo "Simplificando o uso de bancos de dados em MQL5 (Parte 1): Introdução aos bancos de dados e ao SQL"
Neste primeiro artigo, mostrei apenas a ponta do iceberg. O TickORM vai muito além: a ideia é mudar completamente a maneira como você trabalha com bancos de dados no MQL5. O objetivo é alcançar algo direto, simples e poderoso, em que abrir um banco de dados, criar um repositório e manipular entidades seja tão natural quanto trabalhar com matrizes. Ao final da série, o uso se assemelhará ao exemplo abaixo, no qual você salva, pesquisa, atualiza e exclui registros sem escrever uma única consulta manualmente. Esse é o caminho que estou abrindo com o TickORM.
int OnInit(void) { IDatabaseManager *database = new CDatabaseManager(); if(database.OpenDatabase("trades.sqlite")) { //--- Repositório de instâncias AccountRepository repo(database); //--- Inserir Account acc; acc.number = 10; repo.save(acc); //--- Selecionar tudo Account acc[]; repo.findAll(acc); ArrayPrint(acc); //--- Selecionar por id Account acc = repo.findById(1); Print(acc.id); Print(acc.number); //--- Atualização Account acc; acc.id = 1; acc.number = 10; repo.update(acc); //--- Excluir por ID repo.deleteById(1); } database.CloseDatabase(); delete database; return(INIT_SUCCEEDED); }
Para sua informação: uma implementação de ORM para MQL5 foi apresentada no livro.
- www.mql5.com
Novo artigo Simplificando o uso de bancos de dados em MQL5 (Parte 1): Introdução aos bancos de dados e ao SQL foi publicado:
Quando falamos em MQL5, a maioria das conversas gira em torno de indicadores, EAs, estratégias de negociação e backtests. Mas chega um momento em que qualquer trader ou desenvolvedor que leva a automação a sério percebe que armazenar dados é fundamental. É aí que entram os bancos de dados. Talvez você pense: "Mas eu já salvo meus resultados em arquivos CSV ou TXT. Por que complicar as coisas usando um banco de dados?" A resposta está na estruturação dos dados, na eficiência e na confiabilidade que um banco de dados oferece, especialmente quando precisamos lidar com grandes volumes de informações ou operações complexas.
À primeira vista, falar de bancos de dados no contexto do MQL5 pode parecer um exagero. Afinal, a linguagem é voltada principalmente ao trading, aos indicadores e aos robôs de negociação automatizada. No entanto, quando começamos a desenvolver estratégias que envolvem grandes volumes de dados, backtests complexos ou registros detalhados de ordens, as limitações dos arquivos convencionais logo se tornam evidentes. É nesse cenário que saber criar, acessar e utilizar bancos de dados passa a ser um recurso capaz de transformar seu fluxo de trabalho no trading.
Quem começa a explorar bancos de dados em MQL5 encontra dezenas de funções nativas e exemplos isolados. Armazenar registros e consultá-los é relativamente simples, mas logo surge uma questão: como estruturar tudo isso de maneira que possa ser reutilizado em projetos reais? Nesta série de artigos, vamos além da documentação. Começaremos pelas funções básicas do SQLite e avançaremos, passo a passo, até a implementação de um mini-ORM em MQL5 (TickORM). A proposta é organizar as chamadas diretas em camadas de abstração bem planejadas, inspiradas nas tecnologias Java JDBC e JPA, mas adaptadas ao ecossistema MetaTrader.
Neste artigo, apresentarei os fundamentos do uso de bancos de dados com MQL5 e SQL. Isso servirá de base para os próximos artigos, nos quais encapsularemos essas funções em classes, interfaces e, por fim, em um ORM.
Autor: joaopedrodev