Optimize

manojborle

Well-Known Member
#2
OPTIMIZE
- define optimization variable Trading system toolbox
(AFL 1.7)


SYNTAX optimize( "description", default, min , max, step )
RETURNS NUMBER
FUNCTION Defines optimization process parameters. With normal backtesting, scanning, exploration and comentary modes the optimize function returns default value, so the above function call returns default; In optimization mode optimize function returns successive values from min to max (inclusively) with step stepping. "description" is a string that is used to identify the optimization variable and is displayed as a column name in the optimization result list. default is a default value that optimize function returns in exploration, indicator, commentary, scan and normal back test modes min is a minimum value of the variable being optimized max is a maximum value of the variable being optimized step is an interval used for increasing the value from min to max

EXAMPLE variable = optimize("my optimization var", 9, 2, 20, 1 );
SEE ALSO

Comments:
Herman van den Bergen

2003-06-09 05:23:31 You can Optimize parameters with custom number series by using the numbers generated by the Optimize() function as an index to access numbers in a custom array. Here is an example using a custom array FB[] of Fibonacci numbers:

FB[0] = 0.0; FB[1] = 23.6; FB[2] = 38.2; FB[3] = 50.0; FB[4] = 61.8; FB[5] = 100; FB[6] = 161.8; FB[7] = 261.8; FB[8] = 423.6;
FBindex = Optimize("FBindex",0,0,8,1);
FibNum = FB[FBindex];
... place your Code using FibNum here ...
Herman van den Bergen

2003-07-20 17:26:08 You can refresh your Equity chart after each Optimization step and observe (like a slide show) how the linearity of your Equity curve is effected by adding these two lines to the very end of your code:

AB = CreateObject("Broker.Application");
AB.RefreshAll();

Important note: Do not use in commentary, interpretation, or indicator builder because it will cause loop. (Thanks for the tip TJ!)

Graham Kavanagh

2004-08-21 23:31:39 When optimising for 2 or more variables make sure you have different names for each variable.
eg
x = Optimize("Short",5,5,10,1);
y = Optimize("Short",15,25,55,1);

I made mistake of copy/paste and did not change the optimize name (as above) within the brackets and got all zeroes as results.

This below gets results
x = Optimize("Short",5,5,10,1);
y = Optimize("Long",15,25,55,1);

Graham
Tomasz Janeczko

2006-12-12 11:30:18 Some asked for function that combines Param() and Optimize(). Here it is:

function ParamOptimize( pname, defaultval, minv, maxv, step )
{
return Optimize( pname,
Param( pname, defaultval, minv, maxv, step ),
minv, maxv, step );
}
 

manojborle

Well-Known Member
#4
In simple way , the function optimizes the parameters given to your requirement in backtesting such as CAR/MDD etc
 

manojborle

Well-Known Member
#6
In simple way,

what to write where to write nd when to use optimize tab.........
like if you are using a moving average crossover system for your buy and sell decisions.

then with optimize function you can decide which values of the moving averages gives the best results.
 

boarders

Well-Known Member
#7
for example if you have a variable which is adjusted using param ex:

param("periods",1,1,20,1);

change the word param to optimize and run the afl through optimize button of automatic analyser after setting the from date to date:

optimize("periods",1,1,20,1);

then you will see a report with all the analysis of results for each value of the period setting. after going through the report, select the ideal value you would like for the periods, let us as an example say 8 and change the word optimize back to param and the default value to 8 and use the afl in real time.

param("periods",8,1,20,1);
 

Similar threads