Discussão do artigo "Guia Prático MQL5 — Serviços" - página 2

 
Aleksey Vyazmikin #:

O SQLite não sabe como trabalhar com a fila de transações? Não dei uma olhada nisso, mas você escreveu um artigo, por isso estou perguntando :)

Você pode escrever em cada seção do banco de dados (uma tabela separada), ou até mesmo cada Consultor Especializado pode criar seu próprio banco de dados, e o serviço verificará a disponibilidade da base e a conectará para funcionar.

É claro que o problema são os atrasos, mas, por outro lado, isso é compensado pelo spread economizado.

Mas o SQLite é limitado pelo multithreading - execução simultânea de vários processos. Vários processos podem ler do banco de dados ao mesmo tempo, mas apenas um pode gravar nele por padrão....

 
JRandomTrader OnTrade, OnTradeTransaction. O OnDeinit também seria útil para a parada regular quando o terminal é fechado.

E então o serviço quase não será diferente de um Expert Advisor. Estou mais interessado nos eventos de transição para outro gráfico, mudança de período do gráfico... Bem, talvez algo mais que não esteja nos Expert Advisors ou indicadores....

 
Alexey Viktorov #:

E então o serviço quase não será diferente de um Consultor especialista. Estou mais interessado nos eventos de mudar para outro gráfico, mudar o período do gráfico... Bem, talvez outra coisa que não esteja nos Expert Advisors ou indicadores....

O principal é que ele não exige um gráfico separado.

 

Muito bom. Obrigado por compartilhar esse artigo e os exemplos de código.

Criei um serviço muito simples que identifica quando é um novo dia e executa uma tarefa apenas uma vez por dia para salvar o histórico de negociações em um arquivo CSV. Depois disso, esse arquivo é atualizado somente com as novas negociações do histórico.

A vantagem é que não preciso de uma janela de gráfico para fazer isso, mas isso levantou uma questão sobre se o serviço usará mais ou menos poder de processamento e memória do meu computador em comparação com se eu usasse essa tarefa dentro de um indicador vazio, por exemplo, executando uma função "OnTimer".

Se você tiver a resposta para a minha pergunta sobre o poder de processamento e o uso da memória, poderia me informar? Mais uma vez, obrigado por compartilhar este artigo e os exemplos de código.