Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Na verdade, não é pequeno ~ 5 ms. Uma pedra no jardim daqueles que sofrem com o ping zero.
No build 1703, o atraso médio é o mesmo. Mas os picos se tornaram muito menores.
Fiz um experimento. Iniciei uma torrent em uma máquina com o MT5 e esta é a situação
Isso significa que, se alguém estiver usando ativamente a rede, o atraso do terminal pode ser de até 2 segundos. É especialmente importante entender isso para quem usa VPS, em que o canal de rede não depende de um, mas de muitos clientes. E colocar um TS de notícias nesse VPS, por exemplo, torna-se muito arriscado.
E, de fato, foi afirmado inicialmente que os indicadores nos Expert Advisors são um gargalo, pois todos os indicadores são executados em um thread, ao contrário dos Expert Advisors. As defasagens nos Expert Advisors exigem um estudo separado. A função de obter defasagens está na descrição, portanto, não é difícil.
Você poderia me dizer onde foi afirmado que os indicadores chamados no Expert Advisor são executados em um thread e que o Expert Advisor, de alguma forma, é paralelo às próprias tarefas?
Parece-me que é exatamente o contrário - o indicador é um programa separado e pode calcular facilmente em um thread paralelo, mas o cálculo terá que esperar se não for concluído por algum motivo. Sei que no testador de estratégia tudo está em um thread.
Você poderia me dizer onde foi afirmado que os indicadores chamados no Expert Advisor são executados em um thread e que o Expert Advisor, de alguma forma, é paralelo às próprias tarefas?
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Alguém pode explicar o significado de aplicação em Expert Advisors :....
Renat Fatkhullin, 2010.02.06 13:06
Um indicador é uma entidade calculada, que tem requisitos rigorosos para funcionar. Ele não tem o direito de desacelerar e não produzir dados (e os dados são exigidos dele incondicionalmente).
Os indicadores trabalham em seu próprio fluxo, processando cada tick de preço, e qualquer atraso levará ao bloqueio de todo o sistema (as consequências serão muito diversas).
Tínhamos receio de que o trabalho com objetos levasse a sérios travamentos dos indicadores (o trabalho com objetos passa por uma fila assíncrona especial de mensagens). As experiências mostraram que, se os objetos forem usados de forma razoável (sem mover centenas e milhares de objetos ao mesmo tempo), eles não afetarão significativamente os cálculos. É por isso que permitimos o uso de funções de gerenciamento de objetos em indicadores personalizados. Mas, se quiser, você pode facilmente criar freios no terminal ao trabalhar de forma não inteligente com objetos no indicador.
Para entender o que é um indicador, precisamos nos aprofundar - no acesso aos dados históricos. Quando um indicador é chamado via OnCalculate, ele recebe o histórico disponível.
Se você observar o volume (exibindo contadores em logs), verá que dezenas e centenas de megabytes são realmente fornecidos a cada tick:
Do gerenciador de histórico global, que atualiza tick a tick, armazena em cache e recria períodos de tempo sob demanda.
Eles são bloqueados para leitura e fornecidos pelo terminal a cada indicador.
Teoricamente, um número ilimitado de indicadores, mas um a um.
A memória é catastroficamente escassa, portanto, existe a única maneira de os indicadores trabalharem um a um.
A peculiaridade do MetaTrader 5 em comparação com o MetaTrader 4 é que agora o volume do histórico aumentou muitas vezes e resolvemos um problema muito difícil de recálculo rápido (sem copiar dezenas de megabytes de histórico para cada indicador separadamente) dos indicadores. Até mesmo dois (ou mais) indicadores idênticos em períodos de tempo idênticos são mesclados em uma cópia de cálculo e contados uma vez.
Agora, você propõe retomar e desacelerar todo o mecanismo, na verdade transformando os indicadores em especialistas puros. Está absolutamente claro que isso não é tecnicamente razoável. Adicionar interatividade aos indicadores destruirá imediatamente o mecanismo de trabalho com o núcleo do terminal - acesso aos dados.
Como resultado, teremos um "terminal lento, eles não conseguem nem desenhar um indicador, e os gráficos são desenhados com um atraso!", e ninguém dirá "sim, é o meu indicador sofisticado que funciona, a culpa é dele". E, mesmo nesse caso, seremos acusados de "não fornecer uma separação razoável, não saber como escrever software multithread etc.".
Portanto, não haverá nenhuma mudança fundamental no comportamento e nos princípios do trabalho dos indicadores.
Obrigado pelas informações que você encontrou.
O ano de 2010 chama minha atenção imediatamente, pois sabemos que "nunca se deve dizer nunca", então seria interessante saber o que está acontecendo agora, se realmente não há mudanças.
Além disso, a resposta de Renat indica que cada indicador funciona em seu próprio thread, portanto, não é possível concluir que pelo menos dois threads podem existir simultaneamente para um Expert Advisor e um indicador?
Renat alega que o atraso é causado pela necessidade de fornecer aos indicadores uma grande quantidade de dados(na verdade, dezenas e centenas de megabytessão fornecidos em cada tick), mas, de acordo com a realidade atual, essa não é uma quantidade tão grande de dados, e é bem possível que, para o trabalho dos mesmos indicadores com os mesmos instrumentos, seja organizado um fluxo conjunto de dados históricos, mas um fluxo diferente para o cálculo dos próprios indicadores, que já foi parcialmente organizado em 2010: "Temos até dois (ou mais) indicadores idênticos nos mesmos períodos de tempo que se fundem em um único fluxo.
Mesmo que isso seja verdade, é bem possível mesclar os indicadores em um único cluster e aplicar o OpenCL nele (eu mesmo nunca apliquei isso por causa das poucas informações sobre organização para leigos).
Eu gostaria de saber o que está acontecendo agora
Um, dois, três, quatro.
Um, dois, três, quatro.
Obrigado, dei uma boa olhada nos resultados da pesquisa. A maioria é a mesma coisa de sempre.
Como resultado, temos um tópico por símbolo para todos os indicadores desse símbolo. E temos um tópico para cada (?) EA. Então, se usarmos informações de diferentes gráficos para a tomada de decisões, é preferível o uso de indicadores?
Os indicadores têm uma vantagem: trabalho conveniente com o histórico de cálculos.
Talvez, se fizermos cálculos em cada tick, o indicador possa se tornar um gargalo, porque ele tentará fornecer os dados mais relevantes, mas se o cálculo for baseado no OHLC, o cálculo paralelo deverá ser uma vantagem. Desde que o Expert Advisor solicite informações dos indicadores, depois de verificar a situação com a posição atual, esses dados já estarão prontos para serem recebidos. E sim, eu faço cálculos nos indicadores somente na abertura de uma nova barra. E se a lógica dos indicadores for combinada, será ainda mais rápido, ou você tem uma opinião diferente?
Aleksey Vyazmikin:
ou você tem uma opinião diferente?
mude o tópico.
Hello, the unit of measure of ping is in seconds?
Está descrito. Você não leu?
"O atraso das cotações é calculado em milissegundos;"
Lembrei-me desse excelente indicador.
Esta é uma imagem de uma máquina com ping zero. Acontece que o atraso interno do Terminal é de aproximadamente 2 ms em média. Ele salta no intervalo de 0 a 9 ms.
Por exemplo, dois ticks chegaram ao servidor: o primeiro, em 10 ms - o segundo. Portanto, no Terminal, você pode receber o segundo tique não em 10 ms após o primeiro, mas em 10-19 ms. Em média, em 12 ms.