O contexto é o comércio de erro ocupado provoca pesadelos para cambistas e investidores de alta frequência. MetaTrader engasga quando abrem-se muitas cartas ou lugar demasiados fim. Os problemas decorrem da forma como os processos MT4 e recebe informações do servidor corretor.
O OrderSend() comando, que Programadores MQL utilizar para abrir um comércio, também diz ao terminal do cliente MT4 para aguardar uma resposta do servidor. Tudo trava. O código não pode fazer nada até que o servidor permite que o terminal do cliente para continuar. Mais importante, o terminal de negociação não permite nenhuma negociação adicionais para abrir.
Exemplo
Considere um cenário onde você troca EURUSD, AUDUSD e USDJPY pares de moedas em gráficos H1. MT4 devem aguardar um carrapato de entrada antes de MQL lhe permite tomar uma decisão comercial. Discuti este assunto há vários meses com ordens de tempo baseados.
Os carrapatos de várias moedas, muitas vezes agrupar durante o horário de líquidos. Se o terminal recebe os carrapatos de entrada dentro de algumas centenas de milissegundos entre si, MetaTrader cria seu próprio gargalo.
O carrapato AUDUSD vem em primeiro. O Consultor Especialista vê uma oportunidade de negociação e decide abrir um comércio AUDUSD com OrderSend(). 150 ms depois, um tick EURUSD vem e cria uma outra oportunidade de negociação. O EURUSD EA, que é executado em um gráfico completamente diferente, não é permitido ao comércio.
Repetir atraso para Context Trade é Busy
A Nossa Programadores consultor especialista verificar se há “Contexto O comércio é Busy” erros antes de enviar encomendas para o corretor. Quando a situação sai, a EA verifica o contexto do comércio cada 50 ms até 50 vezes.
Não é incomum para as encomendas MetaTrader a ter um segundo ou mais para executar. O comércio AUDUSD original do nosso exemplo ainda está pendurado lá fora. O EURUSD EA entra em um 50 ciclo ms onde ele pede constantemente, “Será que o contexto do comércio abrir?”
Em seguida, o USDJPY carrapato vem em 70 ms após o carrapato EURUSD. USDJPY encontra o mesmo problema contexto do comércio, chutando-o em um separado, “É o contexto de comércio movimentado” laço.
Quando o comércio AUDUSD finalmente executa, deixa os consultores especializados EURUSD e USDJPY em uma corrida frenética para descobrir a janela de negociação recém-inaugurado. A primeira EA que descobre que o contexto de negociação erro ocupado desapareceu irá enviar o seu pedido primeiro. O segundo EA, infelizmente, não pode se comunicar com o primeiro. Embora a segunda EA vai descobrir que o contexto comercial abriu, ele receberá um CoNEXT comércio é erro ocupado quando ele tenta negociar; a EA abetos já enviou um pedido de negociação. O segundo consultor especialista atribui-se um máximo de 10 falhas antes de desistir no comércio.
Assumindo que o EURUSD descobre a janela de negociação novo primeiro, em seguida, o USDJPY recebe sua primeira tentativa falhou fim. O USDJPY pergunta mais uma vez sobre o contexto de negociação cada 50 senhorita. O comércio EURUSD eventualmente executa, permitindo que o USDJPY para finalmente entrar no mercado.
A maioria dos nossos clientes nunca perceber esse atraso, o que significa que fizemos o nosso trabalho. Há, contudo, um ponto de ruptura, onde MetaTrader simplesmente não pode emitir ordens suficientes na velocidade dos desejos comerciante. Qualquer combinação de gráficos onde 10 ou mais ordens de ir para fora quase simultaneamente resultará em oportunidades comerciais perdidas.
MetaQuotes projetado MT4 com o erro contexto do comércio, a fim de limitar os requisitos de processamento dos corretores. As I’ve stated repeatedly, os corretores obter MetaQuotes’ tratamento preferencial, porque eles são os que pagam MetaQuotes’ taxa. MetaTrader não é uma plataforma de negociação de alta frequência. It’s not in the broker’s interest to support high speed trading. Ele geralmente abre-se a muitos comerciantes aproveitando arbitragem oportunidades.