Notebook

How much does it hurt, when it hurts to hurt?

Looking at

In [44]:
def perf_stats(p):
    cum_s = p.cumulative_performance.ending_portfolio_value
    delta = cum_s.index[-1] - cum_s.index[0]
    years = float(delta.days)/364.0
    cagr = (cum_s[-1]/cum_s[0])**(1.0/years) - 1.0
    print('cagr: {:.2f}'.format(cagr * 100))

    date_max_dd = p.risk.max_drawdown.idxmin()
    print('a max Draw Down of {:.2f} occured on: {}'.format(p.risk.max_drawdown[date_max_dd], date_max_dd))
    
    print('mean Sharpe: {:.2f}'.format(p.risk.sharpe.dropna().mean()))
In [46]:
# All Weather Portfolio, 2007 - late March 2020  5e80c63eed0f284592b0aa27
bt = get_backtest('5e80c63eed0f284592b0aa27')
perf_stats(bt)
100% Time:  0:00:05|##########################################################|
cagr: 6.13
a max Draw Down of -0.17 occured on: 2009-03-03 00:00:00+00:00
mean Sharpe: 0.75
In [47]:
# All Weather Portfolio, 2007 - Jan 1st, 2020  5e81153994b8f545bc9833e4
bt = get_backtest('5e81153994b8f545bc9833e4')
perf_stats(bt)
100% Time:  0:00:05|##########################################################|
cagr: 6.16
a max Draw Down of -0.17 occured on: 2009-03-03 00:00:00+00:00
mean Sharpe: 0.75
In [48]:
# SPY, 2007 - Jan 1st, 2020 5e811c560714a445a319496d
bt = get_backtest('5e811c560714a445a319496d')
perf_stats(bt)
100% Time:  0:00:04|##########################################################|
cagr: 8.37
a max Draw Down of -0.54 occured on: 2009-03-09 00:00:00+00:00
mean Sharpe: 0.24
In [49]:
# SPY, 2007 - late March 2020, 5e811d7e55927045c2ee6246
bt = get_backtest('5e811d7e55927045c2ee6246')
perf_stats(bt)
100% Time:  0:00:05|##########################################################|
cagr: 6.33
a max Draw Down of -0.54 occured on: 2009-03-09 00:00:00+00:00
mean Sharpe: 0.24
Strategy Period Sharpe CAGR maxDD
All Weather Portfolio 2007 - late March 2020 0.75 6.13% 17%
All Weather Portfolio 2007 - Jan 1st, 2020 0.75 6.16% 17%
SPY 2007 - Jan 1st, 2020 0.24 8.37% 54%
SPY 2007 - late March 2020 0.24 6.33% 54%
In [ ]: