[LegacyColorValue = TRUE];
{ *****************************************************************************************
Study : Support and Resistance
*******************************************************************************************}
Input: HiPrice(High), LoPrice(Low), Strength(5), NumSwing(3), TrailBar(5), LngShrs(100), ShrtShrs(100);
Variables: j(0), SH(false), SL(false), SwingHAvg(0), SwingLAvg(0), HiReady(false), LoReady(false),
noTLDrawn(true), AddExitPrice(0), LowestLo(0), HighestHi(0);
Arrays: SwingHi[2,20](0), SwingLo[2,20](0);
{ Finding a Swing High and storing it in the array }
SH = SwingHighBar( 1 , HiPrice , Strength , Strength+1 ) = Strength;
If SH then Begin
For j = 0 to 19 Begin
SwingHi[0 , 20 - j] = SwingHi[0 , 19 - j];
SwingHi[1, 20 - j] = SwingHi[1 , 19 - j];
SwingHi[2, 20 - j] = SwingHi[2 , 19 - j];
End;
SwingHi[0,0] = Date[Strength];
SwingHi[1,0] = Time[Strength];
SwingHi[2,0] = HiPrice[Strength];
If SwingHi[ 1, numswing - 1] <> 0 then
HiReady = true;
End;
{ FInding a Swing Low and storing it in the array }
SL = SwingLowBar( 1 , LoPrice , Strength , Strength+1 ) = Strength;
If SL then Begin
For j = 0 to 19 Begin
SwingLo[0 , 20 - j] = SwingLo[0 , 19 - j];
SwingLo[1, 20 - j] = SwingLo[1 , 19 - j];
SwingLo[2, 20 - j] = SwingLo[2 , 19 - j];
End;
SwingLo[0,0] = Date[Strength];
SwingLo[1,0] = Time[Strength];
SwingLo[2,0] = LoPrice[Strength];
If SwingLo[ 1, numswing - 1] <> 0 then
LoReady = true;
End;
LowestLo = 9999; HighestHi = 0;
SwingHAvg = 0; SwingLAvg = 0;
For j = 0 to NumSwing-1 Begin
SwingHAvg = SwingHAvg + SwingHi[ 2 , j ];
SwingLAvg = SwingLAvg + SwingLo[ 2 , j ];
If SwingHi[ 2, j ] > HighestHi then
HighestHi = SwingHi[ 2 , j ];
If SwingLo[ 2, j ] < LowestLo then
LowestLo = SwingLo[ 2 , j ];
End;
SwingHAvg = SwingHAvg / NumSwing;
SwingLAvg = SwingLAvg / NumSwing;
If HiReady and LoReady AND noTLDrawn then Begin
value1 = TL_New( SwingHi[ 0 , NumSwing - 1] , SwingHi[ 1 , NumSwing - 1], SwingHAvg,
SwingHi[ 0 , 0] , SwingHi[ 1 , 0], SwingHAvg);
value2 = TL_New( SwingLo[ 0 , NumSwing - 1] , SwingLo[ 1 , NumSwing - 1], SwingLAvg,
SwingLo[ 0 , 0] , SwingLo[ 1 , 0], SwingLAvg);
value99 = TL_SetExtRight( value1 , true );
value99 = TL_SetExtRight( value2 , true );
noTLDrawn = False;
End;
If noTLDrawn = False then Begin
value99 = TL_SetEnd(value1, SwingHi[ 0 , NumSwing - 1] , SwingHi[ 1 , NumSwing - 1], SwingHAvg);
value99 = TL_SetBegin(value1 , SwingHi[ 0 , 0] , SwingHi[ 1 , 0] , SwingHAvg);
value99 = TL_SetEnd(value2, SwingLo[ 0 , NumSwing - 1] , SwingLo[ 1 , NumSwing - 1], SwingLAvg);
value99 = TL_SetBegin(value2, SwingLo[ 0 , 0] , Swinglo [ 1 , 0] , SwingLAvg);
End;
If HighestHi - LowestLo <> 0 then Begin
value17 = ( SwingHAvg - LowestLo ) / ( HighestHi - LowestLo );
value18 = ( SwingLAvg - LowestLo ) / ( HighestHi - LowestLo );
End;
Condition1 = SwingHAvg - SwingLAvg > Average( TrueRange , 10 )*2;
Condition2 = Value17 > .66 AND Value18 < .33;
Condition3 = Close < SwingHAvg AND Close > SwingLAvg;
If Condition1 AND Condition2 AND Condition3 then Begin
If XAverage( High , 4 ) Crosses Under SwingHAvg then
SellShort ShrtShrs Shares next bar at Market;
If XAverage( Low , 4 ) Crosses Over SwingLAvg then
Buy LngShrs Shares next bar at Market;
End;
If PositionProfit > 0 then Begin
Sell next bar at Lowest( Low[1] , Trailbar ) Stop;
BuytoCover next bar at Highest( High[1] , Trailbar ) Stop;
End;