Indicadores: Histograma MACD, multicolorido [v04]

 

Histograma MACD, multicolorido [v04]:

Indicador MACD com histograma para mostrar a diferença entre o MACD e sua linha de sinal.

Para o cálculo da linha MACD você pode escolher entre os tipos de preços habituais. Para o cálculo da linha de sinal é possível escolher entre SMA ou EMA. O histograma pode ser alternado entre único e multicolorido.

Histograma MACD multicolorido

Autor: Armand Kilian

 

Hello my friend. First of all, fantastic job. I use your code a lot. ;-) 


two simple sugestion:




change from:

IndicatorSetString( INDICATOR_SHORTNAME, "MACD_Histograma("+string(InpFastEMA)+","+string(InpSlowEMA)+","+string(InpSignalMA)+"));

to:

IndicatorSetString( INDICATOR_SHORTNAME, "MACD_Histograma("+string(InpFastEMA)+","+string(InpSlowEMA)+","+string(InpSignalMA)+") - " + EnumToString(InpAppliedSignalMA) );




change from:

#property indicator_color3  Green,Red,Blue

to :

#property indicator_color3  Green,Red,Blue,Lime,Violet


so, change from:

 if(InpUseMultiColor==MultiColor)

        {

         if(ExtHistogramBuffer[i]>ExtHistogramBuffer[i+1])

            ExtHistogramColorBuffer[i]=0;

         if(ExtHistogramBuffer[i]<ExtHistogramBuffer[i+1])

            ExtHistogramColorBuffer[i]=1;

         if(ExtHistogramBuffer[i]==ExtHistogramBuffer[i+1])

            ExtHistogramColorBuffer[i]=2;

        }

to:

      if(InpUseMultiColor==MultiColor)

        {

         if (ExtHistogramBuffer[i]>0)

         {

            // 0-Green,1-Red,2-Blue,3-Lime,4-Violet

            if(ExtHistogramBuffer[i]>ExtHistogramBuffer[i+1])

               ExtHistogramColorBuffer[i]=3; 

            if(ExtHistogramBuffer[i]<ExtHistogramBuffer[i+1])

               ExtHistogramColorBuffer[i]=0;

            if(ExtHistogramBuffer[i]==ExtHistogramBuffer[i+1])

               ExtHistogramColorBuffer[i]=2;

         }

         else

         {

            // 0-Green,1-Red,2-Blue,3-Lime,4-Violet

            if(ExtHistogramBuffer[i]>ExtHistogramBuffer[i+1])

               ExtHistogramColorBuffer[i]=4; 

            if(ExtHistogramBuffer[i]<ExtHistogramBuffer[i+1])

               ExtHistogramColorBuffer[i]=1;

            if(ExtHistogramBuffer[i]==ExtHistogramBuffer[i+1])

               ExtHistogramColorBuffer[i]=2;

         }

        }







Razão: