Olá Samuel,
Fiz um teste com seu indicador e parece que a configuração do período está funcionando ao contrário.
Estou usando um indicador McGinley .mq4 e a configuração do período se comporta da mesma forma que em um MA, quanto maior o número, mais plana a curva se torna.
Da forma como isso está funcionando, a regra dos 60% não pode ser aplicada.
MT5 Build 1795
Há uma diferença em relação à fórmula original.
Você:
MDBuffer[i]=MDBuffer[i-1]+(close[i]-MDBuffer[i-1])/(MD_smooth*(close[i]/MDBuffer[i-1]));
McGinley:
MDBuffer[i]=MDBuffer[i-1]+(close[i]-MDBuffer[i-1])/(0.6* MD_smooth*MathPow( close[i]/MDBuffer[i-1],4));
Há uma diferença em relação à fórmula original.
Você:
McGinley:
Devemos alterar o código para o que você mostrou como "McGinley"?
Devemos alterar o código para o que você mostrou como "McGinley"?
Há uma diferença em relação à fórmula original.
Você:
McGinley:
Acredito que estou vendo o erro, ou o descuido, parece que a fórmula foi tirada de:
https://www.investopedia.com/terms/m/mcginley-dynamic.asp
Há um erro que não inclui a constante 0,6, e o autor do indicador não incluiu a potência 4.
A fórmula correta citada por Lippmaje está em:
https://www.investopedia.com/articles/forex/09/mcginley-dynamic-indicator.asp
Portanto, se você quiser o indicador McGinley Dynamic como McGinley pretendia, eu o corrigiria conforme recomendado
- www.investopedia.com
if(useImprovedFormula) { mcg[i] = ma[i+1]+(price-ma[i+1])/MathMin(McgPeriod,MathMax(1,(McgConstant*McgPeriod*MathPow(price/ma[i+1],4)))); //Melhorado } else { mcg[i] = ma[i+1]+(price-ma[i+1])/(McgConstant*McgPeriod*MathPow(price/ma[i+1],4)); //Original }Aqui está um exemplo de código mql4 para a antiga fórmula original de McGiley e a versão aprimorada da mesma fórmula.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso

McGinley Dynamic Indicator:
O McGinley Dynamic Indicator foi desenvolvido por John McGinley e descrito no jornal "Journal Of Technical Analysis" da Association of Technical Market Analyst em 1991. O objetivo deste indicador é eliminar as falhas encontradas nas médias móveis convencionais, por exemplo, eliminar gaps e movimentos em ziguezague e laterais. O resultado é um indicador que segue o preço médio do instrumento e se adapta à velocidade atual do mercado.
Autor: Samuel Williams