Características da linguagem mql5, subtilezas e técnicas - página 238
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
Nunca imaginei que usaria um trecho de código gerado por máquina no código-fonte. Especialmente em um local que é um arquivo para desempenho.
Abaixo está o código gerado.
Um script muito mais conciso foi escrito para a geração. Ele pode ser conveniente para testar hipóteses rapidamente e evitar erros humanos.
Nunca imaginei que usaria um trecho de código gerado por máquina no código-fonte. Especialmente em um local de importância arquivística para o desempenho.
Abaixo está o código gerado.
Um script muito mais conciso foi escrito para a geração. Isso pode ser útil para testar hipóteses rapidamente e evitar erros humanos.
Tenha cuidado, o mesmo ChatGPT comete muitos erros, tanto na sintaxe quanto na lógica, portanto, você precisa verificar tudo duas vezes.
Mas ele é realmente um bom gerador, pois ajuda você a expressar ideias em código.
Abaixo está o código gerado.
Um script muito mais conciso foi escrito para a geração. Isso pode ser útil para testar hipóteses rapidamente e evitar erros humanos.
Não há informações básicas suficientes: o novo código ficou mais rápido do que o código antigo ou não?
Se não, por que trocar o código antigo compreensível pelo novo incompreensível?
Em caso afirmativo, por que o compilador MQL não conseguiu gerar o código ideal em termos de desempenho de uma só vez, já que ele tem muito mais possibilidades para isso do que o chat
Tenha cuidado, pois o mesmo ChatGPT comete muitos erros, tanto de sintaxe quanto de lógica, portanto, você precisa verificar tudo duas vezes.
Mas ele é realmente um bom lançador, pois ajuda a expressar ideias em código.
Geração de script.
Não há informações básicas suficientes: o novo código ficou mais rápido do que o antigo ou não?
O novo código é mais rápido.
Se sim, então por que o compilador MQL não conseguiu gerar o código ideal em termos de desempenho de uma só vez, enquanto ele tem muito mais possibilidades para isso do que o chat?
Isso é otimização algorítmica, não otimização do compilador.
O novo é mais rápido.
Isso é otimização algorítmica, não otimização do compilador.
Quanto mais rápido? Em 1,5% ou 1,5 vezes? E como se fosse mais rápido? Ou com base em medições corretas?
Então você não deu a ele um código, mas um algoritmo?
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Compilação de programas MQL5 com conjunto de instruções AVX / AVX2 + FMA3 / AVX512 + FMA3 da compilação 3902
fxsaber, 2023.10.19 21:17
b4029. É como se os scripts tivessem se tornado 20-50% mais rápidos de ler.Quanto mais rápido? Em 1,5 por cento ou 1,5 vezes? E pelo tato ou por medições específicas?
Então você não deu a ele um código, mas um algoritmo?
É isso que o código-fonte do Virtual usa. Você precisa fazer quatro verificações em cada tique.
Mas, em algumas situações (chave 0-15), você pode fazer menos verificações: 0-4. Isso depende do TS.
Por exemplo, se o TS abrir/fechar posições somente com ordens a mercado e não usar SL/TP, não será necessário fazer uma única verificação.
Mas se todos os tipos de ordens forem usados simultaneamente, você precisará fazer todas as quatro verificações: não haverá aceleração.
É por isso que você deve pegar um TS específico e observar os resultados das medições para ele. Diferentes TS têm diferentes resultados de aceleração.
Era possível classificar os casos (número de casos) em mais variantes. Para ser franco, não consegui fazer isso.
Na MQL5, há uma função StringReserve, com a qual podemos, teoricamente, reduzir o número de realocações de memória para nossa string: alocamos um buffer grande o suficiente de uma vez e depois trabalhamos nele.
Mas, como mostra a prática, qualquer atribuição subsequente de um valor a essa cadeia de caracteres altera o tamanho de seu buffer (ou seja, aparentemente, ocorre uma realocação de memória).
Como resultado, em vez de
faz sentido usar
faz sentido usar
Exatamente. Esse mecanismo funciona muito bem no preenchimento de strings. Por exemplo, ao gerar grandes relatórios HTML.
Como posso saber se um símbolo tem dados, para não deixá-lo na janela [Market Watch] se não tiver?
Eu uso essa verificação em um loop:
Mas, depois disso, não consigo remover manualmente os símbolos da janela [Market Watch], nem um por um nem todos de uma vez, enquanto o Expert Advisor está no gráfico: