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
borilunad, qualquer chamada de função acrescenta uma frenagem desnecessária. Portanto, se for necessária velocidade máxima, você deve se livrar de todos os Pedidos(), que realizam operações de uma sílaba. O mesmo se aplica aos laços. A verificação das condições em loop é sempre muito mais lenta do que apenas uma série de aninhados se()
Portanto, mesmo condições mutuamente exclusivas são melhores com a ação do if(A ||| B ||| C || D);
Mas não posso evitar chamadas de função, pois preciso verificar muitos dados nesse ponto, o que está incluído nessas condições.
Continuarei meus experimentos, talvez eu descubra algo. Mas eu não tenho controle sobre a propagação! :)
Entretanto,caso contrário, resultado=linha falsa deve ser melhor combinado com a primeira, não afetará a velocidade.Em geral, se A, B, C e D contiverem condições simples (com aritmética mínima, sem chamadas de todas as funções matemáticas e outras coisas), então você não terá muito ganho de desempenho com tal otimização (a menos que esta construção funcione dezenas de milhões de vezes, é claro). Mas a sobrecarga de código pode ser significativa.
Por alguma razão, parece-me que seu código está cheio de lugares mais importantes, cuja otimização realmente daria um enorme ganho de desempenho. Você deve começar com o algoritmo básico. A maioria dos novatos tem uma verificação idiota de todas as condições referentes a TS ou pedidos em aberto a cada tick. Mas na maioria dos casos, basta verificar apenas as condições de contorno, por exemplo, quando o lanço ou baixa atinge um determinado valor, ou quando aparece uma nova barra. Só depois disso é possível realizar mais verificações.
Bem, além disso, com cálculos intensivos em recursos você precisa pensar em mover estes cálculos para uma DLL. Caso contrário, sentar e esperar 13 minutos na porra do MQL4 (enquanto você pode obter o mesmo resultado por 2-3 minutos) parece ser uma infelicidade :)
Em geral, a opção mais rápida seria esta:
Entretanto,caso contrário, resultado=linha falsa deve ser melhor combinado com a primeira, não afetará a velocidade.Em geral, se A, B, C e D contiverem condições simples (com aritmética mínima, sem chamadas de todas as funções matemáticas e outras coisas), então você não terá muito ganho de desempenho com tal otimização (a menos que esta construção funcione dezenas de milhões de vezes, é claro). Mas a sobrecarga de código pode ser significativa.
Por alguma razão, parece-me que seu código está cheio de lugares mais importantes, cuja otimização realmente daria um enorme ganho de desempenho. Você deve começar com o algoritmo básico. A maioria dos novatos tem uma verificação idiota de todas as condições referentes a TS ou pedidos em aberto a cada tick. Mas na maioria dos casos, basta verificar apenas as condições de contorno, por exemplo, quando o lanço ou baixa atinge um determinado valor, ou quando aparece uma nova barra. Só depois disso é possível realizar mais verificações.
Bem, além disso, com cálculos intensivos em recursos você precisa pensar em mover estes cálculos para uma DLL. Caso contrário, sentar e esperar 13 minutos na porra do MQL4 (enquanto você pode obter o mesmo resultado por 2-3 minutos) parece ser uma infelicidade :)
A opção mais rápida foi sugerida pela Paco
Você realmente acha que é mais rápido somar vários valores cada vez (ou seja, realizar operações aritméticas extras)? Na minha variante a verificação é concluída na primeira partida, enquanto na variante mencionada por você - somente após somar todos os valores e depois verificar a soma.
Além disso, essa variante exige o cálculo antecipado de TODAS as condições. Então de que tipo de velocidade estamos falando aqui? É a opção mais lenta.
Se você quiser acelerar, você pode tentar operações um pouco mais rápidas.
Isto é, fazer todas as variáveis do tipo int (false=0). Então bitwise A|B|C...>0
Se você quiser acelerar, você pode tentar operações um pouco mais rápidas.
Isto é, fazer todas as variáveis do tipo int (false=0). Então bitwise A|B|C...>0
E ninguém vai verificar as variantes sugeridas para a velocidade de execução?
Você pode usar o roteiro a partir daqui
Em geral, a opção mais rápida seria esta:
Entretanto,caso contrário, resultado=linha falsa deve ser melhor combinado com a primeira, não afetará a velocidade.Em geral, se A, B, C e D contiverem condições simples (com aritmética mínima, sem chamadas de todas as funções matemáticas e outras coisas), então você não terá muito ganho de desempenho com tal otimização (a menos que esta construção funcione dezenas de milhões de vezes, é claro). Mas a sobrecarga de código pode ser significativa.
Por alguma razão, parece-me que seu código está cheio de lugares mais importantes, cuja otimização realmente daria um enorme ganho de desempenho. Você deve começar com o algoritmo básico. A maioria dos novatos tem uma verificação idiota de todas as condições referentes a TS ou pedidos em aberto a cada tick. Mas na maioria dos casos, basta verificar apenas as condições de contorno, por exemplo, quando o lanço ou baixa atinge um determinado valor, ou quando aparece uma nova barra. Só depois disso é possível realizar outras verificações.
Bem, além disso, com cálculos intensivos em recursos você precisa pensar em mover estes cálculos para uma DLL. Caso contrário, seria lamentável sentar e esperar 13 minutos na porra do MQL4 (embora possamos obter o mesmo resultado em 2-3 minutos).
É ainda mais rápido desse modo.
Eu me lembro de uma história:
"Em uma reunião da diretoria da empresa, houve duas perguntas:
1. A decisão de construir um synchrophasotron.
2. A decisão de construir um estacionamento de bicicletas para os funcionários.
Na primeira edição, a discussão durou 1 minuto,
no dia 2, o debate durou mais de 2 horas".