In [17]:

```
bt = get_backtest("59fb5fd5e5960144e0a17b6d")
```

In [18]:

```
bt.create_perf_attrib_tear_sheet()
```

**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.

In [10]:

```
import numpy as np
import pandas as pd
```

This tells us how much time the exposure spends away from 0. If the exposure changes regimes and spends time well above and/or well below 0.

In [19]:

```
np.abs(bt.factor_exposures).mean()
```

Out[19]:

Seems like the algo has fairly high exposures to both sectors and style factors. We'll plot the highest exposure factor to see how it looks.

In [22]:

```
bt.factor_exposures['volatility'].plot();
```

The next step would be to decide if you want to control you risk more. In general lower risk is better, but if you try to overconstrain you model you may wash out all the alpha you have. Good next steps would be:

- See if your model can be adjusted to avoid these exposures.
- Constrain your risk in your portfolio optimization step, as discussed in this lecture: https://www.quantopian.com/lectures/risk-constrained-portfolio-optimization