## Distinct MACD Exploration for Amibroker (AFL)

MACD is a good indicator, specially for the new traders who have not built their discipline yet. Among the lagging indicators, I like MACD more than the others. MACD is a good indicators specially for those who suffer from entering and exiting too early.

MACD forms some special and strong trade setups. MACD Divergence and Convergence are two of the strong chart patterns that MACD forms. They are very easy to locate on the charts.

I use the MACD histogram. The MACD traditional indicator has two parts. The first part consists of two lines. One of the lines is the MACD indicator itself and the other line is the moving average of this indicator. The second part is the MACD Histogram which is calculated based on the distance of the two lines. Using the histogram makes the indicator simpler, and it still reflects the signals we need to trade. So I remove the lines and I only keep the histogram. The MACD default settings is 12, 26, 9.

Here i have given afl code for Distinct MACD Exploration to easily classify each category of MACD signals as provided picture.

Here is a screenshot of how the indicator looks:

Tags: macd, oscillator, amibroker, exploration

Submitted by

mohangbox 2 months ago

## Similar Formulas

## Formula

Show/Hide Formula
Copy & Paste Friendly

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////******************************* Distinct-MACD ******************************************************************************/////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TimeFrameSet( inWeekly );
_SECTION_BEGIN("Distinct MACD");
r11 = 12;
r22 = 26;
r33 = 9;
r1 = Optimize( "Fast avg", r11, 2, 200, 1 );
r2 = Optimize( "Slow avg", r22 , 2, 200, 1 );
r3 = Optimize( "Signal avg", r33 , 2, 200, 1 );
ml = MACD(r1, r2);
sl = Signal(r1,r2,r3);
hl =ml-sl;
Plot( ml = MACD(r1, r2), StrFormat(_SECTION_NAME()+"(%g,%g)", r1, r2), ParamColor("MACD color", colorRed ), ParamStyle("MACD style"));
Plot( sl = Signal(r1,r2,r3), "Signal" + _PARAM_VALUES(), ParamColor("Signal color", colorBlue ), ParamStyle("Signal style") );
Plot( ml-sl, "MACD Histogram", IIf( ml - sl > 0, colorBlue, colorRed ), styleNoTitle | ParamStyle("Histogram style", styleHistogram | styleNoLabel, maskHistogram ) );
Catagory_A =
(ml <=0
AND sl <=0
AND hl <=0
AND ml >= Ref(ml, -1)
AND hl >= Ref(hl, -1)
AND ml < sl);
Catagory_B =
(ml <=0
AND sl <=0
AND hl > 0
AND ml >= Ref(ml, -1)
AND sl >= Ref(sl, -1)
AND hl >= Ref(hl, -1)
AND ml >= sl);
Catagory_C =
(ml > 0
AND sl > 0
AND hl > 0
AND ml >= Ref(ml, -1)
AND sl >= Ref(sl, -1)
AND hl >= Ref(hl, -1)
AND ml >= sl);
Catagory_D =
(ml > 0
AND sl > 0
AND hl > 0
AND ml >= Ref(ml, -1)
AND hl < Ref(hl, -1)
AND ml >= sl);
Catagory_E =
(ml > 0
AND sl > 0
AND hl > 0
AND ml < Ref(ml, -1)
AND hl < Ref(hl, -1)
AND ml >= sl);
Catagory_F =
(ml > 0
AND sl > 0
AND hl <= 0
AND ml < Ref(ml, -1)
AND sl < Ref(sl, -1)
AND hl < Ref(hl, -1)
AND ml < sl);
Catagory_G =
(ml <= 0
AND sl <= 0
AND hl <= 0
AND ml < Ref(ml, -1)
AND sl < Ref(sl, -1)
AND hl < Ref(hl, -1)
AND ml < sl);
Catagory_H =
(ml <= 0
AND sl <= 0
AND hl <= 0
AND ml < Ref(ml, -1)
AND hl >= Ref(hl, -1)
AND ml < sl);
Filter =1;
AddTextColumn(WriteIf(Catagory_A >0,"1",""), "Catagory_A", 70, colorDefault, IIf(Catagory_A >0,colorOrange, colorDefault));
AddTextColumn(WriteIf(Catagory_B >0,"2",""), "Catagory_B", 70, colorDefault, IIf(Catagory_B >0,colorBrightgreen, colorDefault));
AddTextColumn(WriteIf(Catagory_C >0,"3",""), "Catagory_C", 70, colorDefault, IIf(Catagory_C >0,colorgreen, colorDefault));
AddTextColumn(WriteIf(Catagory_D >0,"4",""), "Catagory_D", 70, colorDefault, IIf(Catagory_D >0,colorDarkgreen, colorDefault));
AddTextColumn(WriteIf(Catagory_E >0,"5",""), "Catagory_E", 70, colorDefault, IIf(Catagory_E >0,colorBlue, colorDefault));
AddTextColumn(WriteIf(Catagory_F >0,"6",""), "Catagory_F", 70, colorDefault, IIf(Catagory_F >0,colorDarkblue, colorDefault));
AddTextColumn(WriteIf(Catagory_G >0,"7",""), "Catagory_G", 70, colorDefault, IIf(Catagory_G >0,colorDarkRed, colorDefault));
AddTextColumn(WriteIf(Catagory_H >0,"8",""), "Catagory_H", 70, colorDefault, IIf(Catagory_H >0,colorRed, colorDefault));
_SECTION_END();
TimeFrameRestore();

## 0 Comments

Please login here to leave a comment.