Discussão do artigo "Distribuições estatísticas no MQL5 - tirando o melhor de R" - página 5
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
Muitas funções padrão também serão incluídas em bibliotecas para inlining?
Isso não é sério.
Em wyne, e até mesmo em 32 bits. Um compilador antigo semelhante ao MT4 é usado para 32 bits do MT5. Ele é algumas dezenas de vezes mais lento do que o código de 64 bits, que é criado por um novo compilador especialmente para a versão de 64 bits do MT5. Publicamos um relatório comparando a velocidade dos programas MQL5 de 32 e 64 bits.
Na verdade, cada programa MQL5 contém duas cópias do código compilado: 32 bits para sistemas antigos, para fins de compatibilidade, e 64 bits para os novos.
Abandonamos completamente o desenvolvimento de compiladores de 32 bits, pois não faz sentido e não tem futuro.
É por isso que você deve usar apenas versões de 64 bits do MetaTrader 5 se quiser obter o máximo desempenho.
A propósito, uma informação para aqueles que usam o MT4 - lá também a velocidade de execução do código MQL4 é algumas dezenas de vezes mais lenta do que no MetaTrader 5 de 64 bits.
Muitas funções padrão também serão colocadas em bibliotecas para serem incorporadas?
Exatamente.
Nas próximas duas compilações, chegaremos a esse ponto. Adicionaremos fontes de funções aos programas durante a compilação, o que permitirá que o otimizador trabalhe com todo o seu potencial.
É fundamental minimizarmos o número de chamadas para o kernel da plataforma.
Inesperadamente... Para mim, esse é realmente um motivo sério para finalmente reconsiderar meus hábitos e mudar para o MT5. Anteriormente, eu não via muito sentido nisso....
Se você se aprofundar na latência dos processos internos do MT4 e do MT5, incluindo a negociação, você fugirá do MT4. Há um abismo na qualidade e na organização dos processos.
Somos tão fanáticos pelo desempenho e otimização do MT5 por um motivo. É uma enorme vantagem tecnológica.
R considerou o tempo mínimo de várias partidas, não a primeira partida e o tempo máximo.
Portanto, não, a "inicialização a frio" não explica o fato aqui. E mesmo em condições em que todo o código da biblioteca está em DLL. Não há praticamente nada para aquecer.
Mas o que de fato explica o fato:
É aqui que o compilador tem muito espaço em comparação com as implementações realmente não otimizadas em DLLs, que não têm chance de aprender o ambiente e se ajustar a ele.
Se você se aprofundar na latência dos processos internos do MT4 e do MT5, incluindo a negociação, você fugirá do MT4. Há um abismo na qualidade e na organização dos processos.
Somos tão fanáticos pelo desempenho e otimização do MT5 por um motivo. É uma enorme vantagem tecnológica.
O que está sendo medido aqui? Isso me lembra os holivares C++ vs. Lisp - exatamente o mesmo, exceto que um "compara" quase ++ e o outro é um esquema superdesenvolvido :-) São apenas coisas fundamentalmente diferentes.....
Essa é apenas uma prova pura, na prática e na teoria, da falácia da posição expressa por alguns operadores no tópico https://www.mql5.com/ru/forum/96176/page10 (houve uma menção em algum lugar):
Descobriu-se que isso não é verdade. Na função mais simples, isso acabou se revelando um dreno e a MQL5 é mais eficiente. Além disso, fundamentei teoricamente por que ela é mais rápida. Além dos resultados práticos.
Se você se aprofundar na latência dos processos internos do MT4 e do MT5, incluindo a negociação, você fugirá do MT4. Há um abismo na qualidade e na organização dos processos.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Erros, bugs, perguntas
fxsaber, 2016.10.09 09:39 pm
O MT5-OrderSend NÃO está totalmente sincronizado - não há sincronização com o ambiente de negociação. Isso significa que as leituras do histórico não correspondem ao estado real das coisas.
Qualquer tempo limite está fora de questão. Não há solução confiável para o problema, porque as questões de sincronização devem ser tratadas no nível do terminal, não no nível do servidor.
Na verdade, os usuários do MT5 enfrentaram o que os desenvolvedores da ponte MT4 enfrentaram.
Se um OrderSend for enviado, é preciso LEMBRAR (aqui está uma vulnerabilidade em potencial) que ele foi feito. Em seguida, ignorar o histórico atual (ambiente de negociação) até que a mensagem correspondente chegue ao OnTrade. Quando ela chegar, o NADA precisa ser ESQUECIDO.
Quando não há dados FORGOTTEN, você pode confiar no histórico, assim como no MT4.
O MT4-OrderSend é TOTALMENTE sincronizado.Sim e com o resto, muito mais simples, como se vê, problemas
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.
Bugs, bugs, perguntas
A100, 2016.10.09 23:09
Não posso pelo motivo que você mesmo apontou https://www.mql5.com/ru/forum/1111/page1743#comment_2877482.
De alguma forma, a negociação é esquecida
Você está confundindo processos assíncronos com o desejo de ver a sincronização.
A tarefa do OrderSend é fazer uma solicitação e receber a confirmação o mais rápido possível. E o sistema lida com isso perfeitamente.
Mas para obter uma transação/negócio concluído, colocá-lo no histórico e, em seguida, fornecê-lo a você mediante solicitação - esse é outro processo e não tem o direito de retardar o trabalho do OrderSend.
É por isso que tudo está certo: você executa a transação rapidamente e, em um milissegundo (na verdade, antes), no pacote vizinho, recebe uma atualização do tíquete e trabalha com ela.
E com o restante, muito mais simples, como se viu, também há problemas
Escrever um compilador e, principalmente, implementar modelos maléficos de C++ são coisas simples????
De qualquer forma, muito obrigado pela paciência do A100 - ele foi muito útil na detecção de bugs.
Mas isso é offtopic, se você quiser discutir essas questões, faça-o em tópicos nativos. Aqui sobre o R.