Skip to content

Mean-Variance Portfolio Optimisation and Algorithmic Trading Strategies in MATLAB

License

Notifications You must be signed in to change notification settings

chrischia06/AlgoTradingSimulatedPaths

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Backtesting trading strategies on simulated data in MATLAB

Contributors: Sandra Ng, Chris Chia, and Pearl Yuan

.github/workflows/main.yml

Timeline of Development

Complete List of Literature References

Currently Implemented / Work in Progress

Model Free

  • one_over_n.m - one-over-n (in units of each asset held)
  • proportional - one-over-n (in proportions)

Portfolio Optimisation

  • mean_variance.m - standard Markowitz Mean-Variance Portfolio Optimisation
  • ridge_shrinkage.m - Add lambda I to estimated covariance matrix and applying quadratic optimisation
  • pca_optimisation.m - Construct covariance matrix from PCA factors, and use in quadratic Optimisation
  • ledoit_wolf.m - Ledoit and Wolf's Quadratic Shrinkage estimator
  • mean_correlation.m - Risk parity approach, using correlation matrix instead of covariance

Risk Parity

  • volatility_weighted.m - Inverse volatility weighted
  • hierarchial.m - Hierarchial Risk Parity

Downside Risk Measures

  • semicovariance.m - Risk Parity approach using semivariance (as a quadratic optimisation problem)
  • cvar_optimisation.m - CVaR portfolio optimisation as a linear programming problem
  • mad_optimisation.m - MAD portfolio optimisation as a linear programming problem

Momentum

  • current_price_weighted.m - current price-Weighted Strategy
  • macd.m - allocate weights based on MACD oscillator
  • classification.m = allocate weights based on prediction of sign
  • reg.m = allocate weights based on prediction of returns

Online

  • exp_grad_proj.m - exponential gradient, projective update
  • exp_grad_mult.m - exponential gradient, multiplicative update
  • exp_grad_max.m - exponential gradient, expectation maximisation
  • follow_leader.m - Follow the (regularised) leader

In Progresss / To Add

  • Conditional Drawdown at Risk cdar_optimisation.m
  • Entropic VaR

Code References

Sjöstrand, K., Clemmensen, L., Larsen, R., Einarsson, G., & Ersbøll, B. (2018). SpaSM: A MATLAB Toolbox for Sparse Statistical Modeling. Journal of Statistical Software, 84(10), 1 - 37. doi:http://dx.doi.org/10.18637/jss.v084.i10

Ledoit, O. and Wolf, M. Quadratic shrinkage for lage covariance matrices.

Asset Allocation - Hierarchical Risk Parity

Mean Absolute Deviation

Libraries

About

Mean-Variance Portfolio Optimisation and Algorithmic Trading Strategies in MATLAB

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages