StockFetcher Forums · Filter Exchange · Help getting all stocks to display<< >>Post Follow-up
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

Fetcher[
/* I did the first 2 if statements. When a Z column is equal to the value 2 both (price + range) conditions are met.*/

/*
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
shares outstanding is below 250
ADD COLUMN SHARES OUTSTANDING
ADD COLUMN DAY POINT RANGE

exchange is nasdaq
volume above 500000
]




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
]

StockFetcher Forums · Filter Exchange · Help getting all stocks to display<< >>Post Follow-up

*** Disclaimer *** StockFetcher.com does not endorse or suggest any of the securities which are returned in any of the searches or filters. They are provided purely for informational and research purposes. StockFetcher.com does not recommend particular securities. StockFetcher.com, Vestyl Software, L.L.C. and involved content providers shall not be liable for any errors or delays in the content, or for any actions taken based on the content.


Copyright 2022 - Vestyl Software L.L.C.Terms of Service | License | Questions or comments? Contact Us
EOD Data sources: DDFPlus & CSI Data Quotes delayed during active market hours. Delay times are at least 15 mins for NASDAQ, 20 mins for NYSE and Amex. Delayed intraday data provided by DDFPlus


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.