[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] AmiBroker now featuring Covariance Matrix Adaptation Evolutionary Strategy optimization


  • To: <amibroker@xxxxxxxxxxxxxxx>
  • Subject: [amibroker] AmiBroker now featuring Covariance Matrix Adaptation Evolutionary Strategy optimization
  • From: "Tomasz Janeczko" <groups@xxxxxxxxxxxxx>
  • Date: Fri, 27 Jun 2008 14:46:26 +0200

PureBytes Links

Trading Reference Links

Hello,

With the version 5.13.0 BETA AmiBroker is the first backtesting/optimization platform
featuring state-of-the-art optimization algorithm called "Covariance Matrix Adaptation Evolutionary Strategy"
that is is outperforming other evolutionary methods (genetic, PSO, DE, etc).

For scientific background see:
http://www.bionik.tu-berlin.de/user/niko/cmaesintro.html
According to scientific benchmarks outperforms nine other, most popular evolutionary strategies
(like PSO, Genetic and Differential evolution).
http://www.bionik.tu-berlin.de/user/niko/cec2005.html

The plugin (CMAE.DLL) comes with FULL SOURCE CODE (inside "ADK" folder, the source code is released under GPL terms)

The CMAE.DLL plugin implements "Global" variant of search with several restarts with increasing population size

By default number of runs (or restarts) is set to 5.
It is advised to leave the default number of restarts.
You may vary it using OptimizerSetOption("Runs", N ) call, where N should be in range 1..10.
Specifying more than 10 runs is not recommended, although possible.
Note that each run uses TWICE the size of population of previous run so it grows exponentially.
Therefore with 10 runs you end up with population 2^10 greater (1024 times) than the first run.

There is another parameter "MaxEval". The default value is ZERO which means that plugin will automatically calculate MaxEval
required. It is advised to NOT to define MaxEval by yourself as default works fine.

The algorithm is smart enough to minimize the number of evaluations required and it converges VERY fast to solution point, so
usually it finds solutions way faster than other strategies.

It is normal that the plugin will skip some evaluations steps, if it detects that solution was found, therefore you should not be
surprised that optimization progress bar may move very fast at some points. The plugin also has ability to increase number of steps
over initially estimated value if it is needed to find the solution. Due to its adaptive nature, the "estimated time left" and/or
"number of steps" displayed by the progress dialog is only "best guess at the time" and may vary during optimization course.

To use CMA-ES optimizer, you just need to add one line to your code:

OptimizerSetEngine("cmae");

This will run the optimization with default settings which are fine for most cases.

It should be noted, as it is the case with many continouos-space search algorithms, that decreasing "step" parameter in Optimize()
funciton calls does not significantly affect optimization times. The only thing that matters is the problem "dimension", i.e. the
number of different parameters (number of optimize function calls). The number of "steps" per parameter can be set without affecting
the optimization time, so use the finest resolution you want. In theory the algorithm should be able to find solution in at most
900*(N+3)*(N+3) backtests where "N" is the dimension. In practice it converges a LOT faster. For example the solution in 3 (N=3)
dimensional parameter space (say 100*100*100 = 1 million exhaustive steps) can be found in as few as 500-900 CMA-ES steps.


Best regards,
Tomasz Janeczko
amibroker.com


------------------------------------

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/