Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
Common returns vs specific returns vs total returns

Would someone be so kind as to explain what is the difference in the Specific vs Common vs Total returns on the graphs? I will run various algorithms and they show enormously different things. Sometimes the Total Returns are 300% and the Common Returns are -5% and the Specific Returns are 150% on the same run. Other algorithms will be the opposite of that. How do you know which one you are supposed to look at? Is my algorithm awesome (by looking at the great Total Returns) or does it suck (by looking at terrible Common Returns)

I did search the forums for this questions and could find no definitive answer. One link posted to a very technical post about it which was way over my head.

Could someone explain to me in layman terms what these mean?

Thanks!

6 responses

Total returns = common returns + specific returns.

Put another way: Specific returns = total returns - common returns

Total returns is easy -- that's the actual returns generated by your algorithm's trades. Common returns are how much of your total returns can be attributed to the common risk factors as modeled by Quantopian -- exposure to market beta, sectors, momentum, mean reversion, volatility, size, and value. If all your returns are common returns, it means your algorithm isn't doing anything unique and is therefore of little value.

You can use the order optimizer to try to limit your exposure to these common risk factors:

            opt.experimental.RiskModelExposure(  
                risk_model_loadings=context.risk_loading_pipeline,  
                version=opt.Newest,  
                min_momentum = -0.01,  
                max_momentum = 0.01,  
                min_short_term_reversal = -0.01,  
                max_short_term_reversal = 0.01,  
                min_value = -0.01,  
                max_value = 0.01,  
                min_size = -0.01,  
                max_size = 0.01,  
                min_volatility = -0.01,  
                max_volatility = 0.01,  
            )  

sectors:

opt.NetGroupExposure.with_equal_bounds(  
        labels=context.output.sector  
        min=-0.001,  
        max=0.001,  
    )  

...should be a good starting point for finding more complete examples.

If all your returns are common returns, it means your algorithm isn't doing anything unique and is therefore of little value.

Although of course these are only returns deemed "common returns" by Quantopian. Because these returns are "known" in the industry. That does not in itself mean that such returns are "of little value" unless (like in the case of momentum in the futures markets) too much participation has made the method unprofitable.

All this means is that Quantopian would like to find a source of return which is not commonly known or used. And hats off to them. Unfortunately you may find that returns produced by some other method bear very close resemblance to one or other of these common returns.

Thanks for the response. So from what you said about common returns, if Common Returns are very high, that doesn't mean the algorithm is good. I should shoot for a high Specific Return?

For example. I run 2 algorithms and one has huge Specific Returns but low Common returns, this is much better than one that has high Common Returns but low Specific Returns.

I maybe wouldn't use the word "good." I'd use "suitable." As far as Quantopian is concerned, yes, they want algorithms with high specific returns.

If common returns are high it means your algorithm isn't doing anything very unique. Whatever it's exploiting is probably overcrowded -- and so you're more likely to be affected by market shocks. If for example there's a quarter of especially high hedge fund redemptions or deleveraging due to a risk parity implosion, those strategies will likely be adversely affected across the board. Or if you're exposed to beta, if there's a market crash, you'll likely experience significant drawdowns.

Why should the sectoral returns be part of common returns? And even when they are, why is it considered not relevant? Isn't allocation as important as selection? If I can get the sector allocation right, why is that a problem?

There are several factors that work right for the sectors and then there are other factors that work right for the stocks. Shouldn't we combine the factors at sector and stock level, rather than just purely focussing on stock level factors?

I think if your algorithm is dynamically making smart sector allocations, it will end up evening out as various sectors come in and out of favor. But if your algorithm leaves you with consistent exposure to a sector, then that leaves the algorithm exposed if in the future that sector falls out of favor.

In your example, it only covers one market regime for the most part, and seems like you have a consistent long bias towards tech and healthcare, which is fine in a bull market where those are the primary drivers of growth, but will get pummeled if there were a recession. So try running a longer backtest and see how it performs over different market regimes. Does it actually shift into defensive positions in those cases? How does your strategy perform during the tail of the dotcom bust? How about after the housing bubble popped?