Problem Limiting Universe by Short Interest

Hello,

I’m trying to limit a universe based on short interest. The FRank command is working in eliminating stocks when I start with the “No OTC Exchange” start universe. However, FRank does not work in eliminating any names from the universe when I start with “All Fundamentals - USA” or “All Stocks - USA” as the start universe.

More specifically, here are the rules I am using to limit the universe.

  1. MktCap > 200
  2. FRank(“SI%ShsOut”, #SECTOR, #ASC) >= 20

When I use these two rules, if I use “No OTC Exchange” as a starting universe, then the 20% of stocks with the highest short interest are eliminated by rule 2. However, when I use “All Fundamentals - USA” or “All Stocks - USA” no stocks are eliminated by rule 2. Rule 2 has no effect.

Is there a reason for this? For some reason is short interest data not available when using “All Fundamentals - USA” or “All Stocks - USA” ?

Thanks in advance from a newbie.

  • Graham

Welcome GrahamInvestor,

I was not able to reproduce the issue. Starting with this stock screen, clicking on ‘totals’ shows that rule 2 eliminated 40 stocks.

Hi Chipper6. Thanks for the msg. Here are some sample screens that clearly show the problem. In each of the screens I’m using only one rule:

  1. FRank(“SI%ShsOut”, #SECTOR, #ASC) >= 20

If it works right, this one rule should eliminate about 20% of the starting universe. When I use, “All Stocks – USA” as the starting universe, this rule eliminates no stocks. You can see this here:

https://www.portfolio123.com/app/screen/summary/124266?st=1&mt=1

If we start with “All Fundamentals - USA,” the rule only eliminates 162 stocks (or about 2.5% of the universe). In this case, it should be eliminating 20% of the starting universe (~1300 stocks). This is shown here:

https://www.portfolio123.com/app/screen/summary/124265?st=1&mt=1

When I start with “No OTC Exchange”, things work correctly as shown here:

https://www.portfolio123.com/app/screen/summary/124267?st=1&mt=1

Any idea what is wrong? Why is this rule not working correctly?

Thanks in advance.

Graham

Hi Graham,

I don’t have enough time right now to give it a thorough examination but here is something that may help you:

I am guessing that the issue has to do with NA values.

Although I am not familiar with FRank(…, #Sector) regular FRank(…) gives all NAs the same values. This value might be higher than 20 if more than 20% of the all stocks universe are NAs (this would makes sense because they do not include fundamentals). To debug a screen I use the ShowVar() function and ‘run screen’, then ‘Screen Factors’.

I am guessing that OTC stocks don’t have short interest and that they all have NAs. That may be the issue with the second screen.

Chaim

It’s the NA’s . ‘All Stocks’ includes thousands of penny stocks that don’t even have market cap. NA’s all get the same rank and it’s higher than 20. Please see our document ‘How Ranking Works’ here https://www.portfolio123.com/doc/doc_data.jsp

What you need is to eliminate NA’s first, then use FRank. But for that you need the #Previous option to work , which it doesn’t right now, in the custom universe. We have a fix for it that will be released in the next build.

Sounds good. Thanks.