Como estamos falando de velocidade de cálculo e não da diferença no desempenho do algoritmo, devemos comparar funções simples. Os indicadores anexos ainda são indicadores, cuja validade do cálculo é o ponto de discórdia aqui. Devemos pegar uma função simples e implementá-la de duas maneiras - como um indicador personalizado e como uma função a ser chamada no código. Eu já fiz e escrevi sobre isso - Sobrea velocidade de cálculo dos indicadores na MQL4.
Vejo duas diferenças nos exemplos: teste é chamado como uma função (ao invés de ser inserido diretamente no código) e o conteúdo do teste é mais pobre (sem manipulação de array). Portanto, a resposta à questão de se o iCustom deve ser usado ainda parece dependente da situação. P.S. No meu exemplo não há uma diferença tão essencial no número de operações para duas variantes - "servir código" funciona uma vez, e os loops são os mesmos.
1. O estilo de programação processual está em segundo lugar apenas em relação à programação modular e orientada a objetos. Portanto, colocar o algoritmo de computação em uma função separada é um passo lógico.
E por que você deveria trabalhar com arrays em uma função integrada? Estamos falando da diferença no custo de chamar uma função personalizada embutida no código e uma função externa chamada através do iCustom().
Rosh: 1. O estilo de programação processual está em segundo lugar apenas em relação à programação modular e orientada a objetos. Portanto, colocar o algoritmo de computação em uma função separada é um passo lógico.
E por que você deveria trabalhar com arrays em uma função integrada? Estamos falando da diferença no custo de chamar uma função personalizada embutida no código e uma função externa chamada através do iCustom().
1. é exatamente a eficiência resultante para grandes projetos. É apenas inferior em termos de velocidade. 2. De forma semelhante. É a eficiência final que me interessa. No caso do MQL, geralmente é o tempo necessário para o desenvolvimento mais o tempo necessário para o teste no testador. Embora, os segundos extras de espera para o terminal carregar a conta real também possam ser muito caros. Quero dizer, nervosismo, nem todos têm a visão certa sobre o comércio :)
Como você pode ver, o uso de uma função separada é justificado - a diferença de tempo para um ciclo de um bilhão de passagens é de apenas um segundo. Mas é muito mais fácil desenvolver o código!
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Aqui está o teste indicador.mq4
Aqui está o roteiro que mede a velocidade de cálculo do algoritmo de teste
através de iCustom() e através de chamada de teste().
P.S. No meu exemplo não há uma diferença tão essencial no número de operações para duas variantes - "servir código" funciona uma vez, e os loops são os mesmos.
E por que você deveria trabalhar com arrays em uma função integrada? Estamos falando da diferença no custo de chamar uma função personalizada embutida no código e uma função externa chamada através do iCustom().
1. O estilo de programação processual está em segundo lugar apenas em relação à programação modular e orientada a objetos. Portanto, colocar o algoritmo de computação em uma função separada é um passo lógico.
E por que você deveria trabalhar com arrays em uma função integrada? Estamos falando da diferença no custo de chamar uma função personalizada embutida no código e uma função externa chamada através do iCustom().
2. De forma semelhante. É a eficiência final que me interessa. No caso do MQL, geralmente é o tempo necessário para o desenvolvimento mais o tempo necessário para o teste no testador. Embora, os segundos extras de espera para o terminal carregar a conta real também possam ser muito caros. Quero dizer, nervosismo, nem todos têm a visão certa sobre o comércio :)
E aqui estão os resultados do roteiro.
Como você pode ver, o uso de uma função separada é justificado - a diferença de tempo para um ciclo de um bilhão de passagens é de apenas um segundo. Mas é muito mais fácil desenvolver o código!
Aqui está mais sobre como encontrar parâmetros de uma regressão linear. Tirado daqui - Canal de Regressão Linear
E aqui está uma função que implementa o algoritmo descrito (talvez alguém possa usá-lo):
A função é assim chamada:
Háalgo de errado no reino dinamarquês.
Tive que apagar meu posto anterior. Há um erro no algoritmo.
Sei que muitas pessoas usam este procedimento, mas .... não consegue encontrar a razão do erro AJUDA-ME.
Aqui está o roteiro. Os coeficientes A e B são calculados duas vezes.
O resultado é o seguinte
intercepção = -3,33333333 declive = 5,00000000
intercepção = -1102.16914108 declive = 0.00000091
E aqui é o mesmo, mas calculado no MathCad. Em azul os resultados correspondem, em vermelho eles não (.
No Mathcad estas são funções embutidas, portanto, muito provavelmente um erro no MT4, mas onde ?
Háalgo de errado no reino dinamarquês.
Tive que apagar meu posto anterior. Há um erro no algoritmo.
Sei que muitas pessoas usam este procedimento, mas .... não consegue encontrar a razão do erro AJUDA-ME.
Aqui está o roteiro. Os coeficientes A e B são calculados duas vezes.
O resultado é o seguinte
intercepção = -3,33333333 declive = 5,00000000
intercepção = -1102.16914108 declive = 0.00000091
E aqui é o mesmo, mas calculado no MathCad. Em azul os resultados correspondem, em vermelho eles não (.
Esta é uma função integrada no Mathcad, portanto, muito provavelmente um erro no MT4, mas onde ?
Aqui está o que o Excel 2007 mostra
Portanto, talvez seja necessário verificar o Matcad.
Uma das implementações da regressão linear, o grau de polinômio é 20, o número de pontos de cálculo e o offset do ponto de partida é definido...
a saída é feita usando uma profundidade de canal é definida em pontos... a uma profundidade de 0 apenas a própria curva de regressão é de saída