// Downloaded From https://www.WiseStockTrader.com
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////*******************************  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();