Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 6

[LegacyColorValue = true];

{Gartley 222
Original Code written by Mark Conway
=================
Modified
by
deMicron
Oct. 09, 2004
1. Option to Delete Multiple Re-Draw Lines
2. Added 2-more Lines to complete the pattern
================
}
Inputs:
Length(100),
Strength(8),
Tolerance(0.10),
BullColor(Blue),
BearColor(Red),
thickness(2),
DelMulti(TRUE); { Deletes Multiple Re-Draw Lines}
Variables:
F1(0.618),
F2(0.786),
F3(1.27),
F4(1.618),
P1Bar(-1),
P2Bar(-1),
T1Bar(-1),
T2Bar(-1),
P1(0.0),
P2(0.0),
T1(0.0),
T2(0.0),
PTValid(False),
HLValid(False),
InZone(False),
GD(0.0),
XA(0.0),
AB(0.0),
BC(0.0),
CD(0.0),
AD(0.0),
C1(False),
C2(False),
C3(False),
C4(False),
ABdXA(0.0),
BCdAB(0.0),
CDdBC(0.0),
ADdXA(0.0),
TL1(-1),
TL2(-1),

TL3(-1),
TL4(-1),
TL5(-1),
TL6(-1),
TL7(-1),
TL8(-1);
{----- end of variables -----}
P1Bar
P2Bar
T1Bar
T2Bar

=
=
=
=

SwingHighBar(1, High, Strength, Length);


SwingHighBar(2, High, Strength, Length);
SwingLowBar(1, Low, Strength, Length);
SwingLowBar(2, Low, Strength, Length);

If P1Bar <> -1 and


P2Bar <> -1 and
T1Bar <> -1 and
T2Bar <> -1 Then
Begin
{Test for a bullish 222}
{Trough X is T2}
T2 = Low[T2Bar];
{Peak A is P2}
P2 = High[P2Bar];
{Trough B is T1}
T1 = Low[T1Bar];
{Peak C is P1}
P1 = High[P1Bar];
{D is the buy point}
GD = Low;
PTValid = P1Bar < T1Bar and T1Bar < P2Bar and P2Bar < T2Bar;
HLValid = P1 < P2 and T1 > T2 and P1 > T1;
InZone = GD < T1 and GD > T2 and P2 >= Highest(High, T2Bar);
If PTValid and HLValid and InZone Then
Begin
XA = P2 - T2;
AB = P2 - T1;
BC = P1 - T1;
CD = P1 - GD;
AD = P2 - GD;
ABdXA = AB / XA; {AB should be 61.8% of XA}
C1 = ABdXA > F1 - Tolerance and ABdXA < F1 +
BCdAB = BC / AB; {BC should be 61.8-78.6% of
C2 = BCdAB > F1 - Tolerance and BCdAB < F2 +
CDdBC = CD / BC; {CD should be 127-161.8% of
C3 = CDdBC > F3 - Tolerance and CDdBC < F4 +
ADdXA = AD / XA; {AD should be 78.6% of XA}
C4 = ADdXA > F2 - Tolerance and ADdXA < F2 +

Tolerance;
AB}
Tolerance;
BC}
Tolerance;
Tolerance;

If C1 and C2 and C3 and C4 Then


Begin
TL1 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date[P2Bar],
Time[P2Bar], P2);

If TL1 >= 0 Then


Begin
TL_SetColor(TL1, BullColor);
TL_SetStyle(TL1, Tool_Solid);
TL_SetSize(TL1, 2);
End;
TL2 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date[T1Bar],
Time[T1Bar], T1);
If TL2 >= 0 Then
Begin
TL_SetColor(TL2, BullColor);
TL_SetStyle(TL2, Tool_Solid);
TL_SetSize(TL2, 2);
End;
TL3 = TL_New(Date[T1Bar], Time[T1Bar], T1, Date[P1Bar],
Time[P1Bar], P1);
If TL3 >= 0 Then
Begin
TL_SetColor(TL3, BullColor);
TL_SetStyle(TL3, Tool_Solid);
TL_SetSize(TL3, 2);
End;
if (DelMULTI) then
begin
if (TL4>0) then TL_Delete(TL4);
if (TL5>0) then TL_Delete(TL5);
if (TL5>0) then TL_Delete(TL6);
end;
TL4 = TL_New(Date[P1Bar], Time[P1Bar], P1, Date, Time, G
D);
If TL4 >= 0 Then
Begin
TL_SetColor(TL4, BullColor);
TL_SetStyle(TL4, Tool_Solid);
TL_SetSize(TL4, thickness);
End;
TL5 = TL_New(Date[T1Bar], Time[T1Bar], T1, Date, Time, G
D);
If TL5 >= 0 Then
Begin
TL_SetColor(TL5, BullColor);
TL_SetStyle(TL5, Tool_Dotted);
TL_SetSize(TL5, thickness);
End;
TL6 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date, Time, G
D);
If TL6 >= 0 Then
Begin
TL_SetColor(TL6, BullColor);
TL_SetStyle(TL6, Tool_Dotted);
TL_SetSize(TL6, thickness);
End;

TL7 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date[P1Bar],


Time[P1Bar], P1);
If TL7 >= 0 Then
Begin
TL_SetColor(TL7, BullColor);
TL_SetStyle(TL7, Tool_Dotted);
TL_SetSize(TL7, thickness);
End;
TL8 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date[T1Bar],
Time[T1Bar], T1);
If TL8 >= 0 Then
Begin
TL_SetColor(TL8, BullColor);
TL_SetStyle(TL8, Tool_Dotted);
TL_SetSize(TL8,thickness);
End;
End;
End;
{Test for a bearish 222}
{Peak X is P2}
{Trough A is T2}
{Peak B is P1}
{Trough C is T1}
{GD is the short point}
GD = High;
PTValid = T1Bar < P1Bar and P1Bar < T2Bar and T2Bar < P2Bar;
HLValid = T1 > T2 and P1 < P2 and T1 < P1;
InZone = GD > P1 and GD < P2 and T2 <= Lowest(Low, P2Bar);
If PTValid and HLValid and InZone Then
Begin
XA = P2 - T2;
AB = P1 - T2;
BC = P1 - T1;
CD = GD - T1;
AD = GD - T2;
ABdXA = AB / XA; {AB should be 61.8% of XA}
C1 = ABdXA > F1 - Tolerance and ABdXA < F1 +
BCdAB = BC / AB; {BC should be 61.8-78.6% of
C2 = BCdAB > F1 - Tolerance and BCdAB < F2 +
CDdBC = CD / BC; {CD should be 127-161.8% of
C3 = CDdBC > F3 - Tolerance and CDdBC < F4 +
ADdXA = AD / XA; {AD should be 78.6% of XA}
C4 = ADdXA > F2 - Tolerance and ADdXA < F2 +

Tolerance;
AB}
Tolerance;
BC}
Tolerance;
Tolerance;

If C1 and C2 and C3 and C4 Then


Begin
TL1 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date[T2Bar],
Time[T2Bar], T2);
If TL1 >= 0 Then
Begin
TL_SetColor(TL1, BearColor);
TL_SetStyle(TL1, Tool_Solid);
TL_SetSize(TL1, thickness);
End;
TL2 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date[P1Bar],
Time[P1Bar], P1);

If TL2 >= 0 Then


Begin
TL_SetColor(TL2, BearColor);
TL_SetStyle(TL2, Tool_Solid);
TL_SetSize(TL1, thickness);
End;
TL3 = TL_New(Date[P1Bar], Time[P1Bar], P1, Date[T1Bar],
Time[T1Bar], T1);
If TL3 >= 0 Then
Begin
TL_SetColor(TL3, BearColor);
TL_SetStyle(TL3, Tool_Solid);
TL_SetSize(TL3, thickness);
End;
if (DelMULTI) then
begin
if (TL4>0) then TL_Delete(TL4);
if (TL5>0) then TL_Delete(TL5);
if (TL5>0) then TL_Delete(TL6);
end;
TL4 = TL_New(Date[T1Bar], Time[T1Bar], T1, Date, Time, G
D);
If TL4 >= 0 Then
Begin
TL_SetColor(TL4, BearColor);
TL_SetStyle(TL4, Tool_Solid);
TL_SetSize(TL4, thickness);
End;
TL5 = TL_New(Date[P1Bar], Time[P1Bar], P1, Date, Time, G
D);
If TL5 >= 0 Then
Begin
TL_SetColor(TL5, BearColor);
TL_SetStyle(TL5, Tool_Dotted);
TL_SetSize(TL5, thickness);
End;
TL6 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date, Time, G
D);
If TL6 >= 0 Then
Begin
TL_SetColor(TL6, BearColor);
TL_SetStyle(TL6, Tool_Dotted);
TL_SetSize(TL6, thickness);
End;
TL7 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date[P1Bar],
Time[P1Bar], P1);
If TL7 >= 0 Then
Begin
TL_SetColor(TL7, BearColor);
TL_SetStyle(TL7, Tool_Dotted);
TL_SetSize(TL7, thickness);
End;

TL8 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date[T1Bar],


Time[T1Bar], T1);
If TL8 >= 0 Then
Begin
TL_SetColor(TL8, BearColor);
TL_SetStyle(TL8, Tool_Dotted);
TL_SetSize(TL8,thickness);
End;
End;
End;
End;

You might also like