Notebook
In [1]:
## Quality companies in an uptrend (Dan Whitnabl version with fixed bonds weights)
In [2]:
import pyfolio as pf
import matplotlib.pyplot as plt
import empyrical  as ep
In [3]:
bt = get_backtest('5deffdc9d3c3ce4beab97cbc')
returns = bt.daily_performance['returns']
100% Time:  0:00:08|##########################################################|
In [4]:
cum_returns = ep.cum_returns(returns)
ax = cum_returns.plot(figsize=(14,5))
ax.set(title='Cumulative Returns', ylabel='returns', xlabel='date');
In [5]:
benchmark_rets = pf.utils.get_symbol_rets('SPY')
pf.plotting.show_perf_stats(returns, benchmark_rets)
Start date2003-01-02
End date2019-11-18
Total months202
Backtest
Annual return 19.9%
Cumulative returns 2041.1%
Annual volatility 15.5%
Sharpe ratio 1.25
Calmar ratio 0.96
Stability 0.98
Max drawdown -20.7%
Omega ratio 1.24
Sortino ratio 1.78
Skew -0.42
Kurtosis 2.31
Tail ratio 1.02
Daily value at risk -1.9%
Alpha 0.14
Beta 0.46
In [6]:
fig = plt.figure(1)
plt.subplot(1,3,1)
pf.plot_annual_returns(returns)
plt.subplot(1,3,2)
pf.plot_monthly_returns_dist(returns)
plt.subplot(1,3,3)
pf.plot_monthly_returns_heatmap(returns)
plt.tight_layout()
fig.set_size_inches(15,5)
In [7]:
ax = bt.recorded_vars.plot(figsize=(14,5))
ax.set(title='Positions Count', xlabel='date');
In [ ]: