Backtest Performance Report

MODEL VERSION 2 WITHOUT TRANSACTION COSTS.


  • Past performance is for illustration only and does not predict future results.
  • Although extensive efforts have been made to faithfully simulate real-world trading conditions and ensuring all stages of this system only use "point in time" available historical data, it's important to recognize that a backtest primarily offers a retrospective and approximate perspective of actual trading results.
  • The backtest doesn't factor in transaction costs or the market impact of orders (slippage).
    • The average and median trade returns exceed 0.5% across model versions, making the 0.03% transaction costs per order immaterial to system performance.
    • The system trades highly liquid equities listed on the ASX stock exchange during the market closing auction to minimize market impact at typical order sizes.
    • Starting from model version 4, optimization aims to minimize market impact and reduce the likelihood of orders affecting the closing auction.
  • The model uses market prices as of 4pm to guide trading decisions for the final closing auction price at 4:10pm.
    • The backtests utilize official closing prices available at 4:10pm, which is unrealistic and likely the main contributor to the performance gap observed between the backtests and actual trading outcomes so far.
    • Model version 4 introduced a simple real-time execution engine during the closing auction to narrow this disparity.
    • Model version 5 implemented a faster and more advanced execution engine that mitigates the performance gap by up to 90% during the closing auction in simulations.
  • Model versions 1 to 3 traded 10 equally-weighted positions, whereas versions 4 onwards manage 20 to 60 positions with stricter allocation limits. Individual limits are also dynamically adjusted based on volatility and turnover.
  • These results are not compounded, which enhances comparability but also underestimates drawdowns.
  • The available capacity to operate this system is constrained by the point at which trading's market impact surpasses anticipated profits. While there is sufficient capacity for a small private fund trading on the ASX, scaling beyond this point will require system adaptation to additional markets.

Version 1
Utilized a hybrid multi-factor model along with a basic ML-based predictive model and ML-based portfolio selection. Launched on 26/5/2021.
Version 2

Focused on streamlining data processes, enhancing system reliability, and improving transparency. Launched on 10/2/2022.

Note: Version 1 & 2 experienced significant losses in unfavorable market conditions prior to the improved modeling and risk management implemented in version 3 onwards. While not representative of the running system's performance, they are included for transparency.

Version 3
Introduced a highly optimized predictive ML-based model. Launched on 22/06/2022.
Version 4
All positions and position sizing now handled by a portfolio optimiser along with numerous risk management and optimization features. Launched on 8/12/2022.
Version 5
Integrated lessons learned from live operations, enhancing robustness, order execution, and incorporating numerous minor optimizations. Launched on 17/7/2023.
Version 5.1
Order execution enhancements at market closing auction and optimised intraday exit conditions to better match deployed capital. Launched on 18/9/2023.
2022-03-27T13:10:47.327727 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:47.573774 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:47.846348 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:48.153676 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:48.653467 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:48.821191 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:49.076680 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:49.325758 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:49.562629 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:49.786550 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:50.751810 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:50.988893 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:51.548054 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/

2022-03-27T13:10:52.318954 image/svg+xml Matplotlib v3.5.1, https://matplotlib.org/
Key Performance Metrics
Metric Strategy Benchmark
Risk-Free Rate 0.0% 0.0%
Time in Market 100.0% 100.0%

Total Return 1,308.97% 152.51%
CAGR% 14.88% 4.98%

Sharpe 3.25 0.48
Sortino 4.94 0.65
Sortino/√2 3.49 0.46

Max Drawdown -61.99% -56.88%
Longest DD Days 357 3700
Volatility (ann.) 21.05% 16.69%
R^2 0.2 0.2
Calmar 1.52 0.12
Skew -0.36 -0.87
Kurtosis 10.36 9.22

Expected Daily % 0.26% 0.03%
Expected Monthly % 5.68% 0.55%
Expected Yearly % 88.21% 6.48%
Kelly Criterion 26.72% -9.14%
Risk of Ruin 0.0% 0.0%
Daily Value-at-Risk -1.91% -1.7%
Expected Shortfall (cVaR) -1.91% -1.7%

Gain/Pain Ratio 0.82 0.09
Gain/Pain (1M) 5.75 0.54

Payoff Ratio 0.88 0.72
Profit Factor 1.82 1.09
Common Sense Ratio 2.09 0.99
CPC Index 1.05 0.43
Tail Ratio 1.15 0.91
Outlier Win Ratio 3.43 4.54
Outlier Loss Ratio 3.51 4.47

MTD 8.74% 5.32%
3M 24.93% 1.79%
6M 40.26% 3.01%
YTD 16.91% 0.62%
1Y 65.95% 12.12%
3Y (ann.) 46.41% 7.38%
5Y (ann.) 33.12% 6.6%
10Y (ann.) 22.24% 6.37%
All-time (ann.) 14.88% 4.98%

Best Day 14.64% 6.55%
Worst Day -10.42% -10.74%
Best Month 39.91% 10.0%
Worst Month -36.23% -24.9%
Best Year 336.77% 31.04%
Worst Year -49.48% -45.36%

Avg. Drawdown -2.03% -1.96%
Avg. Drawdown Days 9 41
Recovery Factor 501968.86 4.42
Ulcer Index 0.1 0.22
Serenity Index 215060.49 0.29

Avg. Up Month 9.43% 2.94%
Avg. Down Month -6.53% -5.21%
Win Days % 65.71% 54.49%
Win Month % 83.41% 65.07%
Win Quarter % 90.91% 72.73%
Win Year % 95.0% 70.0%
Beta 0.56 -
Alpha 0.64 -

EOY Returns vs Benchmark
Year Benchmark Strategy Multiplier Won
2003 19.99 89.59 4.48 +
2004 24.44 78.75 3.22 +
2005 20.07 71.14 3.54 +
2006 20.79 112.95 5.43 +
2007 13.42 67.45 5.03 +
2008 -54.43 -62.45 1.15 -
2009 29.27 153.02 5.23 +
2010 0.32 100.63 314.52 +
2011 -13.03 26.63 -2.04 +
2012 17.74 66.41 3.74 +
2013 17.62 44.93 2.55 +
2014 4.83 42.74 8.85 +
2015 1.07 115.98 108.55 +
2016 10.10 73.94 7.32 +
2017 10.72 33.14 3.09 +
2018 -3.52 54.48 -15.46 +
2019 20.40 74.31 3.64 +
2020 -3.13 78.35 -25.02 +
2021 15.24 70.08 4.60 +
2022 0.62 16.91 27.37 +

Worst 10 Drawdowns
Started Recovered Drawdown Days
2008-07-23 2009-07-15 -61.99 357
2020-02-24 2020-05-20 -49.67 86
2007-11-08 2008-04-21 -24.22 165
2014-10-31 2015-01-30 -19.79 91
2011-07-28 2011-09-09 -16.08 43
2008-05-23 2008-07-22 -14.84 60
2013-05-20 2013-07-29 -13.43 70
2010-01-21 2010-03-09 -13.37 47
2017-04-13 2017-08-25 -12.28 134
2011-03-02 2011-03-21 -11.78 19