Translating Screening into Ranking

In theory, if a screen shows a strong backtest, I should also be able to replicate that in a ranking system? Obviously the two are different, but if nothing else you should be able to get close in a backdoor way by using buying and selling rules, right?


This screen tests like this:

20 stocks, 13 week rebalancing. Yet my efforts to replicate this in a tanking system show weak results. What am I most likely missing? Obviously the screener is hard and fast rules and the ranking is expressing preferences, but the ideas are the same and I wouldn’t think produce such different results.

Could you please provide some more details? When you say “efforts to replicate this in a ranking system show weak results.” - are you using the results from the ranking system performance page or did you create a ranking system and add that ranking system to a simulated strategy? Once I have the details, I can give feedback on what settings to use to get as close as possible to replicating the screener results.

It is possible that the list of stocks selected in the screen vs ranking could be very different. Lets look at SalesGr%TTM as an example. The screen has SalesGr%TTM > 1. That is basically the top 1/3 of stocks in that universe (based on a test in the Screener). The ranking system performance chart results below are for SalesGr%TTM for the same universe over the last 20 years. The top ranked stocks for that factor did very poorly. The ranking system you created looks for the highest values so it picked the worst performing stocks based on this factor.

1 Like

That’s very helpful feedback. when I get Back to my computer I will show you what I did. I’m definitely still learning this stuff.

For that back test you showed - is just that one factor in a ranking system?

Those ranking system performance results are just the SalesGr%TTM factor.

i would share the model but I am on a trial so it isn’t enabled. Relying on screenshots instead.Basically looks like the market, I thought it would look better even without tweaking:



I’m really just trying to understand the assumptions in the screener backtest and how it would differ from ranking rules + simulation. E.G. when does it sell?

I think the problem you’re running into is a screen is a filter that stocks must past all conditions, and only 63 stocks out of the entire universe seem to have passed all the criteria.

In a ranking system you will not exclude any stocks based on a single factor. Each stock is instead scored on every factor. It can score poorly on certain factors, but one bad comparison does not exclude the stock from consideration in the same way that a failed comparison in a screen excludes a stock, and a stock can make up for a bad comparison in one factor by having a favorable comparison in other factors.

Here are some differences between the screen and the simulation:

Your screen backtest:
Rebalance is every 13 weeks.
Slippage is .2
Industry != BANKSUSA and Industry != BANKSINTL - this is not the same as the secto!=Financial in the strategy.
Ranking system has Frank(“NPMgn%Q”,#industry,#Desc)>80. Change this to Ranking type = ‘Boolean Values’ OR remove the >80 part.

The simulated strategy:
Rebalanced is every 4 weeks.
Accrual Ratio has totally different formula than screen.
Commission=.005. Screener has no commission.
Slippage is set to Variable. That will be much higher for smallcaps vs the .2 used in screen.

The difference that makes the biggest impact is the sell rule. The sim has the sell rule Rank < 60. So it will rarely sell any which is why the turnover is only 12%. But the screener will hold only the top 20 stocks at each rebalance. That means it sells all the stocks that are not in the top 20 at each rebalance. Replace the Rank < 60 rule in the sim with the rule RankPos > 20. Then it will sell any that are not in the top 20. Turnover will probably be too high for this to be used in a live system, but the goal here was to try to replicate the screen backtest results.

Wow, thank you. I’m a little embarrassed at my sloppiness here. It’s helpful to know the detail on the sell rule. I’m going to reread the A-Z guide and try to get better.

thanks

If the screener doesn’t have a number of holdings constraint, it obviously owns variable amounts of stocks depending on what passes. Are they equal weighted?

Your screen is only holding 20 stocks at each rebalance because you have the Max # of Stocks setting set to 20. An important thing to know is that it is picking those 20 stocks at random from the set of stocks that passed your rules. That is probably not what you want. If you select either a ranking system or ‘quick rank’ for the Ranking setting on the Settings tab in the screen then it will buy the top 20 based on that setting.

The other option is to set ‘Max # of Stocks’ to 0. Then if buys every stock that passes the screen on each rebalance date. That is not ideal for most screens because the number of stocks that pass the rules on each rebalance period can vary widely.

The screener positions are equal weight.

1 Like