| 
Rank: Advanced Member
 Groups: Moderators, Registered, Registered Users, SubscribersJoined: 10/8/2010(UTC)
 Posts: 1,999
 
 Thanks: 96 timesWas thanked: 160 time(s) in 155 post(s)
 
 | 
            
	      
                Markos Katsanos' article, “Which Trend Indicator Wins”, presented formulas for 4 different indicators designed to identify trending markets. The formulas are listed below:  ADX:  This indicator is built into MetaStock.  It can be used with the formula function:  ADX( periods ) For example, to use a 14 period ADX, you would write:  The formulas for the ADX trend system is:  Buy:  Code:( (Cross(ADX(14), 30) AND ADX(14) < 42) OR (Cross(ADX(14), 22) AND ADX(14) > 1.8*LLV(ADX(14), 12) ) ) AND C > Mov(C, 50, S)
 Sell:  Code:Cross( Mov(C, 50, S), C )
 Sell Short:  Code:( (Cross(ADX(14), 30) AND ADX(14) < 42) OR (Cross(ADX(14), 22) AND ADX(14) > 1.8*LLV(ADX(14), 12) ) ) AND C < Mov(C, 50, S)
 Buy to Cover:  Code:Cross( C, Mov(C, 50, S) )
 Vertical Horizontal Filter (VHF):  This indicator is built into MetaStock.  It can be used with the formula function:  VHF( data array, periods ) For example, to use a 14 period VHF on the Close, you would write:  The formulas for the VHF trend system is:  Buy:  Code:( (Cross(VHF(C, 36), .38) AND VHF(C, 36) < .45 AND VHF(C, 36) > Ref(VHF(C, 36),-10)) OR (Cross(VHF(C, 36), .24) AND VHF(C, 36) > 1.5*LLV(VHF(C, 36), 10) ) ) AND C > Mov(C, 50, S)
 Sell:  Code:Cross( Mov(C, 50, S), C )
 Sell Short:  Code:( (Cross(VHF(C, 36), .38) AND VHF(C, 36) < .45 AND VHF(C, 36) > Ref(VHF(C, 36),-10)) OR (Cross(VHF(C, 36), .24) AND VHF(C, 36) > 1.5*LLV(VHF(C, 36), 10) ) ) AND C < Mov(C, 50, S)
 Buy to Cover:  Code:Cross( C, Mov(C, 50, S) )
 Efficiency Ratio:  Perry Kaufman's efficiency ratio can be added to MetaStock with the following formula:  Code:tp:= 10; {time periods}
Abs( ROC( C, tp, $) ) / Sum( Abs( ROC( C, 1, $) ), tp)
 As written, it is for a 10 period efficiency ratio.  If you wish to use a different number of periods, just change the number on the first line. The formulas for the efficiency ratio trend system is:  Buy: Code:er := Mov( Abs( ROC( C, 24, $) ) / Sum( Abs( ROC( C, 1, $) ), 24), 3, S);
( (Cross( er, .36) AND er < .42 AND er > Ref(er, -3)) OR (Cross(er, .26) AND er > 2.5*LLV(er, 3) ) ) AND C > Mov(C, 50, S)
 Sell: Code:Cross( Mov(C, 50, S), C )
 Sell Short:  Code:er := Mov( Abs( ROC( C, 24, $) ) / Sum( Abs( ROC( C, 1, $) ), 24), 3, S);
( (Cross( er, .36) AND er < .42 AND er > Ref(er, -3)) OR (Cross(er, .26) AND er > 2.5*LLV(er, 3) ) ) AND C < Mov(C, 50, S)
 Buy to Cover:  Code:Cross( C, Mov(C, 50, S) )
 R-squared:  This indicator is built into MetaStock.  It can be used with the formula function:  RSquared( data array, periods ) For example, to use a 21 period R-squared calculated on the Close, you would write:  The formulas for the R-squared trend system is:  Buy:  Code:r2 := RSquared(C, 18);
lr := LinRegSlope( C, 18 ) * 100;
Cross( r2, .42) AND r2 < .85 AND r2 > Ref(r2, -10) AND C > Mov(C, 50, S) AND lr > 10
 Sell:  Code:Cross( Mov(C, 50, S), C )
 Sell Short:  Code:r2 := RSquared(C, 18);
lr := LinRegSlope( C, 18 ) * 100;
Cross( r2, .42) AND r2 < .85 AND r2 > Ref(r2, -10) AND C < Mov(C, 50, S) AND lr < -10
 Buy to Cover:  Code:Cross( C, Mov(C, 50, S) )
 |