Serviços. Eles já estão em funcionamento? - página 24

 
Aliaksandr Hryshyn:
1. Carregamento de notícias de fundo
2. Cálculos pesados em múltiplos fios (cópias em execução do serviço) para que não afetem o comércio.
3. O Expert Advisor coleta informações do copo, e o serviço as embala periodicamente em um arquivo zip.
4. Coleta de todas as informações comerciais quando múltiplos Expert Advisors trabalham, processando e salvando-as no banco de dados ou enviando.
5. ...
Quais são suas opções?
1. Se for feito o upload para um arquivo, então sim.

2. Você pode.

3. Não tenho certeza. O serviço aceita os eventos da pilha? Caso contrário, eles precisam ser passados da EA e ela perde seu significado.

4. Se cada EA simplesmente escreve seus relatórios em um arquivo, e o serviço os lê e os analisa, então, sim.

Eu ainda estou pensando em minhas próprias variantes
 
Roman:

Especialista/Script requer um gráfico aberto.
O número de gráficos, é limitado pelo terminal.
Cada renderização/atualização do gráfico, é uma fila de mensagens do sistema e uma carga desnecessária de recursos.

De acordo.
 
fxsaber:

2-3 pode ser implementado através de um roteiro no OBJ_CHART.

O serviço é iniciado quando o terminal inicia, o roteiro não pode fazer isso.
 
Aliaksandr Hryshyn:
O serviço começa quando o terminal começa, o roteiro não pode fazer isso.

Isto não é necessário nestas duas tarefas.

 
Aliaksandr Hryshyn:
1. Histórico de carregamento de notícias
2. Cálculos pesados em múltiplos fios (cópias em execução do serviço) para que não afetem o comércio.
3. O Expert Advisor coleta informações do copo, e o serviço as embala periodicamente em um arquivo zip.
4. Coleta de todas as informações comerciais quando múltiplos Expert Advisors trabalham, processando e salvando-as no banco de dados ou enviando.
5. ...
Quais são suas opções?

Para todas essas tarefas precisaremos resolver o problema do intercâmbio de dados entre um grupo de Consultores Especialistas e o serviço

o máximo que posso sugerir para o serviço é ouvir o soquete no qual os preços de outro corretor irão e encaminhá-lo para o gráfico personalizado para fazer a arbitragem, e no gráfico personalizado um Expert Advisor trabalhando pelo TS

 
Igor Makanu:

para todas as tarefas acima, a tarefa de intercâmbio de dados entre o grupo consultivo e o serviço terá que ser resolvida

Talvez a memória compartilhada para a troca de dados entre programas seja agora fornecida pelos BDs em vez de recursos, o que simplificará muito a implementação e a interação.
 
Sergey Lebedev:
O principal problema dos Serviços não é o Cabo Terminal - são todos os casos de margem.

Um reconector automático não pode ser realizado sem um cabo. E é uma coisa muito necessária para o comércio real.

 
Opção de implementar OnTick/OnBookEvent em várias moedas em scripts/serviços.
//#property service

#include <NewData.mqh> // https://c.mql5.com/3/354/NewData.mqh

// Script/Service main function.
void OnStart()
{
  const string Symbols[] = {"EURUSD", "GBPUSD"};
  
  NEWDATA<TICK> Ticks(Symbols);
  NEWDATA<BOOKS> Books(Symbols);

  while (!IsStopped())
  {
    Ticks.Refresh();
    Books.Refresh();
        
    Sleep(50);
  }
}

void OnTick( const string &Symb )
{
  MqlTick Tick;
  
  if (SymbolInfoTick(Symb, Tick))  
    Print(Symb + " - new tick: " + (string)Tick.time);
}

void OnBookEvent( const string &Symb )
{
  MqlBookInfo Books[];

  if (MarketBookGet(Symb, Books))  
    Print(Symb + " - new book: " + (string)ArraySize(Books) + " bands.");
}


Resultado.

2021.04.26 11:18:38.527 EURUSD - new tick: 2021.04.26 11:18:39
2021.04.26 11:18:38.527 EURUSD - new book: 14 bands.
2021.04.26 11:18:38.904 GBPUSD - new tick: 2021.04.26 11:18:39
2021.04.26 11:18:38.904 GBPUSD - new book: 16 bands.
2021.04.26 11:18:38.965 GBPUSD - new tick: 2021.04.26 11:18:39
2021.04.26 11:18:38.965 GBPUSD - new book: 16 bands.
2021.04.26 11:18:39.029 EURUSD - new tick: 2021.04.26 11:18:39
2021.04.26 11:18:39.029 EURUSD - new book: 14 bands.
2021.04.26 11:18:39.091 GBPUSD - new tick: 2021.04.26 11:18:39
2021.04.26 11:18:39.091 GBPUSD - new book: 15 bands.
2021.04.26 11:18:39.278 GBPUSD - new tick: 2021.04.26 11:18:40
2021.04.26 11:18:39.278 GBPUSD - new book: 16 bands.
2021.04.26 11:18:39.465 GBPUSD - new tick: 2021.04.26 11:18:40
2021.04.26 11:18:39.465 GBPUSD - new book: 16 bands.
2021.04.26 11:18:39.714 GBPUSD - new tick: 2021.04.26 11:18:40
2021.04.26 11:18:39.715 GBPUSD - new book: 16 bands.
2021.04.26 11:18:40.589 GBPUSD - new tick: 2021.04.26 11:18:41
2021.04.26 11:18:40.589 GBPUSD - new book: 16 bands.
Arquivos anexados:
NewData.mqh  2 kb
 
Olá. Eu queria usar um serviço para criar um remetente universal de mensagens (correio, telegrama com screenshots) de todos os EAs de todos os gráficos. A idéia era que as EAs enviariam eventos personalizados com gráficos, textos de mensagens e outros parâmetros e o serviço escutaria os eventos, tiraria screenshots dos gráficos especificados e enviaria as mensagens necessárias. No entanto, eu li que os serviços não podem aceitar eventos a partir de gráficos. Então, a solução é usar variáveis globais do terminal? Suponha um conjunto global de estruturas, nas quais os gráficos adicionarão elementos, e o serviço, como processamento (envio de mensagens), os removerá. O que você acha de uma idéia dessas? Talvez haja outras idéias? Sou novo na MQL, estou lendo mais do que escrevendo. Esta idéia surgiu a fim de liberar o tópico EA da operação de envio de mensagens. Além disso, poderia ser aplicado ao envio de mensagens por indicadores.
 
Реter Konow #:
você pode enviar todos os eventos para o serviço da EA através de recursos. E agora, também através do banco de dados.
O consultor deve escrevê-lo em um arquivo e conectá-lo como uma variável de recurso no serviço?