| ChopStockTrader 5 posts
 msg #103926
 - Ignore ChopStockTrader
 | 12/21/2011 9:44:13 PM 
 I am trying to write a daily point range screen along the lines of...
 
 set{ Range , high - low}
 add column Range
 
 if price is between 5 and 19.99 show stock with Range above 1
 if price is between 20 and 39.99 show stock with Range above 1.5
 if price is between 40 and 59.99 show stock with Range above 2
 if price is between 60 and 79.99 show stock with Range above 3
 if price is between 80 and 99.99 show stock with Range above 4
 if price is above 100 show stock with Range above 5
 
 and shares outstanding is below 250
 exchange is nasdaq
 volume above 500000
 
 of course the logic doesnt work on this because as soon as you write the 2nd if statement all stocks are eliminated.  I could write 6 different screens with each if statement, but I was trying to come up with a screen where this would all display on one screen.
 
 Thanks
 
 Chop
 
 
 | 
| four 5,087 posts
 msg #103927
 - Ignore four
 modified
 | 12/21/2011 10:17:40 PM 
 
 
 
 
 
 | 
| ChopStockTrader 5 posts
 msg #103935
 - Ignore ChopStockTrader
 | 12/22/2011 8:52:26 AM 
 /*Using first :if price is between 5 and 19.99 show stock with Range above 1*/
 
 /*CLOSE BETWEEN 5 AND 19.99 THEN 1 OTHERWISE 0 */
 
 add column separator
 SET{X, COUNT(CLOSE BETWEEN 5 AND 19.99,1)}
 ADD COLUMN X
 
 /* DAY POINT RANGE > 1 THEN 1 OTHERWISE 0 */
 
 SET{XX, COUNT(day point range > 1,1) }
 ADD COLUMN XX
 
 SET{z, X + XX}
 ADD COLUMN z
 add column separator
 
 /*Using second: if price is between 20 and 39.99 show stock with Range above 1.5*/
 
 /* CLOSE BETWEEN 20 AND 39.99 THEN 1 OTHERWISE 0 */
 
 SET{X1, COUNT(CLOSE BETWEEN 20 AND 39.99,1)}
 ADD COLUMN X1
 
 /* DAY POINT RANGE > 1.5 THEN 1 OTHERWISE 0 */
 
 SET{XX1, COUNT(day point range > 1.5,1) }
 ADD COLUMN XX1
 
 SET{z1, X1 + XX1}
 ADD COLUMN z1
 add column separator
 
 /*Using third: if price is between 40 and 59.99 show stock with Range above 2*/
 
 /* CLOSE BETWEEN 40 AND 59.99 THEN 1 OTHERWISE 0 */
 
 SET{X2, COUNT(CLOSE BETWEEN 40 AND 59.99,1)}
 ADD COLUMN X2
 
 /* DAY POINT RANGE > 2 THEN 1 OTHERWISE 0 */
 
 SET{XX2, COUNT(day point range > 2,1) }
 ADD COLUMN XX2
 
 SET{z2, X2 + XX2}
 ADD COLUMN z2
 add column separator
 
 /*Using fourth: if price is between 60 and 79.99 show stock with Range above 3*/
 
 /* CLOSE BETWEEN 60 AND 79.99 THEN 1 OTHERWISE 0 */
 
 SET{X3, COUNT(CLOSE BETWEEN 60 AND 79.99,1)}
 ADD COLUMN X3
 
 /* DAY POINT RANGE > 3 THEN 1 OTHERWISE 0 */
 
 SET{XX3, COUNT(day point range > 3,1) }
 ADD COLUMN XX3
 
 SET{z3, X3 + XX3}
 ADD COLUMN z3
 add column separator
 
 /*Using fifth: if price is between 80 and 99.99 show stock with Range above 4*/
 
 /* CLOSE BETWEEN 80 AND 99.99 THEN 1 OTHERWISE 0 */
 
 SET{X4, COUNT(CLOSE BETWEEN 80 AND 99.99,1)}
 ADD COLUMN X4
 
 /* DAY POINT RANGE > 4 THEN 1 OTHERWISE 0 */
 
 SET{XX4, COUNT(day point range > 4,1) }
 ADD COLUMN XX4
 
 SET{z4, X4 + XX4}
 ADD COLUMN z4
 add column separator
 
 /*Using fsixth: if price is above 100 show stock with Range above 5*/
 
 /* CLOSE ABOVE 100 THEN 1 OTHERWISE 0 */
 
 SET{X5, COUNT(CLOSE ABOVE 100,1)}
 ADD COLUMN X5
 
 /* DAY POINT RANGE > 5 THEN 1 OTHERWISE 0 */
 
 SET{XX5, COUNT(day point range > 5,1) }
 ADD COLUMN XX5
 
 SET{z5, X5 + XX5}
 ADD COLUMN z5
 add column separator
 
 
 ADD COLUMN SHARES OUTSTANDING
 ADD COLUMN DAY POINT RANGE
 
 shares outstanding is below 250
 exchange is nasdaq
 volume above 500000
 
 
 Thanks Four...its a start.  I like to find pre-market action on recent rangers, not just gaps and something like this becomes really useful.  I got a few too many hits to scan (in the 60s) in the morning so I will have to refine the ranges a bit.
 
 I am assuming there is a way to only display stocks where the z's = 2.
 
 -Chop
 
 
 | 
| JinNJ46 22 posts
 msg #103941
 - Ignore JinNJ46
 | 12/22/2011 10:36:57 AM 
 A filter like this is very more easily accomdated in Excel and or Access.  I've found that sometimes it's best to give up with SF limitations and use it when it's strengths can be exploited.  Another reason is the lack of "on demand" filtering and/or backtesting.  Everyone would like to "hit the refresh key" and have all the filters run, data scrubbed, and entry candidates clearly presented with supporting analysis.
 
 SF filters can feed Excel/VBA/Access analysis and vice versa.  This is the best approach sometimes especailly with EOD analysis.
 
 
 | 
| four 5,087 posts
 msg #103958
 - Ignore four
 modified
 | 12/22/2011 4:26:25 PM 
 I am assuming there is a way to only display stocks where the z's = 2.
 
 -Chop
 ---------------------------------------------
 
 use...
 
 z equals 2
 
 
 
 | 
| JinNJ46 22 posts
 msg #103987
 - Ignore JinNJ46
 modified
 | 12/24/2011 10:15:46 AM 
 Hi,
 Tried to simplify things.  Spot check shows it works but you never know with my code!  Only checked the first 3 price ranges.  Many thanks and Happy Holidays to all!
 
 Fetcher[
 set {Range, high - low}
 set {NetChange, close is above close 1 day ago}
 
 set {PBa, count( price is between 5 and 19.99,1)} /PB - Price Bucket*/
 set {PBb, count( price is between 20 and 39.99, 1)}
 set {PBc, count( price is between 40 and 59.99, 1)}
 
 set {HLa, count(Range is above 1, 1)} /* HL - High, Low requirements */
 set {HLb, count(Range is above 1.5, 1)}
 set {HLc, count(Range is above 2, 1)}
 
 set {Canda, PBa + HLa} /* Are both conditions met */
 set {Candb, PBb + HLb}
 set {Candc, PBc + HLc}
 
 set {Conda, count(Canda is equal to 2, 1)} /* Test both conditions to be true */
 set {Condb, count(Candb is equal to 2, 1)}
 set {Condc, count(Candc is equal to 2, 1)}
 
 set {Condd, Conda + Condb} /* Boolean OR logic; only one can be true becasue of the mutual exclusity of the Price Buckets */
 set {GotALiveOne!, Condd + Condc}
 
 show where NetChange is above 0
 and GotALiveOne! is equal to 1
 and shares outstanding is below 250
 and exchange is nasdaq
 volume above 500000
 
 add column Range
 ]
 
 
 |