What is a Genetic Optimization?
A genetic optimization is like running a TradeStation back testing optimization on a thousand Cray supercomputer computers. Simply put, it's a smart search. TradeStation's current algorithm, the exhaustive search, evaluates every possible combination of strategy inputs and determines the best of them all. It is thorough, and time consuming. A genetic algorithm searches in a much more efficient manner; it samples many different combinations at random to find a set of promising inputs, and then modifies those combinations using methods that mimic biological evolution to determine optimum solutions. When used on problems that involve a great number of combinations, genetic searches are many orders of magnitude faster than exhaustive searches, with results that are less likely to be curve fitted.
How can Optimax be that fast?
Optimax employs genetic algorithms to speed up processing. These work by eliminating calculations that have the lowest probability of being useful. Using this method, the increase in optimization speed can be dramatic.
Genetic algorithms work smarter than exhaustive searches. Instead of checking every possible input combination, genetic algorithms quickly narrow down the desired combinations, finding and focusing on the areas that are most profitable and most stable, enabling you to optimize your strategies in a fraction of the time. With Optimax it is practical to optimize many inputs and combinations; 10, 25, or even 100 inputs resulting in millions of combinations can be optimized in a few hours.
For example, in a test case we optimized a strategy with 16 inputs having a possible 5.184E+21 combinations. On a 2.8GHz system our test strategy took approximately 4.3 seconds per iteration. Using a genetic search that converged in 50 generations and having 100 individuals in each generation, the optimization provided satisfactory results in 6 hours. With these same parameters, an exhaustive search would take 706,849,314,984,576 years, or approximately 706 trillion years.
If you could run TradeStation on a top-of-the-line Cray X1 supercomputer, since TradeStation doesn't support multiple CPUs, the best you could do is use is to use a single processor which would run at 11.55 gigaflops (billions of calculations per second.) The Cray would process the optimization 4,125 times faster than our 2.8GHz machine, and the optimization would still take about 171 billion years.
If you could afford a Cray, you could probably afford to pay someone to re-write every new version of your strategy in C. If you did this, it would run approximately 1,000 times faster (based on our own experiences,) and could be written to take advantage of the Cray's multiple CPUs. Running your C program on a Cray X1 maxed out at 60 processors the optimization would run about 247.5 million times faster (4125 * 1000 * 60.) Despite this astronomical gain, your optimization would still take 2.8 million years.
It is easy to see from these numbers that the speed and power of Optimax are unmatchable, assuming of course you are happy with the results of the optimization compared to those of an exhaustive search. Considering the fantastic gain in speed, you might be tempted settle for a trade-off in optimization results, but with Optimax you don't have to. In fact, the results obtained are in our opinion, better than those obtained using an exhaustive search because Optimax is much less likely to focus on combinations of parameters in unstable regions; exhaustive searches have no knowledge of near-neighbour performance. In fact, you must spend additional time after an exhaustive search is complete to validate that the results set is stable and the combination is not curve-fitted. With Optimax, a curve-fitted result is much less likely because of the nature of the search algorithm.
If this is so much better, why hasn't TradeStation done it already?
I don't know.
How do I use Optimax?
Optimax runs alongside TradeStation. You run them both, and they communicate with each other via functions that you call from TradeStation.
Strategies must be adapted for use with Optimax. They must call DLL functions at appropriate times to get inputs from and send results to Optimax.