Obrigado pelo artigo - foi interessante!
Uma pergunta: como é possível obter informações prontamente - sobre o fato de abrir/mudar uma posição/ordem em qualquer símbolo?
A necessidade de criar um banco de dados de posições atuais e virtuais é necessária para a compensação quando muitos Expert Advisors trabalham em um símbolo.
Ou é melhor incorporar o código em cada EA?
A necessidade de criar um banco de dados de posições atuais e virtuais é necessária para a compensação quando muitos Expert Advisors trabalham em um símbolo.
Ou é melhor incorporar o código em cada EA?
Alexey, isso não funcionará. Afinal, o serviço é como um script, com a única diferença de que ele é iniciado simultaneamente com o lançamento do terminal....
Iniciei o terminal, o serviço saltou para fora, funcionou e foi para o fundo....
É claro que você pode executá-lo em um loop infinito, mas você deve decidir por si mesmo qual será a eficácia disso....
Alexey, isso não funcionará. Afinal, o serviço é como um script, com a única diferença de que ele é iniciado simultaneamente com o lançamento do terminal....
Iniciei o terminal, o serviço saltou para fora, funcionou e foi para o fundo....
É claro que você pode executá-lo em um loop infinito, mas você deve decidir por si mesmo qual será a eficácia disso....
Por um lado, OnTrade() está faltando; por outro lado, se o serviço simplesmente resumir as ordens e gravar no banco de dados as operações permitidas, ele poderá funcionar. Mas, novamente, a questão da sincronização é relevante. Para estratégias que não são críticas para atrasar e trabalhar na abertura da barra, parece realista fazer isso. É possível negociar por meio do serviço? Não vejo nenhuma restrição. Então, é possível receber ordens de especialistas, agregá-las e negociar de forma independente com uma frequência especificada.
A necessidade de criar um banco de dados de posições atuais e virtuais é necessária para a compensação quando muitos Expert Advisors trabalham em um símbolo.
Ou é melhor incorporar o código em cada EA?
Alexey, obrigado por sua opinião!
Boa pergunta. Aqui precisamos pesar todos os prós e contras. Por um lado, como meu colega Alexey Viktorov apontou, o serviço para essa tarefa deve ser iniciado em um loop infinito. Mas, por outro lado, o serviço funciona em segundo plano e grava/lê no próprio banco de dados. Se você adicionar a capacidade de trabalhar com o banco de dados para cada robô, precisará entender que pode haver um conflito de sincronização. Algo como um mutex provavelmente ajudará nesse caso.
E os EAs podem processar instantaneamente eventos de negociação, enquanto o serviço não pode....
A necessidade de criar um banco de dados de posições atuais e virtuais é necessária para a compensação quando muitos Expert Advisors trabalham em um símbolo.
Ou é melhor incorporar o código em cada EA?
Cada robô leva em conta suas posições virtuais por si só. Em princípio, ele nem sequer sabe sobre as reais. O único problema do MM é a definição do lote, mas eu tenho um lote fixo definido por meio de parâmetros. A única alternativa a um lote fixo é alocar para cada robô alguma porcentagem do depósito.
Alexei, obrigado por sua opinião!
Essa é uma boa pergunta. Aqui precisamos pesar todos os prós e contras. Por um lado, como meu colega Alexey Viktorov apontou, o serviço para essa tarefa deve ser iniciado em um loop infinito. Mas, por outro lado, o serviço funciona em segundo plano e grava/lê no próprio banco de dados. Se você adicionar a capacidade de trabalhar com o banco de dados para cada robô, precisará entender que pode haver um conflito de sincronização. Algo como um mutex provavelmente ajudaria nesse caso.
E os EAs podem processar instantaneamente eventos de negociação, enquanto o serviço não pode....
O SQLite não sabe como trabalhar com a fila de transações? Eu não lidei com esse problema, mas você escreveu um artigo, por isso pergunto :)
É possível gravar em cada seção da base (uma tabela separada), ou até mesmo cada consultor pode criar sua própria base, e o serviço verificará a disponibilidade da base e a conectará ao trabalho.
É claro que o problema são os atrasos, mas, por outro lado, isso é compensado pelo spread economizado.
No meu caso, cada robô leva em conta suas posições virtuais por si só. Em princípio, ele nem sequer sabe sobre as posições reais. O único problema do MM é a definição do lote, mas eu tenho um lote fixo definido por meio de parâmetros. A única alternativa a um lote fixo é alocar para cada robô alguma porcentagem do depósito.
Quero ser universal, de modo que possa criar cestas de Expert Advisors com lógica diferente. Se um Consultor Especialista estiver fervendo em seu próprio suco, então sim - é um pouco mais fácil - eu mesmo fiz isso, mas experimentalmente - sem salvar os dados em um arquivo/base de dados.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Guia Prático MQL5 — Serviços foi publicado:
O artigo descreve os recursos versáteis dos serviços — programas em MQL5 que não necessitam de gráficos para serem anexados. Eu ambém destacarei as diferenças dos serviços de outros programas em MQL5 e enfatizarei as nuances do trabalho do desenvolvedor com os serviços. Como exemplos, são oferecidas ao leitor várias tarefas que abrangem uma ampla gama de funcionalidades que podem ser implementadas como um serviço.
Vamos imaginar que nos deparamos com a seguinte tarefa. O terminal deve apresentar os gráficos dos símbolos atualmente negociados, ou seja, os que apresentam posições em aberto.
As regras para abrir os gráficos são bem simples. Se houver uma posição aberta para um dos símbolos, abra o gráfico desse símbolo. Se não houver posição, não haverá gráfico. Se houver várias posições para um símbolo, apenas um gráfico será aberto.
Além disso, vamos adicionar algumas cores. Se a posição for lucrativa, a cor de fundo do gráfico será em azul claro e, se estiver no vermelho, será rosa claro. O lucro zero usa a cor lavanda.
Autor: Denis Kirichenko