
MQL5 vs QLUA - Por que operações de negociação no MQL5 são até 28 vezes mais rápidas?
Você já se perguntou como a sua ordem é entregue tão rápida na bolsa? Também já se perguntou quanto tempo seu terminal precisa para receber o resultado da operação?
Testamos a melhor qualidade de execução da ordem, o recebimento de resposta rápida e o alcance de uma velocidade de transação mais rápida.
- Teste de operações síncrônicas — é uma série de 10 sincronizações deoperações de Compra consecutivascom a confirmação de uma execução bem-sucedida em cada transação relativa a bolsa. A próxima operação não é executada até que uma resposta seja recebida a partir do servidor de negociação, confirmando se a operação anterior foi ou não executada na bolsa. A velocidade da execução depende de toda a cadeia: terminal — servidor de negociação — bolsa — servidor de negociação — terminal. Quanto menor for o tempo médio da operação de negociação sincronizada, melhor.
- Teste de operações sem sincronizar — série de 10 operações de Compra sem qualquer confirmação da execução de transação bem sucedida. É um simples teste de velocidade, que mensura como as ordens são rapidamente enviadas para a bolsa. O melhor terminal é aquele que pode executar 10 operações de Compras sem sincronizar de modo mais rápido.
- Teste de atualização do livro de oferta — mensura a rapidez que as ordens do Livro de Ofertas (Profundidade do Mercado) são atualizadas. Esta é uma simples contagem do número de ticks (atualizações) no Livro de Ofertas por uma unidade de tempo. Quanto mais frequentes as cotações são recebidas pelo terminal, a partir da bolsa, mais rápido o livro de ofertas será atualizado. Portanto, quanto mais ticks por segundo é o recebimento da negociação automática, mais rápido é a resposta das mudanças na estrutura de oferta/demanda do mercado. O melhor terminal é aquele com a maior velocidade de atualização do livro de ofertas.
Condições de teste
Os dois terminais estão instalados num VPS em Moscou, assim como os servidores de negociação da corretora "Otkryite". As operações de negociação foram realizadas utilizando a mesma conta real para o Mercado Derivativo da Bolsa de Moscou; o instrumento de negociação foi o ativo Si-9.6.
Selecionamos um vídeo sobre os três testes para facilitar a análise:
- As operações de negociação foram realizadas na mesma conta real
- O mesmo instrumento financeiro Si-9.16 foi negociado
- O mesmo computador foi utilizado
- As negociações foram realizadas no mesmo momento
- Sobre as mesmas condições de mercado
- A atualização da velocidade do Livro de Ofertas (profundidade do mercado), foi calculada pelo mesmo instrumento e ao mesmo tempo
- A latência da rede para os servidores da corretora, foi de 2ms
Resultados da Velocidade de Negociação: MetaTrader 5 vs QUIK
Os resultados dos três testes são apresentados num quadro resumido e os resultados adicionais contendo detalhes de cada teste, estão disponíveis em outras seções abaixo.
Teste | MetaTrader 5 | QUIK | Vantagem MT5 |
---|---|---|---|
O tempo médio de uma operação sincronizada | 9.59 ms | 277.80 ms | 28.96 times |
O tempo médio de uma operação sem sincronia | 0.09 ms | 0.30 ms | 3.33 times |
Velocidade de atualização do Livro de Ofertas | 42.7 vezes por segundo | 8.4 vezes por segundo | 5.08 vezes |
Como é possível analisar, o MetaTrader 5 mostra resultados muito melhores, em todos os testes. Você pode reproduzir os mesmos testes usando o código-fonte em anexo. O processo de teste está demonstrado no vídeo abaixo.
Vídeo Comparando a velocidade de Negociação
Conclusão: As operações do MetaTrader 5 executam negociações até 28 vezes mais rápido que o QUIK
Estes testes demonstram que a linguagem MQL5 é muito mais rápida do que a QLUA, no que se refere a realização de negociações no MICEX-RTS, assim como, na verificação do Livro de Ofertas. Além de realizar cálculos até 50-600 mais rápidos, robôs de negociação MQL5 também negociam até 28 vezes mais rápidos. Além disso, todo o arsenal de ferramentas de desenvolvimento estão disponíveis, sem a necessidade de usar conectores adicionais, DLLs e etc. Você pode usar classes de negociações prontas da Biblioteca Padrão e um grande número de artigos para uma automatização das negociações.
Um robô de negociação robusto deve verificar os resultados de negociação que envia; ou seja, esperar por uma resposta do servidor de negociação. Os testes provaram que o MetaTrader 5 é significativamente mais rápido na realização de operações sincronizadas. Se você precisa usar operações sem sincronias, você faz 3 vezes mais rápido com MetaTrader 5. Se você precisa analisar o livro de ofertas, o MetaTrader 5 irá lhe fornecer uma vantagem 5 vezes mais rápida, indicando fluxo sem capturas instantâneas.
Estes testes também provam que a linguagem MQL5 é uma solução ideal para um desenvolvimento rápido de sistemas de negociação automatizados. Até mesmo conectores complementares ou bibliotecas para o terminal QUIK, que são destinadas a acelerar os cálculos, não ajudam muito, uma vez que o afunilamento é o tempo de desempenho da negociação.
Agora vamos analisar os detalhes ainda importantes do teste.
Detalhando os relatórios de comparação entre o MetaTrader 5 vs QUICK
Uma aplicação em QLUA mensura o tempo chamando o timer do sistema operacional com a resolução do timer padrão de 10…15,6 milissegundos (geralmente 15.6 ms). Melhoramos a precisão da medição do tempo no QLUA, simplesmente reduzindo a resolução do temporizador do sistema para 1 ms. Isso é feito usando o script SpeedupSystemTimer.mq5, que chama a função timeBeginPeriod da biblioteca do sistema Winmm.dll
#import "winmm.dll" int timeBeginPeriod(uint per); #import void OnInit() { timeBeginPeriod(1); } void OnTick() { }
Tínhamos executado o script antes de iniciar os testes complementares no MetaTrader 5, permitindo chamadas DLL, o que resultou no erro da medição da operação em QUIK de não mais que 1 ms.
A linguagem MQL5 fornece uma função pronta GetMicrosecondCount(), de modo que a precisão da medição de velocidade no terminal MetaTrader 5 é de 1 microssegundo (1 milissegundo=1000 microssegundos).
#1 Teste de Velocidade de Operações Sicronizadas
O teste implicou na medição da velocidade das negociações sincronizadas, isto é, uma operação de negociação só poderia ser executada após receber uma resposta a partir da confirmação do servidor de negociação que a operação anterior foi executada com sucesso e com uma confirmação completa a partir da bolsa.
Em primeiro lugar, uma série de negociações foram realizadas através do terminal MetaTrader 5, em seguida, a mesma série foi realizada através do terminal QUIK.
O objetivo dos testes foi medir o tempo médio de 10 sincronizações de 1 lote de operações de Compra no mercado:
- SyncTradeTest.mq5
- SyncTradeTest.lua
O tempo gasto para executar o funcionamento sincronizado foi medido da seguinte maneira:
- A linguagem MQL5 fornece a função de sincronização OrderSend e o tempo pode ser facilmente medido no início e no final da série de negociação.
- A linguagem QLUA não fornece funções de negociação sincronizadas e consequentemnte o status da transação deve ser monitorizado separadamente. O tempo de início da operação foi gravado antes da chamada da sendTransaction() usando a função os.closck(). A conclusão bem executada da transação foi monitorada na versão do handler OnOrder() durante a primeira chamada, quando o evento sobre a execução de negociação relativa a bolsa foi recebida. A diferença entre estes eventos é o tempo necessário para executar uma operação de negociação.
#2 Teste de Velocidade de Operações Sem Sincronizar
Este teste é muito mais fácil. Uma ordem de compra para um contrato futuro Si-9.16 foi enviado dez vezes seguidas. Isto nos permite medir o tempo médio de transferência sem sincronizar no QLUA com uma precisão de 1 ms / 10 = 0,10 ms. O MetaTrader 5 não tem erro de medição, pois usa um timer de microssegundos.
Não esperamos pelo resultado da operação: enviando uma oferta ao servidor de negociação imediatamente, seguido por um envio da próxima ordem:
- AsyncTradeTest.mq5
- AsyncTradeTest.lua
#3 Teste de Atualização do Livro de Ofertas
Algumas estratégias de negociação utilizam a análise do livro de ofertas. No MQL5, o evento de alteração do Livro de Ofertas pode ser rastreado no handler OnBookEvent(); QLUA tem o OnQuote() para essa finalidade.
A velocidade da mudança no Livro de Ofertas foi testada usando os programas abaixos, que estão disponíveis no arquivo ZIP anexo:
- MarketUpdateTest.mq5
- MarketUpdateTest.lua
Após a execução dos programas nos dois terminais, registramos que o Livro de Ofertas no MetaTrader 5 foi atualizado cerca de 5 vezes mais rápido. Provavelmente, QUIK limita a frequência da atualizações no livro de ofertas e não expõe algumas das mudanças ocorridas.
Por que a diferença é tão impressionante?
Apaixonadamente, nós nos esforçamos para obter um alto desempenho e o valor a cada microssegundo, constantemente otimizando a plataforma de negociação por mais anos.
É por isso que conseguimos um desempenho surpreendente na nossa construção algorítmica na linguagem de programação MQL5 e uma velocidade impressionante na transação das negociações.
Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/2635
Aviso: Todos os direitos sobre esses materiais pertencem à MetaQuotes Ltd. É proibida a reimpressão total ou parcial.





- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Você primeiro prova suas palavras com seu código, em vez de nossas provas.
Por que você está jogando palavras no nível de erudição banal e não sabe o que é LUA?
Há duas linguagens que foram comparadas.
E uma perde para a outra em 50 a 600 vezes em termos de velocidade, e em conjunto com uma plataforma de negociação em transações de negociação puras, em que o mínimo de linguagem envolve 28 vezes.
O Quick em si não tem uma integração profunda com a linguagem, que é apenas colocada de lado. E a MetaTrader 5 foi criada para atender às necessidades da MQL5, quando todos os dados estão prontos para serem usados na MQL5. Além disso, a linguagem LUA foi criada como uma ligação entre chamadas de alto nível, mas não para operações de cálculo.
Escrever módulos em C++ e depois distribuí-los? Quem se arriscará a instalar o EXE/DLL de outra pessoa no ambiente de negociação?
Mas em MQL5 isso é seguro, porque em MQL5 você obtém um código seguro e quase a mesma velocidade que em C++.
Aqueles que vivem no Quick não conhecem os conceitos de dados reais.
Quando você puder repetir o código a seguir em LUA, volte para discutir "arrays enormes":
Executando a frio, 17 milhões de ticks reais de RTS-9.17 e 60.278 barras de minutos foram produzidos em 2,6 segundos.
Limites ilimitados de dados são usados na plataforma. Esses dados são usados para criar indicadores, análises, etc.
Esses são exatamente os dados com os quais os programas MQL operam. E o próprio terminal opera com esses dados em seu trabalho.
E você está falando de algumas tabelas.
Você simplesmente não conhece a linguagem e suas entranhas. É por isso que todas as linguagens são iguais para você.
Percebeu que está falando com uma pessoa que cria linguagens de programação e luta pela eficiência e produtividade?
Acho que você está velho demais para competir. As palavras não vencem aqui.
Boa sorte.
Que merda, o que importa quantas vezes mais rápido? !!!!
No FORTS, por exemplo, para um login, 30 transações por segundo!!!!
Não importa qual MT5, qual KVIC + redes de corretores deixam muito a desejar!
Mas o que não importa é a possibilidade de negociação COMPLETA na bolsa - Opções + Futuros + Moeda + Spot!!!!.
Não há um único software no mercado para negociação completa na bolsa de valores por meio de robôs (LUA, QLUA - PÉSSIMO)!
Que merda, o que importa quantas vezes mais rápido? !!!!
No FORTS, por exemplo, para um login, 30 transações por segundo!!!
Os gateways das corretoras têm limites mais altos.
Até mesmo o cliente de uma corretora pode receber mais de 30 transações por segundo por meio do MetaTrader 5. Mas está claro que eles tolerarão isso até certo ponto.
Infelizmente, a bolsa russa não pode ou não quer atualizar e unificar radicalmente seu sistema. Daí a situação desanimadora das tecnologias de negociação no setor russo há 20 anos - ninguém quer investir lá.
Que merda, o que importa quantas vezes mais rápido? !!!!
No FORTS, por exemplo, para um login, 30 transações por segundo!!!
Você pode obter até 600 por uma taxa extra)))