[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Breakouts along tight rising channels



PureBytes Links

Trading Reference Links

Thanks to Johan (johsun) for the meat of this code.

One of the difficult parts, for me, of being a trend follower 
(trading intermediate term trends of weeks to months in duration) is 
getting a sell signal on an individual holding and then finding new 
buy candidates as the trend in the overall market continues. I have 
found that buying stocks that are making new highs and that have been 
outperforming the market (and their industry groups) for the duration 
of the existing intermediate trend is about as good a "continuation 
pattern" as any.

So here's an exploration that finds stocks that are in tight rising 
channels (compared to an index - or any other symbol) and are also 
making new closing highs. With this exploration, I'm trying to locate 
stocks that are outperforming an index on a volatility-adjusted basis 
along an existing trend (as measured by the linear regression line of 
a broad market index starting from a technical low point), and are 
making new highs after some/minor consolidation (by the definition of 
a tight rising channel, you won't have very much consolidation along 
the channel/trend). The idea was inspired by Gary Smith's book "How I 
Trade for a Living".

If anyone wants to embelish this code to enable Periods to be 
determined with the BeginValue and EndValue markers on the chart, 
please post.

///////////////////////////////////////////////////////////////
Periods = 125;
/* i'd actually like to be able to define the Periods of the linear 
regression segment with the BeginValue and EndValue markers on a 
chart if anyone knows how this could be done */

Sym = ParamStr( "Comparison Symbol:", "DWC--X" );
/* replace DWC--X with your own symbol to serve as a comparison for 
defining your "tight rising channel" */

end = LinearReg( C, periods );		start = LinRegIntercept( C, 
periods );		slope = LinRegSlope( C, periods );
endF = LinearReg(Foreign("SYM","Close"), periods);	
	startF = LinRegIntercept(Foreign("SYM","Close"), periods);
	slopeF = LinRegSlope(Foreign("SYM","Close"), periods);

for( n = x = 0; n < periods; n++ ) 
x = x + abs( Ref( C, - n ) - ( end - n * slope ) );

for( nF = xF = 0; nF < periods; nF++ ) 
xF = xF + abs( Ref( Foreign("SYM","Close"), - nF ) - ( endF - nF * 
slopeF ) );

Direction = end - start;		Volatility = x;		ER = 
(Direction / Volatility)*100;
DirectionF = endF - startF;		VolatilityF = xF;	
	ERf = (DirectionF / VolatilityF)*100;

/* ER stands for Efficiency Ratio, the standard version of which (as 
defined by Perry Kaufman) is (Close - Ref(Close, -periods)) / Sum(abs
(ROC(C,1), periods)) */

Filter = EMA(V,252) * EMA(C,107) >= 1800000 AND EMA(V,252) >= 50000
AND (Direction/start) >= .92 * (DirectionF/startF)
AND ER >= ERf
AND C > Ref(HHV(C,36),-1)
AND Ref(C,-1) < Ref(HHV(H,36),-2)
AND (L-Ref(H,-1))/Ref(H,-1) < .08;

/* The filter weeds out stocks with low average daily turnover, those 
whose linear regression rate of change is not within 8% of the 
comparison symbol's, and those with a lower Efficiency Ratio than the 
comparison symbol's. The filter also selects stocks that are making 
new 36-bar closing highs, but whose previous close was lower than the 
highest high price of the prior 36 bars. Finally, the final bar's low 
should not have gapped up more than 8% from the previous bar's high.*/

AddTextColumn(SectorID( mode = 1 ),"Sector");
AddTextColumn(IndustryID( mode = 1 ),"Industry");
///////////////////////////////////////////////////////////////






Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For other support material please check also:
http://www.amibroker.com/support.html

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/