Notebook

Comparison "My all weather trio" with original constituents but different rebalance frequency (weekly,monthly,quarterly,half_year,yearly)

In [16]:
import pandas as pd

plot_df = pd.DataFrame()

plot_df['weekly_rebalance'] = backtest_1.cumulative_performance.ending_portfolio_value
plot_df['monthly_rebalance'] = backtest_2.cumulative_performance.ending_portfolio_value
plot_df['quarterly_rebalance'] = backtest_3.cumulative_performance.ending_portfolio_value
plot_df['half_year_rebalance'] = backtest_4.cumulative_performance.ending_portfolio_value
plot_df['yearly_rebalance'] = backtest_4.cumulative_performance.ending_portfolio_value

plot_df.plot();
In [17]:
benchmark_rets = pf.utils.get_symbol_rets('SPY')
pf.plotting.show_perf_stats(returns_1, benchmark_rets)
Start date2007-04-02
End date2020-06-19
Total months158
Backtest
Annual return 11.027%
Cumulative returns 298.221%
Annual volatility 8.802%
Sharpe ratio 1.23
Calmar ratio 0.57
Stability 0.98
Max drawdown -19.435%
Omega ratio 1.24
Sortino ratio 1.79
Skew -0.18
Kurtosis 4.49
Tail ratio 0.99
Daily value at risk -1.066%
Alpha 0.08
Beta 0.26
In [18]:
benchmark_rets = pf.utils.get_symbol_rets('SPY')
pf.plotting.show_perf_stats(returns_2, benchmark_rets)
Start date2007-04-02
End date2020-06-19
Total months158
Backtest
Annual return 11.026%
Cumulative returns 298.169%
Annual volatility 8.639%
Sharpe ratio 1.25
Calmar ratio 0.57
Stability 0.98
Max drawdown -19.291%
Omega ratio 1.24
Sortino ratio 1.82
Skew -0.21
Kurtosis 3.61
Tail ratio 1.00
Daily value at risk -1.045%
Alpha 0.08
Beta 0.25
In [19]:
benchmark_rets = pf.utils.get_symbol_rets('SPY')
pf.plotting.show_perf_stats(returns_3, benchmark_rets)
Start date2007-04-02
End date2020-06-19
Total months158
Backtest
Annual return 11.282%
Cumulative returns 310.486%
Annual volatility 8.593%
Sharpe ratio 1.29
Calmar ratio 0.59
Stability 0.98
Max drawdown -19.243%
Omega ratio 1.25
Sortino ratio 1.87
Skew -0.23
Kurtosis 3.46
Tail ratio 1.00
Daily value at risk -1.039%
Alpha 0.09
Beta 0.24
In [20]:
benchmark_rets = pf.utils.get_symbol_rets('SPY')
pf.plotting.show_perf_stats(returns_4, benchmark_rets)
Start date2007-04-02
End date2020-06-19
Total months158
Backtest
Annual return 11.282%
Cumulative returns 310.486%
Annual volatility 8.593%
Sharpe ratio 1.29
Calmar ratio 0.59
Stability 0.98
Max drawdown -19.243%
Omega ratio 1.25
Sortino ratio 1.87
Skew -0.23
Kurtosis 3.46
Tail ratio 1.00
Daily value at risk -1.039%
Alpha 0.09
Beta 0.24
In [21]:
benchmark_rets = pf.utils.get_symbol_rets('SPY')
pf.plotting.show_perf_stats(returns_5, benchmark_rets)
Start date2007-04-02
End date2020-06-19
Total months158
Backtest
Annual return 10.999%
Cumulative returns 296.905%
Annual volatility 8.702%
Sharpe ratio 1.24
Calmar ratio 0.57
Stability 0.98
Max drawdown -19.333%
Omega ratio 1.24
Sortino ratio 1.79
Skew -0.30
Kurtosis 3.26
Tail ratio 1.01
Daily value at risk -1.053%
Alpha 0.08
Beta 0.24