Hey everyone. I am looking for some stock suggestions. I'm looking for stocks that have a lot of up and downs throughout the day but usually stay around the same price so if I mess up and dont buy right I can just wait for the stock to return. I am relatively new to this strategy so I'm looking for stocks that can be forgiving.
Here is a list of the 10 stocks with the lowest average absolute open to close movement as a percentage of high-low range over the last ten days. Includes only stocks with average volume over 100000 shares per day, price greater than $10.00, and also excludes warrants and preferred. DATE Symbol LastClose BuyDipsInd AvgVolume ---- ------ --------- ---------- --------- 20171124, SYRS , 13.75, .2084, 110001 20171124, AVA , 51.93, .2119, 662075 20171124, GCO , 28.75, .2144, 269667 20171124, MUJ , 14.41, .2193, 125606 20171124, AVD , 20.1, .2235, 664831 20171124, MOO , 60.76, .2244, 433174 20171124, GCI , 11.66, .227, 257265 20171124, KORU , 66.5, .2276, 592788 20171124, SHOO , 39.8, .2285, 436551 20171124, MVCB , 25.27, .2313, 286463 Here, if you are interested, is the screen that produced this table: SELECT sdate,symbol,close,round(BuyDipsNow,4),round(AvgVolume,0) FROM ( SELECT sdate,symbol,close,avg(abs(close-open)/(high-low)) OVER (ORDER BY sdate rows BETWEEN 10 PRECEDING AND CURRENT ROW) AS BuyDipsNow, avg(volume) OVER (ORDER BY sdate rows BETWEEN 10 PRECEDING AND CURRENT ROW) AS AvgVolume FROM stocks where volume > 0 AND (high-low) > 0 AND sdate > '20171101' ) WHERE sdate = '20171124' AND AvgVolume > 100000 AND close >= 10.00 AND symbol NOT LIKE '%_W' AND SYMBOL NOT LIKE '%_P%' ORDER BY BuyDipsNow FETCH FIRST 10 ROWS ONLY
It is a sql query against an oracle database, but a similar query should run against any relational stock database (e.g. mysql,postgresql,etc.) You could run a very similar query against a dataframe in R loaded with all tickers via quantmod.
List I previously posted was incorrect. I forgot the partition by clause in the avg over query lines. Here is a corrected list. 20171124,CUB , 62.15, .2076, 227700 20171124,CLDT , 22.94, .2086, 402882 20171124,EYE , 29.99, .2124, 283391 20171124,IVC , 17.9, .2182, 601164 20171124,CVX , 116.51, .2219, 4732718 20171124,CODI , 16.8, .2238, 120509 20171124,STAR , 11.34, .2243, 402518 20171124,NATI , 44.38, .2257, 554636 20171124,SRCL , 63.05, .2272, 1255045 20171124,BSJH , 25.69, .2273, 164764 And here is the corrected query: SELECT sdate,symbol,close,round(BuyDipsNow,4),round(AvgVolume,0) FROM ( SELECT sdate,symbol,close,avg(abs(close-open)/(high-low)) OVER (PARTITION BY symbol ORDER BY sdate rows BETWEEN 10 PRECEDING AND CURRENT ROW) AS BuyDipsNow, avg(volume) OVER (PARTITION BY symbol ORDER BY sdate rows BETWEEN 10 PRECEDING AND CURRENT ROW) AS AvgVolume FROM stocks where volume > 0 AND (high-low) > 0 AND sdate > '20171101' ) WHERE sdate = '20171124' AND AvgVolume > 100000 AND close >= 10.00 AND symbol NOT LIKE '%_W' AND SYMBOL NOT LIKE '%_P%' ORDER BY BuyDipsNow FETCH FIRST 10 ROWS ONLY;