Características da linguagem mql5, subtilezas e técnicas - página 131

 
fxsaber:

Alibertação de memória é a única razão.

Que tipo de memória? Se redundante, entãoreserve_size=-1 é suficiente, como já foi dito. Só a pessoa lá obviamente se enganou com as medições de velocidade (condições de teste incorrectas, acho eu)

 

Notei uma possibilidade interessante, a que chamarei recorrência de indicadores.

Quando se pode calcular um indicador a partir de si mesmo:

handle=iMA(_Symbol,_Period,per1,0,MaMethod,PriceBase);  
for(int i=0;i<N;i++) handle=iMA(_Symbol,_Period,per2,0,MaMethod,handle);

Pode ser útil para ventiladores indicadores...

Caso este tema já tenha sido abordado, a repetição é a mãe da aprendizagem.

Para demonstrar esta característica, escrevi um indicador especialmente em QB.

 
Nikolai Semko:

Notei uma possibilidade interessante, a que chamarei recorrência de indicadores.

Quando se pode calcular um indicador a partir de si mesmo:

Pode ser útil para ventiladores indicadores...

Caso este tema já tenha sido abordado, a repetição é a mãe da aprendizagem.

Para demonstrar esta característica, escrevi um indicador especialmente em QB.

Sim... Não pensei que fosse uma característica especial. Uma vez que precisei, escrevi-o assim, apenas fiz diferentes nomes de variáveis para as pegas. Pensei que todos o usavam quando precisavam de...

 
Alexey Viktorov:

Sim... Não pensei que fosse uma característica. Uma vez que precisei, escrevi-o assim, mas com nomes variáveis diferentes para as pegas. Pensei que todos o usavam quando precisavam de...

Pensei apenas em pô-lo em laço agora. Pode-se reproduzir o indicador 100 vezes, mas só há uma pega.

 
Nikolai Semko:

Pensei apenas em pô-lo num laço. É possível reproduzir o indicador pelo menos 100 vezes, mas só há uma pega.

Não é uma única pega, tem uma variável. Perdeu os valores das pegas anteriores. E como é que as fecha?

 
Alexey Navoykov:

Não é uma única pega, tem uma variável. Perdeu os valores das pegas anteriores. E como é que as fecha?

Bem...

Consome muita memória. Na verdade, só mudando a TF é que se pode libertar osamortecedores de indicador internos que já não são necessários. ))

Não há forma de aparafusar no ArrayFree.

 
Nikolai Semko: Na verdade, só mudando a TF é que se pode libertar osamortecedores indicadores internos que não são necessários. ))

Não há forma de anexar o ArrayFree.

A alteração da TF cria uma nova cópia do indicador, e destrói o antigo

 
Igor Makanu:

a alteração da TF cria uma nova cópia do indicador e destrói o antigo

Bem, isso é compreensível.

Apenas olhei para a utilização da memória quando carregava nas definições máximas do meu indicador (desliza para a direita para a borda). De 50 MB de memória aumentou para cerca de 400 MB. Mas quando levei o indicador de volta ao mínimo (deslizadores para a esquerda), a memória ainda está pendurada a 400 Mb.

Isto significa que todos os 100 indicadores calculados estão pendurados na memória, embora não sejam utilizados.
A mudança de TF elimina o problema.

 
Nikolai Semko:

Bem, isso é compreensível.

É que olhei para a utilização da memória durante a inicialização de acordo com as definições máximas do meu indicador (desliza para a direita para a borda). De 50 MB de memória aumentou para cerca de 400 MB. Mas quando levei o indicador de volta ao mínimo (deslizadores para a esquerda), a memória ainda está pendurada a 400 Mb.

Assim, todos os 100 indicadores calculados estão pendurados na memória, embora já não sejam utilizados.
A mudança de TF elimina o problema.

Embrulhe-o no indicador de cálculo de classe - ligue os amortecedores aos campos de classe

 
Igor Makanu:

enrolar o cálculo do indicador numa classe - ligar os amortecedores aos campos de classe

Sim, vou ter de tentar. Obrigado.