Tomasz, thank you.  I was typing Objective, not objective.  This is case 
sensitive, apparently.

Chris

  ----- Original Message ----- 
  From: Tomasz Janeczko 
  To: [email protected] 
  Sent: Monday, July 07, 2008 1:00 PM
  Subject: Re: [amibroker] Re: Code help please... Optimize with CMAE



  Hello,

  AA, Settings, "Walk-Forward" : type-in manually into "Optimization Target" 
field.

  Best regards,
  Tomasz Janeczko
  amibroker.com
    ----- Original Message ----- 
    From: Chris DePuy 
    To: [email protected] 
    Sent: Monday, July 07, 2008 8:38 PM
    Subject: Re: [amibroker] Re: Code help please... Optimize with CMAE


    Bruce or Tomasz, how do i set the objective function to "objective"?  I am 
using 5.14.  

    Even though the output in the AA window shows objective as a column and it 
computes its value, the Optimization does not seek to the objective called 
"objective" even when I type it into the box in AA/Backtester 
settings/Walk-Forward/Optimization Target.

    Thanks

      ----- Original Message ----- 
      From: Tomasz Janeczko 
      To: [email protected] 
      Sent: Monday, July 07, 2008 9:00 AM
      Subject: Re: [amibroker] Re: Code help please... Optimize with CMAE


      Nice :-)

      Best regards,
      Tomasz Janeczko
      amibroker.com
      ----- Original Message ----- 
      From: "bruce1r" <[EMAIL PROTECTED]>
      To: <[email protected]>
      Sent: Monday, July 07, 2008 5:51 PM
      Subject: [amibroker] Re: Code help please... Optimize with CMAE

      > Dennis -
      > 
      > I don't post here much, but was about to post something else and saw
      > this. Sometimes I can't resist a challenge. It looks like you want
      > to experiment with CMAE as a general purpose function optimizer. 
      > First, I concur with others - the best way is to write a DLL. But, if
      > you just want to play ...
      > 
      > Warning, this is a hack - and hack is not being used in the good way
      > here. But it will allow you to play.
      > 
      > 1. Setup AA to current symbol and set the Optimization target to
      > "objective" in AA Settings / Walk-Forward
      > 
      > 2. Optimize the following code. It is set for CMAE, but you might
      > also find the commented out SPSO interesting. I've also done my best
      > to re-express your objective function to what I think you meant. 
      > Check the comments.
      > _____
      > 
      > //REMEMBER - Set the Optimization target to "objective" in AA Settings
      > / Walk-Forward
      > 
      > //OptimizerSetEngine( "spso" );
      > //OptimizerSetOption( "Runs", 2 );
      > //OptimizerSetOption( "MaxEval", 1000 );
      > 
      > OptimizerSetEngine("cmae");
      > 
      > X = Optimize( "X", 1, 1, 100, 0.1 );
      > Y = Optimize( "Y", 1, 1, 100, 0.1 );
      > 
      > Buy = Sell = Short = Cover = 0;
      > 
      > SetOption("UseCustomBacktestProc", True );
      > 
      > if ( Status( "action" ) == actionPortfolio )
      > {
      > bo = GetBacktesterObject( );
      > bo.Backtest( );
      > // The original goal appeared to be to minimize the error of 100 - X*Y, 
      > // AND to minimize the difference between X and Y. In other words, a 
      > // result of X=10 and Y=10.
      > // Note that this must be expressed as an objective to be maximized.
      > Objective = - abs( 100 - X * Y ) - abs( X - Y );
      > bo.AddCustomMetric( "objective", Objective );
      > }
      > _____
      > 
      > It should be obvious how to setup any parameters and an objective. 
      > Hack doesn't seem strong enough, but it was an interesting diversion.
      > 
      > -- Bruce
      > 
      > 
      > --- In [email protected], "Tomasz Janeczko" <[EMAIL PROTECTED]> 
wrote:
      >>
      >> Hello,
      >> 
      >> In that case just look at the CMAE docs (the read me is inside "cmaes")
      >> If this is too complicated, you may need to use SciLab for example
      >> www.scilab.org
      >> 
      >> 
      >> Best regards,
      >> Tomasz Janeczko
      >> amibroker.com
      >> ----- Original Message ----- 
      >> From: Dennis Brown 
      >> To: [email protected] 
      >> Sent: Monday, July 07, 2008 4:46 PM
      >> Subject: Re: [amibroker] Code help please... Optimize with CMAE
      >> 
      >> 
      >> Thank you both for continuing to provide help.
      >> 
      >> 
      >> I really do not need to solve an exhaustive search for two
      > variables with a simplistic objective. I really need to solve
      > problems that have many variables and a very complex objective formula
      > that is not suitable for an exhaustive search.
      >> 
      >> 
      >> I only provided this simplest of all cases so the the problem
      > would not get in the way of my question of how to connect this simple
      > case to the CMAE engine.
      >> 
      >> 
      >> If that is too complicated to address on this list, then I will
      > have to look elsewhere for help.
      >> 
      >> 
      >> Again, thank you for your responses,
      >> 
      >> 
      >> Dennis
      >> 
      >> 
      >> On Jul 7, 2008, at 9:19 AM, Tomasz Janeczko wrote:
      >> 
      >> 
      >> Hello,
      >> 
      >> Here is the simplest exhaustive search sample:
      >> 
      >> function Objective( x, y ) 
      >> { 
      >> return sin(x) * cos(y); 
      >> } 
      >> 
      >> xmin = 0; 
      >> xmax = 100; 
      >> xstep = 1; 
      >> xbest = Null; 
      >> ymin = 0; 
      >> ymax = 100; 
      >> ystep = 1; 
      >> ybest = Null; 
      >> 
      >> 
      >> best = -1e9; 
      >> 
      >> for( x = xmin; x <= xmax; x += xstep ) 
      >> for( y = ymin; y <= ymax; y += ystep ) 
      >> { 
      >> f = Objective( x, y ); 
      >> 
      >> if( f > best ) 
      >> { 
      >> best = f; 
      >> xbest = x; 
      >> ybest = y; 
      >> } 
      >> } 
      >> 
      >> printf("Best f = %g, at x = %g, y = %g", best, xbest, ybest );
      >> 
      >> Best regards,
      >> Tomasz Janeczko
      >> amibroker.com
      >> ----- Original Message -----
      >> From: Paul Ho
      >> To: [email protected]
      >> Sent: Monday, July 07, 2008 2:29 PM
      >> Subject: RE: [amibroker] Code help please... Optimize with CMAE
      >> 
      >> 
      >> 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]
      >> >> 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.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]>
      >> >> To: <[email protected]>
      >> >> 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
      >> >>>
      >>
      > 
      > 
      > 
      > ------------------------------------
      > 
      > Please note that this group is for discussion between users only.
      > 
      > To get support from AmiBroker please send an e-mail directly to 
      > SUPPORT {at} amibroker.com
      > 
      > For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
      > http://www.amibroker.com/devlog/
      > 
      > For other support material please check also:
      > http://www.amibroker.com/support.html
      > Yahoo! Groups Links
      > 
      > 
      > 



   

Reply via email to