MT5 e velocidade em ação - página 70

 
Favor acrescentar a funcionalidade necessária.

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Nova versão do MetaTrader 5 build 2650: Carregamento de gráficos de fundo e melhorias no MQL5 Code Profiler

fxsaber, 2020.11.04 16:50

Infelizmente, eles não acrescentaram recursos para minimizar janelas de gráficos, terminais, relógios de mercado, etc. Anteriormente, foi comprovado que a minimização destas janelas reduz a carga da CPU.

E pare de exibir dados na janela do Market Watch e outros, quando a janela do Terminal não estiver visível. Por exemplo, quando a aplicação atual (por exemplo, navegador) está ativa e maximizada.


A necessidade barbudo é determinar qual gráfico é selecionado atualmente. As pessoas são forçadas a usar soluções WinAPI crocantes.

Активный график (ID активного графика)
Активный график (ID активного графика)
  • 2014.10.20
  • www.mql5.com
Доброго времени суток! Нужно элементарно определить ID активного графика (того что выбран в данный момент...
 

Sim, o MetaTrader VPS tem ordens de magnitude menos latência (emissões de latência) e muitas vezes mais todos os recursos em comparação com o VPS regular de provedores de hospedagem.

Já foi explicado muitas vezes o porquê.

Não pode existir latência zero garantida nos fios de execução dentro das arquiteturas de processador atuais (todas). Contos de"sistemas operacionais de sistemas em tempo real" continuam sendo mitos, não é necessário mencioná-los.

 
fxsaber:

Vejo o que está acontecendo com as únicas ejeções, obrigado pelas explicações detalhadas. Neste ponto, porém, não estamos discutindo SymbolInfoTick, mas sim desfasamentos de natureza diferente, que se apressam em quase todos os tick.

Trata-se apenas de suas medidas de emissão únicas - elas não são mais aceitas ou consideradas. Toda sua análise foi construída exclusivamente sobre emissões.

Outras questões só podem ser consideradas se o cenário estiver clara e completamente descrito em um comentário, sem "realmente significar outros comentários" e sem rolar em uma única contagem de comando.

 
Renat Fatkhullin:

Outras questões só podem ser consideradas se o cenário for descrito de forma clara e completa em um único comentário, sem "realmente significar outros comentários" e sem rolar em uma única contagem de comando.

Aqui nos links estão os detalhes, incluindo comentários no código fonte.

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

MT5 e Velocidade em Ação

fxsaber, 2020.11.05 07:42

Quem estiver usando VPS da MQ, por favor, compartilhe os resultados dos seguintes programas lá.

  1. Consultor especializado que pega o OnTick/OnBook lags.
  2. Conselheiro especializado que pega carrapatos com o tempo antigo.
  3. Umroteiro que mede o tempo médio de execução do Sleep(1).
 

Existe uma plataforma chamada deltix (não para publicitá-la). Quando falei com os desenvolvedores (há algum tempo atrás eu queria conectá-lo para arbitragem), eles explicaram a mesma coisa sobre atrasos únicos, que é normal e que você precisa olhar para a média

A propósito, isto é, sem nenhuma pedra na quebra de ninguém

 

Uma vez que ocorrem inevitavelmente aberrações isoladas, é lógico ter funções regulares que devolvem um conjunto de toda a Vigilância do Mercado e um conjunto de todas as posições/ordens atuais. Semelhante ao MarketBookGet.

Neste momento os ciclos têm de ser executados. Isto é MUITO caro.

Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais

MT5 e Velocidade em Ação

fxsaber, 2020.10.07 12:41

A necessidade prática o faz escrever dessa maneira.

// Возвращает время Обзора рынка в миллисекундах.
long TimeCurrentMsc()
{
  long Res = 0;
  
  MqlTick Tick;
  
  for (int i = SymbolsTotal(true); i >= 0; i--) 
  {
    const string Symb = SymbolName(i, true);
    
    if (SymbolInfoTick(Symb, Tick) && (Tick.time_msc > Res))
      Res = Tick.time_msc;
  }

  return(Res);
}

Não tenho certeza porque tentei entrar na EA na MQL5, apesar dos repetidos pedidos para fazê-lo.

 
Slava:

Não haverá aceleração. Apresente seus cálculos, pelo menos em números aproximados, provando uma aceleração múltipla.

Uma corrida por recursos? Criação descontrolada de novas correntes? Conflitos por nada?

Você quer abrandamentos inexplicáveis?

No modelo baseado em eventos, todos os eventos foram sempre em formação, um de cada vez. Mastigado - mastigado.

Sem aceleração do processamento de eventos, em uma arquitetura assíncrona? Você está falando sério?
Processamento acelerado de programas de usuário, especificamente seus manipuladores. É disso que estou falando.

Eu entendo que você está tentando minimizar o uso de fios. Mas uma das alternativas é executar cada manipulador em um fio separado.
Nenhuma criação descontrolada de roscas. Em um programa de usuário há apenas alguns manipuladores, cada um deles deve ser iniciado em sua própria linha no início do programa.
E você sincroniza os eventos entre os manipuladores com mutexes ou o que quer que seja.

Mas se os fios são uma dor para você, como você mencionou, há um modelo de evento que lhe permite trabalhar em um único fio.Tratamento de eventos, em um loop de eventos com uma execução de tarefas.
O loop de eventos, embora funcione sequencialmente, mas as tarefas nesse loop são tratadas em paralelo!
Isto é o que eu quero dizer, todos os manipuladores do programa correm neste ciclo de eventos, então todos os eventos serão assíncronos e chegarão simultaneamente em tempo real.
Ou seja, os mesmos eventos no OnTrade eOnBookserão combinados.
Por favor, pergunte como funciona um ciclo de eventos em outros idiomas.
Se o loop do evento já existir no terminal, basta aplicá-lo a manipuladores em programas. Isso é tudo.
 
Roman:
Cada manipulador deve ser executado em uma linha separada.

O problema não é resolvido de forma alguma. Os programas MQL se tornarão muito mais complicados se diferentes tópicos forem lidos, por exemplo, o acesso às variáveis internas.

 
fxsaber:

O problema não é resolvido de forma alguma. Os programas MQL se tornarão mais complicados por uma ordem de grandeza, se lidos\acessar o acesso a variáveis internas de diferentes linhas, por exemplo.

Os programas MQL não vão ficar mais complicados, é apenas uma dor de cabeça de sincronização para os desenvolvedores. O que eles não estão dispostos a resolver, é claro.
Ou uma arquitetura inicial bloqueada do projeto não projetada para este modelo.
E ninguém vai reescrever o projeto para um novo modelo, é claro.
O modelo de loop doevento é mais adequado para manipuladores. Isto é o que eu estava tentando dizer.
E este modelo provavelmente existe no terminal há algum tempo, apenas não foi aplicado aos manipuladores.

 
Roman:

Os programas MQL não vão ficar mais complicados...

Sugiro que este seja o fim da teorização, que nunca se cruzará com a prática aqui.