MACDTrad4%21

Download script
MACDTrad4%21

This tool is a technical analysis indicator designed to help traders visualize momentum and identify potential trend reversals in the financial markets. It operates by analyzing the relationship between two different moving averages of price data, providing three distinct visual layers of information on a separate window below your main trading chart.

Core Logic and Components

The script functions by calculating three specific data points:

1. The MACD Line (Momentum Measurement) The foundation of this tool is the calculation of two Exponential Moving Averages (EMAs). One is "fast" and follows price changes closely, while the other is "slow" and reacts to broader price trends. The indicator subtracts the slow average from the fast average. When the result is positive, it suggests upward momentum; when negative, it suggests downward pressure. This line helps you see the immediate strength of the current trend.

2. The Signal Line (Trend Smoothing) To provide a clearer picture, the script takes the data from the MACD Line and applies a Simple Moving Average (SMA) to it. This "Signal Line" acts as a stabilizer. Because it is an average of the momentum itself, it moves more smoothly than the primary MACD line. Traders often look for points where these two lines cross each other, as these intersections can serve as alerts for potential shifts in market direction.

3. The Histogram (Visual Velocity) The third element is a visual histogram that represents the distance between the MACD Line and the Signal Line. By calculating the difference between these two values, the tool creates vertical bars. The height and direction of these bars provide an immediate visual cue regarding the "velocity" of the market:

  • Growing bars indicate that momentum is accelerating in a specific direction.
  • Shrinking bars suggest that the current trend may be losing steam or reaching a point of exhaustion.

Summary for Traders

In essence, this script simplifies complex price movements into three digestible visual cues. It allows you to monitor the speed and direction of the market at a glance, helping you distinguish between a strong, healthy trend and a weakening move that might be preparing for a reversal.

Indicators Used
Moving average indicatorMoving average indicator
Miscellaneous
Implements a curve of type %1
15 Views
0 Downloads
0 Favorites
MACDTrad4%21
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Silver
#property  indicator_color2  Red
#property  indicator_color3  Blue
#property  indicator_width1  2
//---- indicator parameters
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
//---- indicator buffers
double     MacdBuffer[];
double     SignalBuffer[];
double     HistoBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_HISTOGRAM);
   SetIndexDrawBegin(1,SignalSMA);
   IndicatorDigits(Digits+1);
//---- indicator buffers mapping
   SetIndexBuffer(0,MacdBuffer);
   SetIndexBuffer(1,SignalBuffer);
   SetIndexBuffer(2,HistoBuffer);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")    !! :)");
   SetIndexLabel(0,"MACD YO");
   SetIndexLabel(1,"Signal YO");
   SetIndexLabel(2,"H I S T O :):)");
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1-st buffer
   for(int i=0; i<limit; i++)
      MacdBuffer[i]=(iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i));
//---- signal line counted in the 2-nd buffer
   for(i=0; i<limit; i++)
      SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- histogram line counted in the 3-nd buffer
   for(i=0; i<limit; i++)
      HistoBuffer[i]=(MacdBuffer[i]+SignalBuffer[i])-(MacdBuffer[i]-SignalBuffer[i]);
//---- done
   return(0);
  }
//+------------------------------------------------------------------+

Comments