| Index | Recent Threads | Who's Online | User List | Search |
|
|
![]() |
Portfolio123 » List all forums » Forum: Screener » Thread: How does FRank work? |
|
Total posts in this thread: 8 |
[Request a Feature]
[Post new Thread] [Add To My Favorites] [Watch this Thread] |
| Author |
|
|
KAR
Advanced Member
|
I am not understanding why FRank is giving results it is giving. I did not get results I expected when I created a single factor Screen and limited the universe to SP500. I used the example given in P123 Reference for FRank. FRank("EPSPExclXorTTM/Price",0,1)>90 returned 58 securites, not 50 securites. In other words, it did not pick out the top 10% ranked stocks. This was indpendent of whether I chose No Ranking, picked a ranking system such as Balanced4 or used Quick Rank in the screener. FRank("EPSPExclXorTTM/Price",0,1)>50 returned 423 stocks. I was expecting 250 or 50%. Similar effects were seen with other stock factors I tried such as PEG and MktCap. For example, FRank("PEG",0,1)>50 returns 499 stocks, not 250. Am I not understanding how Frank is supposed to work? I had been expecting, for simple case of single factor and well defined universe of SP500, that the ranks would be distributed uniformly between 0 and 99 so that Frank>50 would return 50% of the securites. Also, I noticed that SP500 returns 499, not 500 stocks right now. Thank you for your help. Kurt |
||
|
|
DennyHalwes
Advanced Member UNITED STATES Joined: Apr 28, 2004 Posts: 1532 Status: Offline |
Kurt, There are 27 stocks in the S&P500 with negitive EPSPExclXorTTM. this will really skew the results of EPSPExclXorTTM/Price. Denny ![]() ---------------------------------------- "The significant problems we face cannot be solved at the same level of thinking that we were at when we created them". Albert Einstein |
||
|
|
KAR
Advanced Member
|
Denny. Thank you for your reply. I can see what you mean qualitatively how negatives could really screw things up. And I have seen posts in the past that suggest that NA's could similarly distort things. But, I am still a bit puzzled with specific number of returned stocks. To better illustrate my confusion, lets look at ranking MktCap using FRank. Just to make sure, I checked the screener RUN output and all 499 SP500 stocks have a positive MktCap. There are no negatives. There are no NA's. There is none missing. If I sort by MktCap, I find that MktCap ranges from min of 1,695.6 for SANM to maximum of 479,729.3 for XOM. So this should allow for a clean experiment to give a clear understanding of how FRank works. So now I am expecting that ranks get distributed linearly and FRank("MktCap",0,1)>50 should yield 250 stocks. But, not so. if I run a single rule of FRank("MktCap",0,1)>50 in the screener, all 499 stocks are returned. In fact FRank("MktCap",0,1)>77 returns all 499 stocks. Only if I raise ranking threshold a bit to FRank("MktCap",0,1)>77.1 does number of stocks returned drop by 1 to 498. So all the ranks are squished between 77 and 100. Why is that? Reason I want to understand is two-fold. One is I like to simply understand what is going on. But also, because I want to use screener and combine results of mutiple ranks, such as in statement: (Frank("Pr52W%Chg",1,1)*0.4+Frank("Pr2FrCashFlTTM",0,0)*0.4+Frank("Pr2salesq",0,0)*0.2)>85 I realize it is is not as pure as using full ranking system, but this lets me check out a bunch of different factors using the screener, rather quickly as a first step before going to full fledged Ranking System which is much more time-consuming.. I do this because it is much faster to try out new ideas to develop ranking systems than changing ranking system and running SIM for each change of ranking system weight or factor. It lets me get a feel for what factors are more important. But since at this point I am very puzzled why this single factor ranking is giving only high rank values above 77, I certainly don't understand how combining rankings works. Thank you again. Kurt |
||
|
|
tonysf
Advanced Member
|
Hi Kurt, The problem is not the skew. In FRank(???,0,1), you are ranking aginst the entire universe of 7000+ stocks, regardless of if you have a universe(SP500) on top of it in the screener. By definition of FRank, for the first numerical figure, type 0 means ranking against the universe, and type 1 means ranking against the same industry. Therefore, if you have Universe(SP500) in rule 1 of screener and FRank("price",0,1)>50 in rule 2, you get 484 stocks. That should mean there are 484 stocks in SP500 that are at the top 50% price range of the entire universe. ---------------------------------------- [Edit 2 times, last edit by tonysf at Jul 6, 2007 5:56:30 PM] |
||
|
|
KAR
Advanced Member
|
Here is another example of FRank puzzle. Suppose we want to find the top 15% of stocks with the largest change in price over the past 26 weeks. So we use: FRank("Pr26W%Chg",0,1)>85 But this returns quantity =28 SP500 stocks, eg. 28/500=5.6% of the SP500 universe. 5.5% stocks returned when we set the critera to be to return the top 15% stocks. Is this a bug? |
||
|
|
KAR
Advanced Member
|
Hi Tony. Thanks for your note. Looks like we were posting at the same time. So I guess I am missing something. I simply don't understand the Universe option. Not sure what it is doing, It is obviously having an effect, just not an effect I can understand. Following your suggestion, I added initial rule Universe(SP500) prior to rule FRank("Pr26W%Chg",0,1)>85 Still get identical quantity of 28 stocks returned. Ok, so I tried different experiment. Chose universe of all stocks. Set a rule in the screener for MktCap>10000. That returns 615 stocks. Then applied rule below that rule of FRank("Pr26W%Chg",0,1)>10 and obtained 608 stocks. So this implies that Frank is not using the subset of stocks that have been selected by prior rules and is not using subset of stocks by choosing a universe. Why is FRank behaving in this way???????? If that is the case (1) How do we use Universe and (2) how do we get FRank to work on a chosen subset univere? Sorry for my confustion. Thank you. |
||
|
|
tonysf
Advanced Member
|
No, no... Kurt, regardless of what rule you have on top (in front) of your FRank rule in the screener, you are still ranking against either the universe (type 0) or same industry (type 1) in the FRank rule. So if you have Universe(SP500) + FRank("Pr26W%Chg",0,1)>85 and get 28 stocks, the interpertation is there are 28 stocks in the SP500 that has Pr26W%Chg greater than 85% of the stocks in the universe of 7000+ stocks. |
||
|
|
KAR
Advanced Member
|
Ok. Now I see. Thank you Tony. Thank you Denny. ![]() |
||
|
| [Show Thread Printable Version] [Post new Thread] |