I think using an exhaustive search would be a way to start. since you only have 2 parameters, you can also put a little bit of smart in there yourself. for example, if X*Y == 100 or close to that. there can be a constraint in place to restrict the range of Y searched for a particular value of X, and vice versa, Cheers Paul.
_____ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Dennis Brown Sent: Monday, 7 July 2008 10:17 PM To: [email protected] Subject: Re: [amibroker] Code help please... Optimize with CMAE Tomasz and Paul, Thank you for responding. Yes, I also had looked at those sources, but being that I am able to only stumble along with C++, it is Greek to me. I think I would be better off trying to understand how to modify the AmiBroker plugin DLL to call back my AFL objective function. It is still Greek, but at least it is a simpler and meaningful Greek phrase to start with. I would still welcome any specific advice or hints in areas that I am likely to stumble over. Best regards, Dennis > On Jul 7, 2008, at 7:10 AM, Tomasz Janeczko wrote: > > Yes, these sources are actually included in what you already have on > your hard disk > under ADK\CMAE\cmaes > > Best regards, > Tomasz Janeczko > amibroker.com >> ----- Original Message ----- >> From: Paul Ho >> To: [EMAIL PROTECTED] <mailto:amibroker%40yahoogroups.com> ps.com >> Sent: Monday, July 07, 2008 12:22 PM >> Subject: RE: [amibroker] Code help please... Optimize with CMAE >> >> Go to the guy's site where Tomasz download his source code from, >> download his source code, and stare at that one instead, I think >> its a lot closer to what you want. http://www.bionik. <http://www.bionik.tu-berlin.de/user/niko/cmaes_c.tar.gz> tu-berlin.de/user/niko/cmaes_c.tar.gz >> >> >> On Jul 7, 2008, at 4:05 AM, Tomasz Janeczko wrote: >> >> Dennis, >> >> The optimizer plugin architecture uses backtester. You can't go >> without using backtester. >> Call to pfEvaluateFunc invokes full-blown backtest for given >> parameter set. >> >> If you would like to optimize "general purpose" functions without >> using backtester, >> you would need to take sources provided and write your own plugin >> that won't >> use backtesting engine at all. >> >> Best regards, >> Tomasz Janeczko >> amibroker.com >> ----- Original Message ----- >> From: "Dennis Brown" <[EMAIL PROTECTED] <mailto:see3d%40writeme.com> com> >> To: <[EMAIL PROTECTED] <mailto:amibroker%40yahoogroups.com> ps.com> >> Sent: Monday, July 07, 2008 3:30 AM >> Subject: [amibroker] Code help please... Optimize with CMAE >> >> >>> Hello, >>> >>> I have been staring at the CMAE DLL stuff for days and I really need >>> some help to figure out how to use it in a particular way. >>> >>> I would like to use the optimizer in a generic sense to do the >>> following from AFL without using the internal backtester, meaning >>> only >>> AFL in indicator mode: >>> >>> Initialize 2 items: >>> item 1 is X and has a default,min,max,step,current,best values >>> 1,1,1000,1,1,1 >>> item 2 is Y and has a default,min,max,step,current,best values >>> 1,1,1000,1,1,1 >>> >>> The objective is to optimize X and Y so that X*Y==100 >>> >>> objective function in AFL: >>> function Objective() >>> { >>> return 100 - X*Y; >>> } >>> >>> The steps I would need to take as I understand them are: >>> >>> 1. Initialize the X and Y OptimizeItems by calling >>> OptimizerInit( with bunch of arguments) --most arguments are >>> irrelevant to this test. >>> >>> 2. Start the optimizer engine by calling >>> pfEvaluateFunc( pContext ) -- >>> there really is no context that I understand for this test. >>> >>> 3. The DLL calls back for the objective AFL function >>> >>> 4. It runs step 3 a number of times to find the solution of X=Y=10 >>> >>> 5. OptimizerFinalize(same bunch of arguments as step 1) >>> >>> Of course I would prefer that step 3 is AFL calling the optimizer >>> DLL >>> instead (simple mode), but I did not think that is how the CMAE >>> works. >>> >>> Anyway, if I could get this simple case to work, I am sure I could >>> figure out how do do much more complicated cases after that on my >>> own. >>> >>> Of course if there is no way to use the existing DLL without >>> changing >>> it, I would like to know that also. I should be able to make modest >>> changes to the DLL myself. >>> >>> Please any hints or AFL code is appreciated. >>> >>> Best regards, >>> Dennis >>>
