Notebook

Comparing OOS performance "long-term-buy-and-hold-on-margin" strategies

original (backtest_1), my simple balaneced version (backtest_2)

In [14]:
import pandas as pd

plot_df = pd.DataFrame()

plot_df['backtest_1_value'] = backtest_1.cumulative_performance.ending_portfolio_value
plot_df['backtest_2_value'] = backtest_2.cumulative_performance.ending_portfolio_value

plot_df.plot();
In [15]:
benchmark_rets = pf.utils.get_symbol_rets('SPY')
pf.plotting.show_perf_stats(returns_1, benchmark_rets)
Start date2017-04-13
End date2020-04-03
Total months35
Backtest
Annual return -2.786%
Cumulative returns -8.056%
Annual volatility 26.956%
Sharpe ratio 0.03
Calmar ratio -0.05
Stability 0.30
Max drawdown -53.048%
Omega ratio 1.01
Sortino ratio 0.04
Skew -2.66
Kurtosis 34.86
Tail ratio 0.89
Daily value at risk -3.392%
Alpha -0.05
Beta 0.94
In [16]:
benchmark_rets = pf.utils.get_symbol_rets('SPY')
pf.plotting.show_perf_stats(returns_2, benchmark_rets)
Start date2017-04-03
End date2020-04-03
Total months36
Backtest
Annual return 19.893%
Cumulative returns 72.464%
Annual volatility 16.97%
Sharpe ratio 1.15
Calmar ratio 0.99
Stability 0.83
Max drawdown -20.008%
Omega ratio 1.25
Sortino ratio 1.60
Skew -0.92
Kurtosis 13.78
Tail ratio 0.92
Daily value at risk -2.06%
Alpha 0.16
Beta 0.63