Mel Widner - "In my article "Automatic support and resistance" in this issue, I 
present a computerized approach to finding support and resistance levels on a 
chart. To recreate the indicators and system described in my article using 
MetaStock for Windows, enter the following formulas:
 Indicators:
 S1: IF(Ref(LOW,-4)=LLV(LOW,9),Ref(LOW,-4),PREVIOUS) S2: 
IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S1"),-1)) S3: 
IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S2"),-1)) S4: 
IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S3"),-1)) S5: 
IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S4"),-1)) S6: 
IF(Fml("S1")=Ref(Fml("S1"),-1),PREVIOUS,Ref(Fml("S5"),-1))
 WSO: 
100*(1?(Int(Fml("S1")/CLOSE)+Int(Fml("S2")/CLOSE)+Int(Fml("S3")/CLOSE)+Int(Fml("S4")/CLOSE)
 +Int(Fml("S5")/CLOSE)+Int(Fml("S6")/CLOSE))/6)
 R1: IF(Ref(HIGH,-4)=HHV(HIGH,9),Ref(HIGH,-4),PREVIOUS) R2: 
IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R1"),-1)) R3: 
IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R2"),-1)) R4: 
IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R3"),-1)) R5: 
IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R4"),-1)) R6: 
IF(Fml("R1")=Ref(Fml("R1"),-1),PREVIOUS,Ref(Fml("R5"),-1))
 WRO: 100*(1?(Int(Fml("R1")/CLOSE)+Int(Fml("R2")/CLOSE) 
+Int(Fml("R3")/CLOSE)+Int(Fml("R4")/CLOSE) 
+Int(Fml("R5")/CLOSE)+Int(Fml("R6")/CLOSE))/6)
 The indicators S1 through S6 and R1 through R6 should be plotted as points and 
not as a continuous line.
 Trading System Formulas and Parameters: Enter long positions on either 
building support or sustained uptrend and exit position using stops. No short 
positions.
 Enter Long: Fml("WSO") > Mov( Fml("WSO") , 4 , S ) OR Mov( Fml("WRO") , 30 , S 
) > 95
 Stop Out:
 Breakeven stop: Floor level at 2%
 Trailing stop: Profit risk of 10 Percent, ignoring 10 periods
 Maximum loss stop: Maximum loss of 7%
 Other Conditions:
 Initial equity = 1000, Long positions only, Trade price = close, Trade delay = 
0, Entry commission = 0%, Exit commission = 0%, , Interest rate = 5%, Margin 
req. 100%"
 
 Code: 
 {WRO}
 R1:=If(Ref(HIGH,-4)=HHV(HIGH,9),Ref(HIGH,-4),PREVIOUS); 
 R2:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R1,-1)); 
 R3:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R2,-1)); 
 R4:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R3,-1)); 
 R5:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R4,-1)); 
 R6:=If(R1=Ref(R1,-1),PREVIOUS,Ref(R5,-1)); 
 WRO:=100*(1-(Int(R1/CLOSE) + Int(R2/CLOSE) + 
 Int(R3/CLOSE) + Int(R4/CLOSE) + 
 Int(R5/CLOSE) + Int(R6/CLOSE))/6); 
 
 WRO;
 {WSO}
 S1:=If(Ref(LOW,-4)=LLV(LOW,9),Ref(LOW,-4),PREVIOUS); 
S2:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S1,-1)); 
S3:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S2,-1)); 
S4:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S3,-1)); 
S5:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S4,-1)); 
S6:=If(S1=Ref(S1,-1),PREVIOUS,Ref(S5,-1)); 
WSO:=100*(1 - (Int(S1/CLOSE) + Int(S2/CLOSE) + 
Int(S3/CLOSE) + Int(S4/CLOSE) + 
Int(S5/CLOSE) + Int(S6/CLOSE))/6); 
 WSO;
 Mov(WRO,4,E);Mov(Mov(WRO,4,E),4,E);
 Mov(WSO,30,E);Mov(Mov(WSO,30,E),30,E);
 
 
 
 The above improved the results from the original article. Any improvement 
suggestions are welcomed.
 

Reply via email to