Request for CMA-ES (Covariance Matrix Adaptation Evolutionary Strategy) Optimizer
Author: abegy
Creation Date: 6/30/2020 10:26 AM
profile picture

abegy

#1
Hi Eugene,

According to some benchmark papers (https://www.il-pib.pl/czasopisma/JTIT/2018/4/5.pdf), CMA-ES optimizers are more powerfull than PSO optomizations when you have more than 5 parameters.

Is it possible to have this extension in Wealth-Lab ? This is important especially that PSO is not compatible with the BTUtils multi-core tool.

Moreover, if you introduce the multi-objectives feature, this would be the state of the art. I haven't see another backtest tool with the both features.

For your information, AMIBROKER has a build in feature for CMA-ES (http://www.amibroker.com/features.html). NINJATRADER has a build in feature for multi-objective (https://ninjatrader.com/support/helpGuides/nt8/?multi-objective_optimization.htm).

I hope you will see the potential on this request ;-)
Thanks in advance for your time to investigate the subject

PS : with the multi-objective feature, do not forget the add the possibility to specify min and max value for values to optimaze. This possibility is standard normally with multi-objective approachs. But as you will see, this wasn't integrate in NINJATRADER solution...
profile picture

Eugene

#2
Hi Alexandre,

Thank you for your feature request. Multi Objective Optimization would be a valuable addition to the Wealth-Lab toolkit. Here are your options:

1. Hire our development team to implement it for you on a paid basis. Or perhaps through some crowdfunding it could become available to the whole Wealth-Lab community? Not sure.

2. Created by Wealth-Lab author Dion Kurczek, Quantacula Studio is powerful software for system development, backtesting and trading for desktops. Quantacula's optimizer is multi-core enabled by design. Its Advanced Optimizers extension has Multi Objective Optimizer already implemented. Check it out!
profile picture

superticker

#3
I haven't read the linked article, but weighting the front end (inputs) of the system under optimization with a covariance matrix is an excellent idea. Moreover, this is exactly what the Kalman filter does to deal with stochastic inputs. (Note: The general solution to the Kalman filter is MIMO, multi-input multi-output. But the "lame solution" used in finance is single-input and single-order, so you're just weighting by the reciprocal of the variance [one input], not the covariance [multi-inputs], in today's Kalman solution employed in finance.)

But I love the idea of weighting the optimization problem by the covariance matrix. If you can find a paper that solves this problem with matrix algebra, I may look at it (But not this year.). Of course, you'll need to install a linear systems package (e.g. Math.NET) for solving that part of the problem. I don't think Math.NET is multi-core, but I don't think multi-core is going to help with the linear systems part anyway. However, a large on-chip cache will. But, you could optimize several stocks independently with multi-core, which would speed up the collective optimization of individual DataSets.

QUOTE:
... is important especially [since] PSO is not compatible with the BTUtils multi-core tool.
And that's the real fix. The PSO works pretty good, but it needs to be updated. Any idea when that might be?

Lastly, I wouldn't try optimizing more than six Preferred Values at a time with any technique. For the fastest, time-variant variables, I would employ adaptive indicators. If you don't have one, then write one out of an old indicator. Remember, any parameter optimizer is going to set that parameter to a constant value for the entire Data Range--and in most cases--that's not what you want.
This website uses cookies to improve your experience. We'll assume you're ok with that, but you can opt-out if you wish (Read more).