Hidden Divergence
Posted: 18 May 2010
I found the attached divergence indicator on http://www.traderslaboratory.com and made a few modification to it. Notably substituting in stochrsi and getting the indicator to plot a divergence line on both the price chart and indicator for easier viewing.
My question is, can anyone suggest a way to include hidden divergence as well as regular divergence.
RSILength(9),
StochLength(18),
KLength(6),
DLength(3),
OverSold(20),
OverBought(80),
Length(20),
LeftStrength(3),
RightStrength(3),
Line.Color.Top(yellow),
Line.Color.Bot(white),
Line.Size(2),
Plot.stochrsi(1),
AlertOn.Off(1);
//----------------------------------------------------
variables:
//----------------------------------------------------
DToscK(0),
DToscD(0),
oPivotPrice1(0),
oPivotBar1(0),
oPivotPrice2(0),
oPivotBar2(0),
oPivotPrice11(0),
oPivotBar11(0),
oPivotPrice12(0),
oPivotBar12(0);
value1 = FastKCustomEasy(RSI(C, RSILength),StochLength);
DToscK = average(value1,KLength);
DToscD = average(DToscK,DLength);
Condition1 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, -1, oPivotPrice1, oPivotBar1 ) <> -1
AND ( oPivotBar1 - RightStrength ) = 0 ;
Condition11 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, 1, oPivotPrice11, oPivotBar11 ) <> -1
AND ( oPivotBar11 - RightStrength ) = 0 ;
Condition2 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, -1, oPivotPrice2, oPivotBar2 ) <> -1;
Condition12 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, 1, oPivotPrice12, oPivotBar12 ) <> -1;
If
Condition1 and Condition2 // added condition2 = referecne future data
AND L[oPivotBar2] >= L[oPivotBar1]
AND DToscK[oPivotBar2] < DToscK[oPivotBar1] then
Begin
Value2 = TL_New(D[oPivotBar2], T[oPivotBar2], L[oPivotBar2], D[oPivotBar1], T[oPivotBar1], L[oPivotBar1]);
TL_SetColor( Value2, Line.Color.Bot );
TL_SetSize( Value2, Line.Size );
if AlertOn.Off <> 0 then
Alert( "Divergence in Bottom" );
End;
If
Condition11 and Condition12 // added condition12 referecne future data
AND H[oPivotBar12] <= H[oPivotBar11]
AND DToscK[oPivotBar12] > DToscK[oPivotBar11] then
Begin
Value12 = TL_New(D[oPivotBar12], T[oPivotBar12], H[oPivotBar12], D[oPivotBar11], T[oPivotBar11], H[oPivotBar11]);
TL_SetColor( Value12, Line.Color.Top );
TL_SetSize( Value12, Line.Size );
if AlertOn.Off <> 0 then
Alert( "Divergence in Top" );
End;
condition3 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, -1, oPivotPrice1, oPivotBar1 ) <> -1
AND ( oPivotBar1 - RightStrength ) = 0 ;
condition32 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, 1, oPivotPrice11, oPivotBar11 ) <> -1
AND ( oPivotBar11 - RightStrength ) = 0 ;
condition4 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, -1, oPivotPrice2, oPivotBar2 ) <> -1;
condition42 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, 1, oPivotPrice12, oPivotBar12 ) <> -1;
If
Condition3 and condition4
AND L[oPivotBar2] >= L[oPivotBar1]
AND DToscK[oPivotBar2] < DToscK[oPivotBar1] then
Begin
Value2 = TL_New_SELF(D[oPivotBar2], T[oPivotBar2], DToscK[oPivotBar2], D[oPivotBar1], T[oPivotBar1], DToscK[oPivotBar1]);
TL_SetColor( Value2, Line.Color.Bot );
TL_SetSize( Value2, Line.Size );
End;
If
Condition32 and Condition42
AND H[oPivotBar12] <= H[oPivotBar11]
AND DToscK[oPivotBar12] > DToscK[oPivotBar11] then
Begin
Value12 = TL_New_SELF(D[oPivotBar12], T[oPivotBar12], DToscK[oPivotBar12], D[oPivotBar11], T[oPivotBar11], DToscK[oPivotBar11]);
TL_SetColor( Value12, Line.Color.Top );
TL_SetSize( Value12, Line.Size );
End;
Plot1( DToscK, "stochrsi", blue );
plot2( 20, "oversold", white);
plot3(80, "overbought", white);
My question is, can anyone suggest a way to include hidden divergence as well as regular divergence.
RSILength(9),
StochLength(18),
KLength(6),
DLength(3),
OverSold(20),
OverBought(80),
Length(20),
LeftStrength(3),
RightStrength(3),
Line.Color.Top(yellow),
Line.Color.Bot(white),
Line.Size(2),
Plot.stochrsi(1),
AlertOn.Off(1);
//----------------------------------------------------
variables:
//----------------------------------------------------
DToscK(0),
DToscD(0),
oPivotPrice1(0),
oPivotBar1(0),
oPivotPrice2(0),
oPivotBar2(0),
oPivotPrice11(0),
oPivotBar11(0),
oPivotPrice12(0),
oPivotBar12(0);
value1 = FastKCustomEasy(RSI(C, RSILength),StochLength);
DToscK = average(value1,KLength);
DToscD = average(DToscK,DLength);
Condition1 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, -1, oPivotPrice1, oPivotBar1 ) <> -1
AND ( oPivotBar1 - RightStrength ) = 0 ;
Condition11 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, 1, oPivotPrice11, oPivotBar11 ) <> -1
AND ( oPivotBar11 - RightStrength ) = 0 ;
Condition2 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, -1, oPivotPrice2, oPivotBar2 ) <> -1;
Condition12 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, 1, oPivotPrice12, oPivotBar12 ) <> -1;
If
Condition1 and Condition2 // added condition2 = referecne future data
AND L[oPivotBar2] >= L[oPivotBar1]
AND DToscK[oPivotBar2] < DToscK[oPivotBar1] then
Begin
Value2 = TL_New(D[oPivotBar2], T[oPivotBar2], L[oPivotBar2], D[oPivotBar1], T[oPivotBar1], L[oPivotBar1]);
TL_SetColor( Value2, Line.Color.Bot );
TL_SetSize( Value2, Line.Size );
if AlertOn.Off <> 0 then
Alert( "Divergence in Bottom" );
End;
If
Condition11 and Condition12 // added condition12 referecne future data
AND H[oPivotBar12] <= H[oPivotBar11]
AND DToscK[oPivotBar12] > DToscK[oPivotBar11] then
Begin
Value12 = TL_New(D[oPivotBar12], T[oPivotBar12], H[oPivotBar12], D[oPivotBar11], T[oPivotBar11], H[oPivotBar11]);
TL_SetColor( Value12, Line.Color.Top );
TL_SetSize( Value12, Line.Size );
if AlertOn.Off <> 0 then
Alert( "Divergence in Top" );
End;
condition3 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, -1, oPivotPrice1, oPivotBar1 ) <> -1
AND ( oPivotBar1 - RightStrength ) = 0 ;
condition32 = Pivot( DToscK, Length, LeftStrength, RightStrength, 1, 1, oPivotPrice11, oPivotBar11 ) <> -1
AND ( oPivotBar11 - RightStrength ) = 0 ;
condition4 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, -1, oPivotPrice2, oPivotBar2 ) <> -1;
condition42 = Pivot( DToscK, Length, LeftStrength, RightStrength, 2, 1, oPivotPrice12, oPivotBar12 ) <> -1;
If
Condition3 and condition4
AND L[oPivotBar2] >= L[oPivotBar1]
AND DToscK[oPivotBar2] < DToscK[oPivotBar1] then
Begin
Value2 = TL_New_SELF(D[oPivotBar2], T[oPivotBar2], DToscK[oPivotBar2], D[oPivotBar1], T[oPivotBar1], DToscK[oPivotBar1]);
TL_SetColor( Value2, Line.Color.Bot );
TL_SetSize( Value2, Line.Size );
End;
If
Condition32 and Condition42
AND H[oPivotBar12] <= H[oPivotBar11]
AND DToscK[oPivotBar12] > DToscK[oPivotBar11] then
Begin
Value12 = TL_New_SELF(D[oPivotBar12], T[oPivotBar12], DToscK[oPivotBar12], D[oPivotBar11], T[oPivotBar11], DToscK[oPivotBar11]);
TL_SetColor( Value12, Line.Color.Top );
TL_SetSize( Value12, Line.Size );
End;
Plot1( DToscK, "stochrsi", blue );
plot2( 20, "oversold", white);
plot3(80, "overbought", white);