Single stock analysis example in pyfolio
Here's a simple example where we produce a set of plots, called a tear sheet, for a single stock.
Import pyfolio and matplotlib
import pyfolio as pf
%matplotlib inline
# silence warnings
import warnings
warnings.filterwarnings('ignore')
Fetch the daily returns for a stock
stock_rets = pf.utils.get_symbol_rets('FB')
Create a returns tear sheet for the single stock
This will show charts and analysis about returns of the single stock.
pf.create_returns_tear_sheet(stock_rets, live_start_date='2015-12-1')
Entire data start date: 2012年05月21日
Entire data end date: 2017年08月22日
In-sample months: 42
Out-of-sample months: 20
| All | In-sample | Out-of-sample | |
|---|---|---|---|
| Annual return | 32.8% | 32.9% | 32.6% |
| Cumulative returns | 343.7% | 172.7% | 62.7% |
| Annual volatility | 38.0% | 43.2% | 24.3% |
| Sharpe ratio | 0.93 | 0.87 | 1.28 |
| Calmar ratio | 0.61 | 0.61 | 2.38 |
| Stability | 0.92 | 0.89 | 0.88 |
| Max drawdown | -53.6% | -53.6% | -13.7% |
| Omega ratio | 1.20 | 1.18 | 1.29 |
| Sortino ratio | 1.50 | 1.39 | 2.09 |
| Skew | 1.89 | 1.73 | 2.12 |
| Kurtosis | 23.62 | 19.44 | 24.74 |
| Tail ratio | 1.11 | 1.04 | 1.02 |
| Daily value at risk | -4.7% | -5.3% | -2.9% |
| Alpha | 0.20 | 0.21 | 0.18 |
| Beta | 1.04 | 1.01 | 1.11 |
| Worst drawdown periods | Net drawdown in % | Peak date | Valley date | Recovery date | Duration |
|---|---|---|---|---|---|
| 0 | 47.90 | 2012年05月21日 | 2012年09月04日 | 2013年07月25日 | 309 |
| 1 | 22.06 | 2014年03月10日 | 2014年04月28日 | 2014年07月24日 | 99 |
| 2 | 17.34 | 2013年10月18日 | 2013年11月25日 | 2013年12月17日 | 43 |
| 3 | 16.57 | 2015年07月21日 | 2015年08月24日 | 2015年10月19日 | 65 |
| 4 | 13.68 | 2016年10月24日 | 2016年12月30日 | 2017年02月08日 | 78 |
png