Understanding Optimization: Difference between revisions
From MultiCharts
→Understanding Genetic Algorithm Optimization
(4 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
Different traders use different criteria to define strategy performance. Some traders use the highest net profit, while other traders use the lowest drawdown. MultiCharts lets the trader define his own criteria. | Different traders use different criteria to define strategy performance. Some traders use the highest net profit, while other traders use the lowest drawdown. MultiCharts lets the trader define his own criteria. | ||
Optimization can have detrimental effects if the user searches for the combination of inputs based solely on the best performance over a period of historical data and focuses | Optimization can have detrimental effects if the user searches for the combination of inputs based solely on the best performance over a period of historical data and focuses too much on market conditions that may never occur again. This approach is known as over-optimization or curve-fitting. Performance will not be the same in real trading, since historical patterns are highly unlikely to be repeated. | ||
<br> | <br> | ||
Line 29: | Line 29: | ||
The drawback of the GA approach is that the solution found will be a solution approaching the absolute optimum solution, but not necessarily the absolute optimum solution itself. This drawback, however, is handsomely offset by the processing power and time savings in cases with a large number of possible solutions. | The drawback of the GA approach is that the solution found will be a solution approaching the absolute optimum solution, but not necessarily the absolute optimum solution itself. This drawback, however, is handsomely offset by the processing power and time savings in cases with a large number of possible solutions. | ||
In general, GA's work is primarily about two abstracts: an Individual (or Genome) and an Algorithm (i.e. Genetic Algorithm itself). Each Genome instance represents a single unique inputs combination, while GA itself defines how the evolution should take place. The GA uses a given trading strategy to determine how 'fit' a genome is for survival, e.g. how much Net Profit | In general, GA's work is primarily about two abstracts: an Individual (or Genome) and an Algorithm (i.e. Genetic Algorithm itself). Each Genome instance represents a single unique inputs combination, while GA itself defines how the evolution should take place. The GA uses a given trading strategy to determine how 'fit' a genome is for survival, e.g. how much Net Profit an inputs combination generates in case Net Profit was selected as an Optimization Criteria. | ||
<br>Here are some GA definitions that help in understanding the process: | <br>Here are some GA definitions that help in understanding the process: | ||
Line 57: | Line 57: | ||
# After a number of all possible combinations is determined, an optimal number of individuals is selected. | # After a number of all possible combinations is determined, an optimal number of individuals is selected. | ||
# Each individual is selected at random. These individuals form the first Generation. The optimal number of individuals is automatically placed | # Each individual is selected at random. These individuals form the first Generation. The optimal number of individuals is automatically placed next to the '''Set Population Size''' box and can be changed manually.<br><div style="background-color: #E5F6FF;">Tip: An excessively large Population Size value will result in an increase in calculation time, while an overly small Population Size value will result in a decrease in calculation accuracy.</div><br><div style="background-color: #E3FBE5;">Note: MultiCharts' GA support artificially exclusive population. This means that identical individuals cannot exist inside the same population, and thus the population size can not exceed the total number of input combinations. The population size is constant for each generation.</div> | ||
# The fitness of each individual is evaluated and the least fit individuals discarded. | # The fitness of each individual is evaluated and the least fit individuals discarded. | ||
# A new population of individuals is generated from the remaining members of the previous population by applying the crossover and mutation operations, as well as selection and/or replacement strategies that depend on the GA subtype: <br> | # A new population of individuals is generated from the remaining members of the previous population by applying the crossover and mutation operations, as well as selection and/or replacement strategies that depend on the GA subtype: <br> | ||
Line 68: | Line 68: | ||
#: '''GA Subtypes and Replacement Schemas''' | #: '''GA Subtypes and Replacement Schemas''' | ||
#: GA subtype defines the way that GA creates new individuals and replaces old individuals when creating next generations. | #: GA subtype defines the way that GA creates new individuals and replaces old individuals when creating next generations. | ||
#: GA subtype can be set in the '''Genetic Algorithm Subtype''' | #: GA subtype can be set in the '''Genetic Algorithm Subtype''' section. | ||
#: Two GA subtypes are available: '''Basic''' and '''Incremental'''. | #: Two GA subtypes are available: '''Basic''' and '''Incremental'''. | ||
#: '''Basic''' subtype is the standard so-called “simple genetic algorithm”. This algorithm uses non-overlapping generations and Elitism mode (optional). For each generation, the algorithm creates an entirely new population of individuals (if the '''Elitism''' option is selected, the most fit individuals move on to the next generation).<br> | #: '''Basic''' subtype is the standard so-called “simple genetic algorithm”. This algorithm uses non-overlapping generations and Elitism mode (optional). For each generation, the algorithm creates an entirely new population of individuals (if the '''Elitism''' option is selected, the most fit individuals move on to the next generation).<br> | ||
Line 78: | Line 78: | ||
#: '''Worst''' – least fit individuals are replaced | #: '''Worst''' – least fit individuals are replaced | ||
#: '''Parent''' – parent individuals are replaced | #: '''Parent''' – parent individuals are replaced | ||
#: '''Random''' – individuals are replaced randomly<br> | #: '''Random''' – individuals are replaced randomly<br> | ||
# | # The fitness of each individual is evaluated and the least fit individuals discarded. | ||
# The process is repeated, until the specified degree of convergence or generation number is reached (depends on GA setting selected).<br> | |||
# | |||
#: '''GA Convergence Type''' | #: '''GA Convergence Type''' | ||
#: Genetic Algorithms optimization process has no implicit final result and thus can proceed forever. Therefore, an "ending-point" must be specified, indicating when the optimization process must come to an end. | #: Genetic Algorithms optimization process has no implicit final result and thus can proceed forever. Therefore, an "ending-point" must be specified, indicating when the optimization process must come to an end. | ||
Line 88: | Line 86: | ||
#: '''Terminate-Upon-Generation''' will stop the optimization process once the specified '''Maximum Number of Generations''' is reached. | #: '''Terminate-Upon-Generation''' will stop the optimization process once the specified '''Maximum Number of Generations''' is reached. | ||
#: '''Terminate-Upon-Convergence''' will stop the optimization process once the defined '''Convergence Rate''' is reached, or once the defined '''Maximum Number of Generations''' is reached.<br> | #: '''Terminate-Upon-Convergence''' will stop the optimization process once the defined '''Convergence Rate''' is reached, or once the defined '''Maximum Number of Generations''' is reached.<br> | ||
#: GA optimization "ending-point" criterion is selected in the '''Conversion Type''' | #: GA optimization "ending-point" criterion is selected in the '''Conversion Type''' section. | ||
#: The desired Maximum Number of Generations, Minimum Number of Generations, and Conversion Rate can be set in the corresponding text boxes.<br> | #: The desired Maximum Number of Generations, Minimum Number of Generations, and Conversion Rate can be set in the corresponding text boxes.<br> | ||
#: '''Convergence Rate''' | #: '''Convergence Rate''' | ||
Line 98: | Line 96: | ||
#: P - convergence rate; values used are usually close to 1, with the default value of 0.99. | #: P - convergence rate; values used are usually close to 1, with the default value of 0.99. | ||
#: <div style="background-color: #E3FBE5;">Note: Convergence Rate is not calculated for generations that have an ordinal number less than the defined minimal number of the generations.</div><br> | #: <div style="background-color: #E3FBE5;">Note: Convergence Rate is not calculated for generations that have an ordinal number less than the defined minimal number of the generations.</div><br> | ||
'''Further Reading''' | |||
This is only a brief introduction to genetic algorithms. We recommend that you learn more about GA on the Internet, e.g. [[http://en.wikipedia.org/wiki/Genetic_algorithm Wikipedia]] | |||
<br> | <br> | ||
[[Category:Optimization]] | [[Category:Optimization]] |