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
O motivo da principal lentidão do MT5 é a imitação do ambiente de negociação completo. Na grande maioria dos Expert Advisors, não é necessária uma simulação tão precisa. Uma excelente solução para esses Expert Advisors seria mudar para um modo de teste simplificado, com modelagem simples do ambiente de negociação. Entretanto, essa possibilidade não existe. Mas, se você escrever seu próprio testador de estratégia simplificado e executá-lo no modo de cálculos matemáticos, a velocidade de otimização será enorme! Isso é o que sugiro que você pense para todos aqueles que desejam aumentar drasticamente a velocidade de otimização dos Expert Advisors.
No CStrategy, as operações de negociação são realizadas diretamente por meio do CTrade. Ou seja, o CStrategy não tem nenhuma lógica de negociação própria. No Expert Advisor de teste, não vi nenhuma outra lógica de negociação além da abertura/fechamento de uma posição após N segundos. O CStrategy também não armazena posições históricas, portanto, infelizmente, esse exemplo não pode ser realizado no CStrategy.
A CTrade também não armazena histórico, mas isso não nos impediu de implementar a variante por meio dela.
O fato de o código OOP ser mais lento do que o código procedural não me diz nada. Vamos direto ao ponto: quais métodos do CTrade são um gargalo? Por quê? O que o perfil desses métodos lhe diz? Como identificar seções de código lento no testador?
Não analisei os motivos dos freios do SB, mas não acho que seja OOP, porque o MT4Orders também é escrito com OOP, mesmo que minimamente. Após uma solicitação ao BOD, os desenvolvedores aceleraram o SB. Não sei se eles ajustaram o próprio SB ou o compilador.
Eu mesmo analiso primeiro os freios absolutos e depois os relativos
O MetaTrader 5 tem uma excelente função de criação de perfil de um Expert Advisor em dados históricos. Mas, além do fato de que ele funciona lentamente (no modo visual), o resultado final é fornecido em unidades relativas, ou seja, é impossível comparar o desempenho em termos absolutos.
O motivo da principal lentidão do MT5 é a imitação do ambiente de negociação completo. Na grande maioria dos Expert Advisors, não é necessária uma simulação tão precisa. Uma excelente solução para esses Expert Advisors seria mudar para um modo de teste simplificado, com modelagem simples do ambiente de negociação. Entretanto, essa possibilidade não existe. Mas, se você escrever seu próprio testador de estratégia simplificado e executá-lo no modo de cálculos matemáticos, a velocidade de otimização será incrível! Sugiro que você pense nisso para todos aqueles que desejam aumentar drasticamente a velocidade de otimização do EA.
Por meio de símbolos personalizados, você pode obter ordens de magnitude de aumento de velocidade com a simulação completa. Na verdade, mesmo agora, no modo beta dos símbolos personalizados, é possível conseguir isso. Farei isso mais tarde.
MT4Orders:
MQL5 acabou sendo mais lento do que a biblioteca escrita na mesma MQL5! Comecei a investigar e descobri o motivo fazendo esta substituição
A variante MQL5 do Expert Advisor começou a apresentar esse desempenho.
A substituição estúpida de PositionSelect por PositionGetTicket aumenta a velocidade do backtest em 7%!
O MT4Orders fica atrás do MQL5 puro maximamente otimizado em menos de um por cento.
As vagas foram distribuídas da seguinte forma
Fiz ajustes no próprio SB (partes do SB usadas pelo Expert Advisor) sem alterar sua funcionalidade e versatilidade. O desempenho não ficou em 84%, mas em 97%.
Aqueles que usam o SB devem observar a possibilidade potencial de aceleração.
Foi interessante comparar o desempenho do mesmo Expert Advisor MT4 multimoeda convertido de diferentes maneiras.
Conversão completa
e conversão artesanal (rápida)
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.
Expert Advisors: Spreader
fxsaber, 2016.09.03 11:18 AM.
Resultados da medição de desempenho.
Versão completa
Artesanal
A versão artesanal perde significativamente. O motivo é simples - se você quiser séries temporais rápidas, não poderá converter as séries temporais do MT4 de ponta a ponta
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.
Bibliotecas: CPrice
fxsaber, 2016.08.28 10:36 AM
Dê uma olhada nessa opção
Você pode, como no MT4, chamar Open[bar], High[bar], Time[bar], Volume[bar], etc. E também iHigh(...), iClose(...) e outros.
Você precisa usar (não apenas para bush, mas também para variantes completas) soluções como esta.
O artesanal perde significativamente. O motivo é simples: se você quiser séries temporais rápidas, não poderá converter as séries temporais do MT4 diretamente.
Conclusão errada. O motivo dos freios é bem diferente. Vamos inserir apenas uma linha em cada uma das variantes do MT5
E medir novamente
A versão completa é 67% mais rápida, enquanto a artesanal é 108% mais rápida! Em resumo, a diferença agora é pequena - a completa é ~11% mais rápida que a artesanal. Parece que o motivo está na sobrecarga de OOP.
Mas isso não é o principal. Com uma linha, conseguimos acelerar os EAs! E isso é no Otimizador, onde o Comentário não desempenha nenhum papel.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Bibliotecas: TesterBenchmark
fxsaber, 2017.07.24 14:13
O SB de negociação é 1,5 vez mais lento do que o MQL5 puro!
Isso foi escrito no verão junto com o aplicativo SD. Estou surpreso que tudo esteja igual! Ou isso é lógico? Como se pode falar sobre a supervelocidade do testador quando quase todos os EAs (usando SB) falham na velocidade, consomem dinheiro na nuvem, etc.! Aparentemente, isso é normal.
Simplifiquei o código-fonte, descartando o trabalho com History e MT4Orders. Deixei apenas a MQL5 pura e o SB
Resultado do SB
Resultado da MQL5 pura
Tudo a mesma coisa 1,5 vezes! Mas os otários não se importam, vamos continuar a usar o super-SB.
O mesmo 1,5 vezes! Mas os otários não se importam, vamos continuar usando o super-SB.
Esse é o tipo de ajuste do SB
que milagrosamente acelera os consultores do SB. É complicado?
Falando francamente, o SB de negociação, sem alterar a lógica da API, deveria ser reescrito quase que completamente. Qualquer parte dele é ruim.