SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Strategies & Market Trends : TA-Quotes Plus -- Ignore unavailable to you. Want to Upgrade?


To: TechTrader42 who wrote (3921)4/10/1998 3:49:00 PM
From: peter n matzke  Respond to of 11149
 
i was wasting some time looking at ways to find improving stocks and i started working with this:

qrs(0)>80
qrs(0)>qrs(-20)
qrs(-20)>qrs(-40)
qrs(-40)>50
qrs(-20)>70
hasoptions=true
close(0)>6
close(0)>close(-1)
vol(0)>vol(-1)
avgvol(0,-29)>1000
vol(0)>avgvol(0,-29)

i also tried it with a higher QRS>90 but i think there is more potential starting with a lower qrs that is improving. If a couple more lines are added it might have some potential. Maybe add:
rsi(0)>60
rsi(0)>rsi(-20)
rsi(-20)>rsi(-40)
rsi(-40)>40
rsi(-20)>50



To: TechTrader42 who wrote (3921)4/10/1998 6:09:00 PM
From: TechTrader42  Read Replies (1) | Respond to of 11149
 
On this question: "I have a question/suggestion about your recent
backtest of the breakout scan. Couldn't you have just inserted a
"loop(-10,-10)" at the beginning of the scan, rather than changing
each formula's parameters by 10 days? Is this still possible in
version 2 of QP?"

The best way to do it in the breakout scan would be to use variables:


//Breakout scan by Richard Estes, translated from TC2000
//and revised by Doug Schneider

Output="breakout.lst";
input="ms.lst";
issuetype=common;
exchange nyse,nasdaq,amex;
DaysToLoad = 250;

float days;

days:=-10;

If Close(days)<=30 and //price < $30
Close(days)>movavg(days,34,cl) and //price > avg price last 34 days
(Max(-4+days,-25+days,hi)/(0.01+Min(-4+days,-25+days,lo)))<1.2 and //prev month max high no more than 20% greater than max low
Vol(days) > AvgVol(days,-180+days) and //Vol. today greater than avg. vol. over past 180 days
Vol(days) >= 30000 and //Volume today greater than 30000
AvgVol(days,-30+days)>=30000 and //Average volume over the last 30 days is at least 30,000
QRS(days)>=80 and //Relative Strength is greater than 80 percent
(Close(days)/(0.01+movavg(days,3,cl)))>1.02 and //price > avg price prev 3 days by at least 2.0%
(Close(days)/(0.01+movavg(days,3,cl)))<1.06 then //But not more than 6.0%

println symbol:-6, " BUY: Close: ", close(0):-6:3, ",", " Up: ", close(0)-close(-1):4:3, ","," Volume: ", vol(0):-10, ",", " QRS: ", QRS(0):2, ","," Sharesfloat: ", Sharesfloat:6:3, ","," Persistence: ", Persistence(0):6:3, ", ",Description:-12;
endif;

Here's the original:

//Breakout scan by Richard Estes, translated from TC2000
//and revised by Doug Schneider

Output="breakout.lst";
input="commplus.lst";
issuetype=common;
exchange nyse,nasdaq,amex;
DaysToLoad = 250;

If Close(0)<=30 and //price < $30
Close(0)>movavg(0,34,cl) and //price > avg price last 34 days
(Max(-4,-25,hi)/(0.01+Min(-4,-25,lo)))<1.2 and //prev month max high no more than 20% greater than max low
Vol(0) > AvgVol(0,-180) and //Vol. today greater than avg. vol. over past 180 days
Vol(0) >= 30000 and //Volume today greater than 30000
AvgVol(0,-30 )>=30000 and //Average volume over the last 30 days is at least 30,000
QRS(0)>=80 and //Relative Strength is greater than 80 percent
(Close(0)/(0.01+movavg(-1,3,cl)))>1.02 and //price > avg price prev 3 days by at least 2.0%
(Close(0)/(0.01+movavg(-1,3,cl)))<1.06 then //But not more than 6.0%

println symbol:-6," BUY: Close: ", close(0):-6:3, ",", " Up: ", close(0)-close(-1):4:3, ","," Volume: ", vol(0):-10, ",", " QRS: ", QRS(0):2, ","," Sharesfloat: ", Sharesfloat:6:3, ","," Persistence: ", Persistence(0):6:3, ", ",Description:-12;
endif;



To: TechTrader42 who wrote (3921)4/10/1998 6:28:00 PM
From: Bob Jagow  Read Replies (2) | Respond to of 11149
 
Brooke,
Only way I know how to write a backtest is with a builtin variable
that you edit by hand [or via a bat file].
E.g. would write Richard's BBB scan as
[edit] see you posted after I started ;)
-------------------
input = "mycriteria.lst"; //
output = "bbb.LST";
integer now;
now:= 0; // Set to neg # to backtest
// could also use now in a for loop for a multiple-period backtest

if Close(now)-Close(now -5)>.05*Close(now -5) and
Vol(now) > MovAvg(now,63,vol) and
Close(now)>.85*Max(now,now -250,cl) then
println symbol,",",date(0),",",close(0),",",vol(0),","
if now != 0 then
print date(now),",",close(now),",",close(0 - close(now),",",
println,Description:25;
endif;
-----------------