Indicadores: McGinley Dynamic Indicator

 

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

 

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

McGinley = 54 / MA = 90

 

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));
 
lippmaje:

Há uma diferença em relação à fórmula original.

Você:

McGinley:


Devemos alterar o código para o que você mostrou como "McGinley"?

 
ali saqi:

Devemos alterar o código para o que você mostrou como "McGinley"?

Não tenho certeza. Apenas apontei o fato para que o autor pudesse comentar. Seja qual for o significado dessa fórmula, ela difere da fórmula original, consulte a Investopedia.
 
lippmaje:

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

McGinley Dynamic Indicator Definition
McGinley Dynamic Indicator Definition
  • www.investopedia.com
The McGinley Dynamic indicator is a type of moving average that was designed to track the market better than existing moving average indicators. It is a technical indicator that improves upon moving average lines by adjusting for shifts in market speed. John R. McGinley, a market technician, is the inventor of the eponymous indicator. Key...
 
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.