With the release of Quantopian's Risk Model you can analyze your algorithm's performance in more depth. Pyfolio now includes a performance attribution tear sheet that breaks down your algorithm's returns into common and specific returns.
Let's load a backtest to look at an example:
bt = get_backtest('5a02a8b4fddf10449d6abf54')
bt.create_perf_attrib_tear_sheet()
This is how the tear sheet is broken down:
Summary Statistics - This table provides the annualized returns breakdown over the entire backtest, as well as a Sharpe ratio derived from the specific returns of the backtest.
Exposures Summary - This table gives us the average exposure of our algorithm to each risk factor. It also gives us the annualized and cumulative returns that are explained by each one of these risk factors.
Time Series of Cumulative Returns - This plot breaks down the results of our backtest into cumulative specific and common returns. Common returns are the portion of our backtest's returns that are attributed to common risk factors. Specific returns are the residual, and is what we commonly refer to as alpha.
Daily Returns Attribution - This plot attributes the daily returns to each of the common risk factors. It also includes daily specific returns.
Daily Risk Factor Exposures - This plot shows the daily exposures to each common risk factor.
We can also get our returns' exposure to individual risk factors and plot them as follows:
bt.factor_exposures['short_term_reversal'].plot()
... and the corresponding returns attributed to a given risk factor:
bt.attributed_factor_returns['short_term_reversal'].plot()
If you’d like to learn more about risk models and how to use them in your research and portfolio construction, check out our Risk Constrained Portfolio Optimization lecture.