|
[LegacyColorValue = true];
//******************************************************//
// MacdBB 12/24/07 //
//******************************************************//
//
// for "Chart_Offset" I use .0005 for EC and other 4 dec symbols.
// I use .5 for the ER2 and 1.00 for the ES, equities - expirament.
//
// Imagine this will work on Radar Screen, haven't tried it. I
// would just use the "Plot_Chart" setting and see what happens.
//
inputs:
Price(Close),
FastLen( 12 ),
SlowLen( 26 ),
Length ( 10 ),
StDv( 1 ),
BB_Color_Up(Green),
BB_Color_Dn(Red),
Upper_Band_Color(Red),
Lower_Band_Color(Blue),
Zero_Color_Up(Blue),
Zero_Color_Dn(Red),
Plot_Sub(True),
Plot_Chart(False),
Chart_Offset( 0 ), { offset above and below for dots on chart }
Alert_Append(" "); { will replace symbol in alert message }
VARS:
BB_Macd(0),
Avg(0),
SDev(0),
Alert_Msg(" "),
Upper_Band(0),
Lower_Band(0),
BB_Color(Black), {black is meaningless - just for initialize}
Cross_Up(False),
Cross_Dn(False),
Zero_Color(yellow); {yellow is meaningless - just for initialize}
//******************************************************//
// Once only initialize the alert append. //
//******************************************************//
Once If Alert_Append = " " then Alert_Msg = Symbol else Alert_Msg = Alert_Append;
//******************************************************//
// Main Calculations. //
//******************************************************//
BB_Macd = MACD( Price, FastLen, SlowLen ) * 100 ;
Avg = XAverage( BB_Macd, Length);
SDev = StandardDev( BB_Macd, Length, 1);
Upper_Band = ( Avg + StDv * SDev );
Lower_Band = ( Avg - StDv * SDev );
//******************************************************//
// Sub-Graph plot logic. //
//******************************************************//
If Plot_Sub = True and Plot_Chart = False then begin
If BB_Macd > BB_Macd[1] then BB_Color = BB_Color_Up else BB_Color = BB_Color_Dn;
If Cross_Up = False then if BB_Macd > Upper_Band then begin
Cross_Up = True;
Cross_Dn = False;
BB_Color = Cyan;
If CheckAlert then Alert( "BB cross up " + Alert_Msg );
end;
If Cross_Dn = False then if BB_Macd < Lower_Band then begin
Cross_Up = False;
Cross_Dn = True;
BB_Color = Yellow;
If CheckAlert then Alert( "BB cross down " + Alert_Msg );
end;
If ( BB_Macd < 0 ) then Zero_Color = Zero_Color_Dn else if
( BB_Macd > 0 ) then Zero_Color = Zero_Color_Up;
Plot1( BB_Macd, "MACD Dots" ,BB_Color );
Plot2( Upper_Band, "Upper_Band", Upper_Band_Color );
Plot3( Lower_Band, "Lower_Band", Lower_Band_Color );
Plot4( 0, "Zero_Line", Zero_Color );
end
//******************************************************//
// Main chart plot logic. //
//******************************************************//
else If Plot_Chart = True and Plot_Sub = False then begin
If Cross_Up = False then if BB_Macd > Upper_Band then begin
Cross_Up = True;
Cross_Dn = False;
Plot5( (Low - Chart_Offset) , "BB Chart", BB_Color_Up );
If CheckAlert then Alert( "BB cross up " + Alert_Msg );
end;
If Cross_Dn = False then if BB_Macd < Lower_Band then begin
Cross_Up = False;
Cross_Dn = True;
Plot5( (High + Chart_Offset) , "BB Chart", BB_Color_Dn );
If CheckAlert then Alert( "BB cross down " + Alert_Msg );
end;
end; |
|