![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Estava no computador, não fez nenhum cálculo. Não carregou a CPU com nada.
19 ms e 48 ms para a execução do SymbolInfoTick. Houve várias dezenas de casos em que a duração foi de centenas de microssegundos. Mas eu não os citei.
Aparentemente, a fim de reproduzi-lo, precisamos dirigir assessores de combate por 24 horas, e depois apenas assistir. Na minha opinião, é irrealista descobrir o que inicia tais desfasamentos.
Às vezes, o comp pode estar bombeando atualizações ou fazendo algumas tarefas de serviço. Além disso, as variações de tensão de rede podem afetá-la. Desta forma você pode chegar a cartões de rede programáveis, onde toda a lógica do bot está conectada por cabo :) mas mesmo assim haverá atrasos devido a flutuações quânticas do campo
Os desenvolvedores têm feito o melhor que podem. E sem isso, a filial forneceu um código que mostra como o tique está atrasado em relação à Market Watch e vice-versa. Como a seqüência de chegada do tick é quebrada e provavelmente algo mais. Em suma, um código válido desagradável é afixado para reproduzir outras situações.
SymbolInfoTick envia os dados recebidos do servidor do corretor. O que o servidor envia é o que você recebe.
SymbolInfoTick() é executado em modo de bloqueio ou em modo não-bloqueio?
Por exemplo, ele está no corpo do loop of while e não há conexão ou o mercado está fechado para o fim de semana,
então ele será bloqueado pela parada do loop ou ele será executado de forma assíncrona?
como o relógio de mercado fica atrás do relógio de mercado e vice-versa.
Isto é, SymbolInfoTick pega um novo tick e recebemos um Ask and Bid diferente através do evento Market Watch (sem esperar que o Market Watch mude) ? Não foi possível fazê-lo há cerca de um ano atrás. SymbolInfoTick e CopyTick e vintage sempre levam ao mesmo tick. Se você conseguir carrapatos através de várias funções OnXXX, é claro, você conseguirá algo através de uma função, e algo através de outra...
ou seja, SymbolInfoTick pega um novo tick e nós recebemos um Ask and Bid diferente através da votação do copo (sem esperar pelo evento de troca de copo) ?
Aqui.
Aqui.
Como eu pensava que você estava testando OnBookEvent e OnTick, não MarketBookGet e SymbolInfoTick. Se você testasse de acordo com este esquema, você teria tudo igualado:
p.s Leia seus posts abaixo. Você também entende isso. Por que você precisa do OnBookEvent e OnTick? No meu exemplo Sleep(1) leva 1-2 milissegundos, solicitar e assinalar com SymbloInfoTick leva menos de 1 milissegundo que MICROsecond. O processador já está descansando 99,9% do tempo se não houver carrapatos. Qual é a vantagem de usar o OnBookEvent e OnTick ?
Como eu pensava que você estava testando OnBookEvent e OnTick, não MarketBookGet e SymbolInfoTick. Se você estivesse testando de acordo com este esquema, você teria tudo igualado:
p.s Leia seus posts abaixo. Você também entende isso. Por que você precisa do OnBookEvent e OnTick? No meu exemplo Sleep(1) leva 1-2 milissegundos, solicitar e assinalar com SymbloInfoTick leva menos de 1 milissegundo que MICROsecond. O processador já está descansando 99,9% do tempo se não houver carrapatos. Qual é a vantagem de usar o OnBookEvent e OnTick?
Sem um toque de diplomacia, você está falando bobagens. Dormir(1) é um décimo de um milissegundo. Eu vejo apenas uma teorização.
Os usuários no OnTick querem ver um novo tick e não aquele que chegou ao Terminal há algum tempo. Você pode colocar o SymbolInfoTick logo após o MarketBookGet no código fonte.
Os desenvolvedores reconheceram plenamente dois problemas com seu silêncio.
Sem um toque de diplomacia, você está falando bobagens. Dormir(1) é uma dúzia de milissegundos. Eu vejo apenas uma teorização.
Os usuários querem ver um novo tick no OnTick e não um tick que chegou ao Terminal há algum tempo. Você pode colocar o SymbolInfoTick logo após o MarketBookGet no código fonte.
Os desenvolvedores, por seu silêncio, reconheceram plenamente dois problemas.
Nem sempre e não a cada décimo de milissegundo. Verificado com um roteiro simples
Aqui está meu diário de bordo
Os usuários do OnTick sempre vêem o tick mais fresco.
OnBookEvent os usuários vêem sempre o mais fresco carrapato.
Mas se você quiser comparar os carrapatos recebidos pela OnTick e recebidos pela OnBookEvent, então você ficará desapontado, pois os eventos são processados sequencialmente, não em paralelo. Foi isso que o usuário pivomoe tentou dizer a você
Nem sempre e não em todos os lugares um décimo de milissegundo. Verificado com um roteiro simples
Aqui está meu diário de bordo.
E aqui está meu diário de bordo.
Resultado.
Os usuários do OnTick sempre vêem o tick mais fresco.
OnBookEvent os usuários vêem sempre o mais fresco carrapato.
O resultado de executar a EA em um único gráfico a partir de uma máquina que não está ocupada de forma alguma.
Marca carrapatos idênticos, que são recebidos em diferentes on-funções por métodos correspondentes. O atraso pode ser de até dezenas de milissegundos se for executado em seis gráficos em vez de um.
Mas se você quiser comparar carrapatos recebidos no OnTick e recebidos no OnBookEvent, então você ficará desapontado porque os eventos são processados sequencialmente, não em paralelo. O que o pivô do usuário tentou dizer a você
Se um OnBookEvent/OnTick quase vazio for acionado 20 milissegundos depois do correspondente OnTick/OnBookEvent quase vazio, isso está OK?
ZS Enquanto você está prestando atenção ao fio, há outro código de reprodução aqui. Lá no Market Watch os carrapatos chegam com um tempo anterior ao do Market Watch.
Se um OnBookEvent/OnTick quase vazio for acionado 20 milissegundos depois do correspondente OnTick/OnBookEvent quase vazio, isso está OK?
A fila EA é um recurso que pode ser trancado. Quando um evento é escrito para a fila, o Expert Advisor espera (a menos que o Expert Advisor esteja atualmente processando um evento)
Os eventos para o Expert Advisor vêm da fila de eventos do gráfico correspondente, que por sua vez vem do ciclo de processamento do símbolo correspondente. E este ciclo de processamento não apenas distribui eventos para seus próprios gráficos, mas também faz muitas outras coisas.
Já lhes disse que o Windows não é um sistema operacional em tempo real.