Performing Optimization

From MultiCharts
Jump to navigation Jump to search

Once a strategy has been applied to a chart, strategy optimization can be performed.


Running Exhaustive Search

Optimization is performed from the Format Objects window:

To perform Exhaustive Search optimization:

  1. Open the Format Objects window.

    To open the Format Objects window, right-click on an empty area of the chart and then click Format Signals.

    The Format Objects window can also be opened by one of the following methods:
      - Select Format in the main menu and click Signal.
      - Double-click any one of the signal's labels on the chart.
      - Position the mouse pointer over any one of the signal's labels on the chart; once the Pointer Pointer.png changes into a Hand Hand.png, right-click the label and then click Format Signals.

  2. Select the Signals tab.
  3. Click the Optimize button.
  4. In the Select Optimization Method dialog box that appears, select Exhaustive Search.
  5. In the Exhaustive Search Properties window that opens, select the Optimizable Inputs tab.
  6. Check/uncheck the check box to the left of the signal name and input name to enable/disable optimization for this input or check the check box to the left of the Signal Name column heading to enable optimization for all inputs (at least one input should be selected to perform optimization).
  7. The Current Value column shows input values that are currently selected for the signals applied on the chart.
  8. In the Start Value column, enter the desired starting values for each of the inputs.
  9. In the End Value column, enter the desired ending values for each of the inputs.
  10. In the Step column, enter the desired step size, for each of the inputs.
  11. The Step Count column shows current amount of steps for an input.
  12. Select the Optimization Criteria tab.
  13. Select the Use Limitation checkbox to limit the output to a defined number of the best results; unselect the checkbox to list all the results in the optimization report.
  14. When Use Limitation checkbox is checked Optimization dialog window shows current best results for selected сriteria during optimization.
  15. Enter the desired number of best results in the Show N best results box.
  16. Select the best results criteria in the best results for list box.
  17. Select criteria:
    1. Select Standard Criteria.
    2. Select the criteria from the drop-down list. Read more about Standard Criteria.
    or:
    1. Select Custom Criteria.
    2. Click Edit... button.
    3. Write the script for the custom criteria. Read more about Custom Criteria.
    4. Click OK.
  18. Select Ascending or Descending option to sort the output in ascending or descending order, respectively.
  19. Click OK to run the optimization and generate the Optimization Report.



Running Genetic Algorithm Search

Note: For detailed information on Genetic Algorithm properties, see Understanding Genetic Algorithm Optimization

Optimization is performed from the Format Objects window:

To perform Genetic Algorithm optimization:

  1. Open the Format Objects window.

    To open the Format Objects window, right-click on an empty area of the chart and then click Format Signals.

    The Format Objects window can also be opened by one of the following methods:
      - Select Format in the main menu and click Signal.
      - Double-click any one of the signal's labels on the chart.
      - Position the mouse pointer over any one of the signal's labels on the chart; once the Pointer Pointer.png changes into a Hand Hand.png, right-click the label and then click Format Signals.

  2. Select the Signals tab.
  3. Click the Optimize button.
  4. In the Select Optimization Method dialog box that appears, select Genetic Algorithm.
  5. In the Genetic Algorithm Properties window that opens, select the Optimizable Inputs tab.
  6. Check/uncheck the check box to the left of the signal name and input name to enable/disable optimization for this input or check the check box to the left of the Signal Name column heading to enable optimization for all inputs (at least one input should be selected to perform optimization).
  7. The Current Value column shows input values that are currently selected for the signals applied on the chart.
  8. In the Start Value column, enter the desired starting values for each of the inputs.
  9. In the End Value column, enter the desired ending values for each of the inputs.
  10. In the Step column, enter the desired step size, for each of the inputs.
  11. The Step Count column shows current amount of steps for an input.
  12. Select the Algorithm-specific Properties tab.
  13. Select criteria:
    1. Select Standard Criteria.
    2. Select the criteria from the drop-down list. Read more about Standard Criteria.
    or:
    1. Select Custom Criteria.
    2. Click Edit... button.
    3. Write the script for the custom criteria. Read more about Custom Criteria.
    4. Click OK.
  14. Select Ascending or Descending option to sort the output in ascending or descending order, respectively.
  15. An optimum population size value is automatically placed into the Population Size box; if a different value is desired, enter the value into the box.
  16. In the Crossover Probability box, enter the desired crossover probability; value range is 0.95-0.99, with a default of 0.95.
  17. In the Mutation Probability box, enter the desired mutation probability; value range is 0.01-0.05, with a default of 0.05.
  18. In the Convergence Type drop-down list, select Number of Generations or Proximal Convergence.
  19. In the Maximum Number of Generations box, enter the desired maximum number of generations.
  20. If Proximal Convergence was selected, enter the desired minimum number of generations and convergence rate into the respective boxes. A value, approaching 1 is usually selected for the convergence rate; the default value is 0.990000.
  21. In the Genetic Algorithm Subtype drop-down list, select Basic or Incremental algorithm subtype.
  22. If Basic algorithm subtype was selected, select Yes or No for Use Elitism option.
  23. If Incremental algorithm subtype was selected, select the Replacement Scheme and Offspring Number (number of “children”).
  24. Click OK to run the optimization and generate the Optimization Report.
  25. Optimization dialogue window shows Average fitness value for current population during optimization.


Standard Criteria

Standard Criteria lets the user select a criterion from a pre-defined list.

For example, if the user selects Net Profit, the optimization will find the parameters that generate the highest Net Profit.


Custom Criteria

Custom Criteria lets the user create his own criteria. Instead of choosing from a pre-defined list like in Standard Criteria, the user can script his own criteria. E.g., suppose the user wants to find the parameters that maximize the Net Profit / Max Drawdown ratio. This ratio isn't pre-defined under Standard Criteria, so it won't be in the drop-down list. However, this ratio can be created using Custom Criteria.

It is also possible to add additional criteria such as number of trades and winning percentage.

E.g., it is possible to specify: the result have more than 300 trades and a winning percentage that's greater than 50%.


The scripting language is JavaScript.


Code Example

The code below creates the Net Profit / Max Drawdown ratio:

      
if (StrategyPerformance.MaxStrategyDrawDown != 0)       
{       
return StrategyPerformance.NetProfit / (-      
StrategyPerformance.MaxStrategyDrawDown);       
}


Besides NetProfit and MaxStrategyDrawdown, there are many other properties that can be referenced. The table below shows the available properties.
For example, to reference the number of trades, simply use StrategyPerformance.TotalTrades. To reference winning percentage, simply use StrategyPerformance.PercentProfitable.

Name of property in the object StrategyPerformance Description Available in MultiCharts Available in Portfolio Optimization
NetProfit Net Profit Yes Yes
GrossProfit Gross Profit Yes Yes
Gross Loss Gross Loss Yes Yes
TotalTrades Total Trades Yes Yes
Percent Profitable % Profitable Yes Yes
Winning Trades Winning Trades Yes Yes
LosingTrades Losing Trades Yes Yes
AvgTrade Avg Trade Yes No
AvgWinningTrade Avg Winning Trade Yes No
AvgLosingTrade Avg Losing Trade Yes No
WinLossRatio Win/Loss Ratio Yes No
MaxConsecWinners Max Consecutive Winners Yes No
MaxConsecLosers Max Consecutive Losers Yes No
AvgBarsInWinningTrades Avg Bars in Winner Yes No
AvgBarsInLosingTrades Avg Bars in Loser Yes No
MaxStrategyDrawDown Max Intraday Drawdown Yes Yes
ProfitFactor Profit Factor Yes No
ReturnOnAccount Return on Account Yes No