Product Features
Optimize your Prediction

The NeuroShell Trader Professional and NeuroShell DayTrader Professional include a genetic algorithm optimizer that can select inputs (indicators) for your model, select parameters for those indicators, or select the buy/sell thresholds for the trading rules used to evaluate the success of the neural network. Genetic algorithms offer a more intelligent search for optimal combinations compared to exhaustive searches, with the result being faster and more effective searches when genetic algorithms are used.

Implementation in the NeuroShell Trader Pro and DayTrader

  1. Input Selection - The genetic algorithm selects which of the inputs you have chosen are most useful. Only the ones it decides are best are used in the final training of the neural network prediction. Note that the usefulness of an input is evaluated in conjunction with all other inputs. In other words, the GA is really finding an optimum SET of inputs, not inputs that are necessarily useful individually. These inputs do not have to be indicators built by the Trader. They can be any data stream that you load. The GA will search through combinations looking for the set of inputs which optimizes the training criteria (e.g., maximize profit, minimize error, etc.). No parameters of any of the inputs that are indicators are modified or optimized; they are used just as you have specified them.

  2. Parameter Selection - In this mode, the genetic algorithm will use all of the inputs you have chosen, but it will optimize the parameters of all indicators you have used as inputs, even if they are embedded in other indicators. In other words, if one of your inputs is the 10 period lag of the 5 period momentum of the close, the genetic algorithm may change the periods to 6 and 3 respectively if the resulting indicator works best. (You can even tell it to select among open, high, low, and close). Note that the evaluation works in combination with the other optimized indicators and other inputs. In other words, it is possible that the selection of parameters for an indicator does not produce an indicator that is useful by itself. It may only be useful in combination with the entire set of optimized inputs.

    Note: One of the training options allows the Trader to look for the combination of indicators and parameters that work the best.

  3. Buy/Sell thresholds for neural nets - If you have selected a trading position that requires trades, you can select whether you want the optimization process to find the optimal trading rules or to use the trading rules you specify. The trading rules are necessary to compute the performance on the neural network.

  4. Sphere of influence - If you are optimizing a chart with multiple chart pages in it (multiple ticker symbols), then you can chose whether you want to optimize one model that works for all ticker symbols, or individual optimizations for each ticker symbol. You can thus decide if one shoe fits all, or if each symbol needs individualized shoes, so to speak.

The following are the optimization objectives available for optimizing neural network inputs and thresholds in the NeuroShell Trader Professional and DayTrader Professional. These functions are sometimes called objective functions or fitness functions:

  • Maximize Return on Trades
  • Maximize Return on Account
  • Maximize #Winners - #Losers
  • Maximize Net Profit
  • Maximize ReturnOnAccount*EquityCurveCorrelation
  • Maximize (#Winners - #Losers) * Profit
  • Minimize Max Drawdown
  • Maximize #Winners / #Losers
  • Maximize (#Winners / #Losers) * Profit
  • Maximize Average Bar Profit
  • Maximize Ratio Gross Profit / Loss
  • Maximize Sharpe Ratio by Trade
  • Maximize Ratio Net Profit / StndDev Profit
  • Maximize Ratio Net*Avg Profit / StndDev Profit
  • Maximize Ratio Net Profit / Max Drawdown
  • Minimize Max Open Trade Drawdown
  • Maximize Average Trade Profit
  • Maximize Percent Profitable Trades
  • Minimize error
  • Minimize mean squared error
  • Maximize correlation
  • Maximize % correct sign
  • Maximize R-squared

Why Use Genetic Algorithms?
There are many opportunities for optimization in technical analysis. Prior to the NeuroShell Trader Professional, some trading systems had optimizers, but the optimization technique used was simple "exhaustive search", meaning that every possible combination was tried to see what was the best one. This is a very accurate approach, since you are bound to find the best combination of variables - eventually. However, it is a very inefficient approach, because whenever there are more than a few thousand combinations, it takes too long to try them all. That is why users of exhaustive search optimizers tend to limit the number of variables they use, or tend to limit the number of values these variables can take.

The genetic algorithm, by contrast, does not try every possible combination. It attempts instead to intelligently get closer and closer to the best solution. Therefore, far more variables can be utilized, and you can allow all values of a variable. Optimization can still take a good deal of time if you give a GA a fair number of variables, but it will be doing much more work in that amount of time.

More efficient optimizers than exhaustive search optimizers are in use. If they are not genetic algorithms, however, they are most likely only searching one section of the search space at a time. Genetic algorithms are searching dozens or hundreds of parts of the search space simultaneously. This means they are impervious to becoming stuck in "local minima" as the others quite often do. (Local minima are decent solutions that the optimizer can never get out of in order to find better solutions.)

How Does a Genetic Algorithm Work?
A genetic algorithm solves optimization problems by creating a population or group of possible solutions to the problem. The individuals in this population will carry chromosomes that are the values of variables of the problem.

The genetic algorithm actually solves your problem by allowing the less fit individuals in the population to die (peacefully) and selectively breeding the most fit individuals (the ones that solve the problem best). This process is called selection, as in selection of the fittest. The genetic algorithm will take two fit individuals and mate them (a process called crossover). The offspring of the mated pair will receive some of the characteristics of the mother, and some of the father.

In nature, offspring often have some slight abnormalities, called mutations. Usually these mutations are disabling and inhibit the ability of the children to survive, but once in a while they improve the fitness of the individual (like toes stuck together in a web-like fashion). The genetic algorithm similarly occasionally causes mutations in its populations by randomly changing the value of a variable.

After the genetic algorithm mates fit individuals and mutates some, the population undergoes a generation change. The population will then consist of offspring plus a few of the older individuals, which the genetic algorithm allows to survive to the next generation because they are the most fit in the population, and we will want to keep them breeding. These most fit individuals are called elite individuals.

After dozens or even hundreds of "generations", a population eventually emerges wherein the individuals will solve the problem very well. In fact, the most fit (elite) individual will be an optimum or close to optimum solution.

The processes of selection, crossover, and mutation are called genetic operators.

Advanced Neural Network Software for Financial Forecasting and Stock Prediction

Ward Systems Group, Inc
Executive Park West
5 Hillcrest Drive
Frederick, MD  21703

Phone : (301) 662-7950
Fax : (301) 663-9920
Email : sales@wardsystems.com

Skype (Sales Only) : wardsystems | wardsystems2


Copyright© 1997- 2010 Ward Systems Group, Inc. All rights reserved
Copyright Information
Privacy Statement