Discussão do artigo "SQLite: trabalho nativo com bancos de dados SQL em MQL5" - página 5

 
Alexey Viktorov:

Exatamente. Artem, você fez isso com o MQL, mas o tópico é sobre o SQLite. Até mesmo sua biblioteca seria mais simples e mais "veloz" se usasse bancos de dados SQLite. Eu não estava falando sobre a ausência ou a impossibilidade de fazer isso. Eu estava falando sobre a simplicidade da solução.

Bem, muito mais simples do que o que eu fiz - basta solicitar os dados necessários em seu programa, e para ambas as plataformas. Mas o tópico não é realmente sobre isso. Portanto, vamos deixar de lado a discussão.

 
Alexey Viktorov:

Do artigo, embora com dificuldade, entendi este exemplo

Essa consulta seleciona registros com um valor maior que 15000 no banco de dados. Outro exemplo era selecionar a soma... Mas eu, por exemplo, preciso selecionar o menor/maior valor do banco de dados. Ou a soma de valores maiores/menores que zero. Acho que existe essa possibilidade, mas não há informações suficientes na forma de documentação MQL5. Para mim, é difícil extrair exemplos. Mas se eu não tiver... se necessário, tentarei descobrir.

Você precisa aprender a linguagem das consultas SQL. Este artigo mostra como usá-las com a ajuda dessas funções MQL5 e dá alguns exemplos de consultas SQL.

A tarefa "criar uma ajuda sobre SQL" não foi definida. Há muitos tutoriais e cursos sobre esse tópico.

 
Rashid Umarov:

Você precisa aprender a linguagem de consulta SQL. Este artigo mostra como usá-las com a ajuda dessas funções MQL5 e dá alguns exemplos de consultas SQL.

A tarefa de "criar uma ajuda em SQL" não foi definida. Há muitos tutoriais e cursos sobre esse tópico.

Sim, Rashid, eu pesquisei e encontrei o que pode ser encontrado em russo. Mas concordo que, se você se oferece para usar algo, a descrição deve estar disponível sem pesquisas adicionais. Além disso, eu já disse que a forma de documentação é mais aceitável para mim como documentação MQL. E tudo o que encontrei na rede sobre o SQLite é, de certa forma, difícil para minha compreensão. Mas isso não é relevante para mim.

Além disso, expressei uma opinião um pouco mais realista.

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.

Discussão do artigo "SQLite: trabalho nativo com bancos de dados SQL em MQL5".

Alexey Viktorov, 2020.05.16 10:26 AM

Após uma familiarização mais próxima, mas ainda superficial, com os recursos do SQLite, cheguei à conclusão de que, nessa forma, desculpe, ele é apenas um chocalho.

Para usar as vantagens incondicionais do SQLite, seria útil ter um banco de dados de histórico, pelo menos. E, melhor ainda, um banco de dados de posições atuais e ordens pendentes. Espero que, em nível de MT, a criação de tais bancos de dados não leve muito tempo. Especialmente se as tabelas, como estão agora, puderem ser formadas a partir do banco de dados SQLite. Essa abordagem definitivamente simplificará o trabalho com o histórico de ordens e negócios. Será muito fácil obter os valores de swap, comissões e lucros em todas as negociações com um ID de posição ou em um determinado período.

Recentemente, li em um dos tópicos que a seleção do histórico é baseada no horário de abertura, mas corretamente no horário de fechamento.... Ter um banco de dados SQLite elimina essas questões. Por qual critério você deseja usar e selecionar. Mas poucos programadores criarão essas bases para si mesmos. IMHO.

Exatamente poucos programadores escreverão o preenchimento do banco de dados para aproveitar os novos brinquedos. E Artyom ficou imediatamente indignado, "como isso não está disponível", pegue a biblioteca e use-a. Mas, em sua biblioteca, tudo é feito por meio de MQL, e o SQLite continua sendo um chocalho.

Eu me pergunto o quão difícil é substituir o algoritmo existente de preenchimento do histórico e da lista de posições abertas e ordens pendentes pelo preenchimento do banco de dados SQLite e, em seguida, convertê-lo para o formato atual. E como isso afetará a velocidade do MT.

Imagine como será fácil coletar todas as ordens e negociações por ID de posição, sejam elas abertas ou já fechadas.....

 
Alexey Viktorov:

Sim, Rashid, pesquisei e encontrei o que pude encontrar em russo. Mas concordo que, se você se oferece para usar algo, a descrição deve estar disponível sem pesquisas adicionais. Além disso, eu já disse que a forma de documentação é mais aceitável para mim do que a documentação do MQL. E tudo o que encontrei na rede sobre o SQLite é, de certa forma, difícil para minha compreensão. Mas isso não é relevante para mim.

Nós discordamos.

Os sistemas amplamente conhecidos têm muita documentação disponível. Seja realista.

 
Renat Fatkhullin:

Nós discordamos.

Os sistemas amplamente conhecidos têm muita documentação disponível. Seja realista.

Não estou insistindo. Esta é apenas minha opinião subjetiva e possivelmente errônea.

 
Alexey Viktorov:

Exatamente poucos programadores escreverão preenchimentos de banco de dados para aproveitar os novos brinquedos.

Um script para criar/atualizar uma tabela de banco de dados a partir do histórico da conta/histórico do instrumento é escrito em poucos minutos.

O terminal provavelmente armazena tudo isso nos mesmos bancos de dados, mas é improvável que eles sejam acessados diretamente. E não faz sentido duplicar tudo isso em um banco de dados castum "pronto para uso".

 
Andrey Khatimlianskii:

Um script para criar/atualizar uma tabela de banco de dados do histórico da conta/histórico do instrumento está escrito em minutes.....

O terminal provavelmente armazena tudo isso nos mesmos bancos de dados, mas é improvável que dê acesso direto a eles. E não faz sentido duplicar tudo isso em um banco de dados castum "fora da caixa".

Sim, eu não pensei em segurança. Provavelmente porque não há pensamentos fraudulentos:))))))) Eu concordo. Retiro minhas palavras.

 
Alexey Viktorov:

@Rashid Umarov Estou relendo o artigo pela enésima vez e a cada vez me deparo com um erro de digitação.

Por favor, corrija-o e exclua esta mensagem.

Corrigido em dois lugares - erro de digitação estranho. Obrigado pela atenção

 
Existe a possibilidade de acesso simultâneo a tabelas diferentes em um banco de dados SQLite? Ou, pelo menos, como saber se o banco de dados está bloqueado no momento e o programa deve aguardar sua vez?
 

Boa tarde!

Ao executar o script DatabaseRead.mq5, não crio um arquivo de banco de dados (company.sqlite).

Ele não gera nenhum erro. O arquivo está lá, mas eu não o vejo!

Você pode me ajudar a entender?