- DatabaseOpen
- DatabaseClose
- DatabaseImport
- DatabaseExport
- DatabasePrint
- DatabaseTableExists
- DatabaseExecute
- DatabasePrepare
- DatabaseReset
- DatabaseBind
- DatabaseBindArray
- DatabaseRead
- DatabaseReadBind
- DatabaseFinalize
- DatabaseTransactionBegin
- DatabaseTransactionCommit
- DatabaseTransactionRollback
- DatabaseColumnsCount
- DatabaseColumnName
- DatabaseColumnType
- DatabaseColumnSize
- DatabaseColumnText
- DatabaseColumnInteger
- DatabaseColumnLong
- DatabaseColumnDouble
- DatabaseColumnBlob
As funções de banco de dados usam o SQLite, um mecanismo popular e fácil de usar. Esse mecanismo é conveniente porque todo o banco de dados fica em um único arquivo no computador do usuário.
Usando essas funções, é fácil criar tabelas, adicionar dados a elas, fazer modificações e fazer seleções com consultas SQL simples:
- receber histórico de negociação e cotações de qualquer formato,
- salvar resultados de otimização e de teste,
- preparar e intercambiar dados com outros pacotes de análise,
- salvar configurações e status de programas MQL5.
Além disso, você pode usar em consultas funções estatísticas e matemáticas.
As funções para trabalhar com bancos de dados permitem substituir as operações mais repetitivas, quanto ao processamento de grandes matrizes de dados, por consultas SQL, o que permite, em muitos casos, usar chamadas em vez de programar loops e comparações complexas DatabaseExecute/DatabasePrepare. Para obter convenientemente os resultados de consulta em uma estrutura pronta, use a função DatabaseReadBind, que permite ler todos os campos de registro em uma chamada diretamente.
Para acelerar as operações de leitura, gravação e modificação, o banco de dados pode ser aberto/criado no banco de dados online com o sinalizador DATABASE_OPEN_MEMORY, sendo que esse banco de dados estará disponível apenas para esse programa específico e não será compartilhado com ninguém. Ao trabalhar com bancos de dados localizados no disco rígido, é necessário embrulhar grandes inserções/alterações de dados em uma transação usando DatabaseTransactionBegin/DatabaseTransactionCommit/DatabaseTransactionRollback, o que fornece aceleração centenas de vezes.
Para começar a trabalhar com estas funções, basta ler o artigo SQLite: trabalho nativo com bancos de dados SQL em MQL5.
Função |
Ação |
---|---|
Abre ou cria um banco de dados no arquivo especificado |
|
Fecha um banco de dados |
|
Importa para uma tabela dados de um arquivo |
|
Exporta uma tabela ou resultado sobre a execução da consulta SQL para um arquivo CSV |
|
Exibe uma tabela ou resultado sobre a execução da consulta SQL no log do EA |
|
Verifica a existência de tabela no banco de dados |
|
Executa uma consulta no banco de dados especificado |
|
Cria um identificador de consulta, que pode ser executado usando DatabaseRead() |
|
Redefine a consulta para seu status inicial, como após uma chamada de DatabasePrepare() |
|
Define o valor do parâmetro na consulta |
|
Define a matriz como um valor de parâmetro |
|
Realiza o a transição para o próximo registro como resultado de uma consulta |
|
Moves to the next record and reads data into the structure from it |
|
Exclui uma consulta criada em DatabasePrepare() |
|
Inicia a execução da transação |
|
Conclui a execução da transação |
|
Executa a reversão de transações |
|
Obtém o número de campos na consulta |
|
Obtém o nome do campo pelo número |
|
Obter tipo de campo por número |
|
Obtém o tamanho do campo em bytes |
|
Obtém o valor do campo do registro atual como uma string |
|
Obtém um valor int do registro atual |
|
Obtém um valor long do registro atual |
|
Obtém um valor double do registro atual |
|
Obtém o valor do campo do registro atual como um array |
- mode moda
- median mediana (50º percentil)
- percentile_25 25º percentil
- percentile_75 75º percentil
- percentile_90 90º percentil
- percentile_95 95º percentil
- percentile_99 99º percentil
- stddev или stddev_samp desvio padrão da amostra
- stddev_pop desvio padrão da população
- variance or var_samp variância da amostra
- var_pop variação da população
- acos(X) - arco cosseno em radianos
- acosh(X) - arco cosseno inverso hiperbólico
- asin(X) - arco seno em radianos
- asinh(X) - arco seno hiperbólico
- atan(X) - arco tangente em radianos
- atan2(X,Y) - arco tangente em radianos da relação X/Y
- atanh(X) - arco tangente hiperbólico
- ceil(X) - arredondando para um número inteiro
- ceiling(X) - arredondamento para um número inteiro
- cos(X) - cosseno de um ângulo em radianos
- cosh(X) - cosseno hiperbólico
- degrees(X) - converte radianos em ângulo
- exp(X) - exponente
- floor(X) - arredondamento para um número inteiro
- ln(X) - logaritmo natural
- log(B,X) - logaritmo para a base indicada
- log(X) - logaritmo decimal
- log10(X) - logaritmo decimal
- log2(X) - logaritmo de base 2
- mod(X,Y) - restante da divisãopi() - número aproximado de Pi
- pow(X,Y) - potência de uma determinada base
- power(X,Y) potência de uma determinada base
- radians(X) - converte o ângulo em radianos
- sin(X) - seno do ângulo em radianos
- sinh(X) - seno hiperbólico
- sqrt(X) - raiz quadrada
- tan(X) - tangente de um ângulo em radianos
- tanh(X) - tangente hiperbólica
- trunc(X) - reduz para o número inteiro mais próximo de 0
Exemplo:
select
|