QQQ. Patterns. 3-4 days down, gap up.

Pattern description

Close Today or Tomorrow

Days back 4 and 3 either one of them or both are down. Days 2 and 1 back are down. Today's open is gap% higher then yesterday's close.(Gap up)
Buy todays open.
Close today at the end of the day if today's close higher than today's open. Otherwise close at the end of the day tomorrow.

Close Today

Same setup. Close today at the end of the day.

The results are calculated for period from 3/10/1999 till 11/28/2011.

Gap %Trades NbrClose Today or Tomorrow PL%Close Today or Tomorrow Avg Trade PctClose Today PL %Close Today Avg Trade Pct
3 207 100.59 0.49 83.37 0.40
2.5 222 108.11 0.49 86.27 0.39
2244 96.50 0.40 66.92 0.27

QQQ. 3-4 days down, gap up grouped by the year. 2.5% gap.
yeartradesNumcloseTodayOrTomorrowPLcloseTodayOrTomorrowAvgTradePctcloseTodayPLcloseTodayAvgTradePct
19991815.610.879.030.50
2000217.760.371.360.06
20011411.830.8415.191.08
20021821.831.2120.971.17
2003144.830.347.800.56
20042013.340.676.710.34
2005182.760.152.230.12
200695.690.633.480.39
20072111.020.527.660.36
200820-13.90-0.69-7.00-0.35
2009168.680.549.440.59
20101710.870.645.530.33
2011167.780.493.860.24


Query used:
select  
YEAR(t.[date]) year,
COUNT(*) tradesNum
,cast(SUM (	(case	when t.[close] > t.[open] then t.[close] - t.[open] 
			when t.[close] < t.[open] then t1.[close] - t.[open] end) /t.[open] * 100) as decimal(10,2)) closeTodayOrTomorrow,
cast(SUM (	(case	when t.[close] > t.[open] then t.[close] - t.[open] 
			when t.[close] < t.[open] then t1.[close] - t.[open] end) /t.[open] * 100
			)/COUNT(*) as decimal(10,2)) closeTodayOrTomorrowPct
,cast(SUM (	(t.[close] - t.[open]) /t.[open] * 100) as decimal(10,2)) closeToday,
cast( SUM (	(t.[close] - t.[open]) /t.[open] * 100)/COUNT(*) as decimal(10,2)) closeTodayPct
from qqq100 t
join qqq100 t1 on t1.id = t.id + 1 and t.ticker = t1.ticker
join qqq100 t_1 on t_1.id = t.id - 1 and t_1.ticker = t.ticker
join qqq100 t_2 on t_2.id = t.id - 2 and t_2.ticker = t.ticker
join qqq100 t_3 on t_3.id = t.id - 3 and t_3.ticker = t.ticker
join qqq100 t_4 on t_4.id = t.id - 4 and t_4.ticker = t.ticker
where 1=1  
and t.ticker = 'qqq' 
and ((t.[open] - t_1.[close])/t_1.[close]) > 0.003 
and t_1.[close] < t_1.[open] 
and t_2.[close] < t_2.[open] 
and (t_3.[close] < t_3.[open] or t_4.[close] < t_4.[open])
group by YEAR(t.[date])
order by YEAR(t.[date])

theCrunchR | © 2011