[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Sample Code For Optimizing In An Exploration



PureBytes Links

Trading Reference Links




Thank 
you Tomasz!!
<SPAN 
class=171254016-13042003> 
<SPAN 
class=171254016-13042003>d

  
  <FONT 
  face=Tahoma size=2>-----Original Message-----From: Tomasz Janeczko 
  [mailto:amibroker@xxxxxx] Sent: Sunday, April 13, 2003 12:15 
  PMTo: amibroker@xxxxxxxxxxxxxxxSubject: Re: AmiBroker 
  4.31.1 BETA released, was [amibroker] AmiBroker 4.31.0 BETA 
  released
  Dale,
   
  Yes it is possible to perform optimization using for loop 
  inside exploration code:
   
  Sample code follows, it runs optimization inside for loop 
  and reports only THE BEST
  result. It should be run usign "EXPLORE". The code in fact 
  runs several
  backtests inside 'for' loop and notes the best result and 
  best parameter range.
  
  bestequity = 0;bestrange 
  = 0;<FONT face="Courier New" 
  color=#008000 size=2>
  // optimization loop
  for( range = <FONT 
  color=#ff00ff>12; range < 40; range ++ 
  ){
    Buy = Cross( 
  Close, EMA( Close, range ) 
  );
    Sell = Cross( <FONT 
  color=#0000ff>EMA( Close, range ), Close );
   L<FONT 
  face="Courier New">e = <FONT 
  face="Courier New" color=#0000ff>LastValue<FONT 
  face="Courier New">( Equity()<FONT 
  face="Courier New"> );
    if( L<FONT 
  face="Courier New">e > bestequity )  { <FONT 
  face="Courier New">   bestequity = <FONT 
  face="Courier New">L<FONT 
  face="Courier New">e;   bestrange = 
  range; }}
  range = bestrange;
  Buy = <FONT 
  color=#0000ff>Cross( Close, EMA( 
  Close, range ) );
  Sell = <FONT 
  color=#0000ff>Cross( EMA( Close, 
  range ), Close );
  F<FONT 
  size=2>ilter = <FONT 
  face="Courier New" color=#0000ff>BarIndex() == 
  BarCount - 1<FONT 
  face="Courier New">;
  AddColumn( 
  bestrange, "Best 
  range" );<FONT 
  face="Courier New" color=#0000ff>
  AddColumn( 
  Equity<FONT 
  face="Courier New">(), "Best 
  Equity" );
   
   
   
  Best regards,Tomasz Janeczkoamibroker.com
  <BLOCKQUOTE 
  >
    ----- Original Message ----- 
    <DIV 
    >From: 
    dingo 
    To: <A title=amibroker@xxxxxxxxxxxxxxx 
    href="">amibroker@xxxxxxxxxxxxxxx 
    Sent: Sunday, April 13, 2003 5:20 
    PM
    Subject: RE: AmiBroker 4.31.1 BETA 
    released, was [amibroker] AmiBroker 4.31.0 BETA released
    
    <FONT face=Arial color=#0000ff 
    size=2>Bodacious Binary TJ!
    <FONT face=Arial color=#0000ff 
    size=2> 
    <FONT face=Arial color=#0000ff 
    size=2>After seeing how quiet you've been these last few weeks I started 
    getting excited... and I was happily rewared this am when I saw your 
    message!  
    <FONT face=Arial color=#0000ff 
    size=2> 
    In 
    trying to get my thinking together on this: is it now possible to simulate 
    an optimization when running an Exploration by using the FOR 
    construct?  What I'm trying to do is get some extra columns that 
    contain calculated data during an Optimization. SInce you can't use the 
    Addcolumn in the Optimizer I've been wondering how I might go about this 
    using the FOR (or even the While).  If you have a few moments could you 
    illustrate how this might be done (if possible) using a simple 
    example?
    <FONT face=Arial color=#0000ff 
    size=2> 
    <FONT face=Arial color=#0000ff 
    size=2>d
    <FONT face=Arial color=#0000ff 
    size=2> 
    
      
      <FONT 
      face=Tahoma size=2>-----Original Message-----From: Tomasz 
      Janeczko [mailto:amibroker@xxxxxx] Sent: Sunday, April 13, 2003 
      10:07 AMTo: amibroker@xxxxxxxxxxxxxxxSubject: 
      AmiBroker 4.31.1 BETA released, was [amibroker] AmiBroker 4.31.0 BETA 
      released
      
      Hello,
       
      A new version 4.31.1 BETA is available now
      for download from:
      <A 
      href="">http://www.amibroker.com/members/bin/ab4311beta.exe
       
      It fixes bug introduced in 4.31.0 that caused no text 
      output
      in commentary/interpretation window.
       
      Best regards,Tomasz Janeczkoamibroker.com
      <BLOCKQUOTE 
      >
        ----- Original Message ----- 
        <DIV 
        >From: 
        Tomasz 
        Janeczko 
        To: <A 
        title=amibroker@xxxxxxxxxxxxxxx 
        href="">amibroker@xxxxxxxxxxxxxxx 
        
        Sent: Sunday, April 13, 2003 11:07 
        AM
        Subject: [amibroker] AmiBroker 
        4.31.0 BETA released
        
        Hello,
         
        A new beta version (4.31.0) of AmiBroker has just been 
        released.
         
        It is available for registered users only from the 
        members area at:
        <A 
        href="">http://www.amibroker.com/members/bin/ab4310beta.exe
         
        If you forgot your user name / password to the members 
        area
        you can use automatic reminder service at: <A 
        href="">http://www.amibroker.com/login.html
         
        This release brings huge improvement to AFL: 
        
        for and while loops 
        and if-else flow control statements.
         
        Native AFL loops run 2..3 times faster than JScript 
        (according to my
        preliminary tests on arrays with 1000-5000 
        bars)
         
        For more details and example code please read the 
        following "READ ME" text.
         
        NOTE: from now on all beta releases will be available 
        to registered
        users only (in member area).
         
        Best regards,Tomasz 
        Janeczkoamibroker.com
         
         
        
        AmiBroker 4.31.0 Beta Read Me
        April 13, 2003 10:38 
        
        THIS IS AN EARLY BETA VERSION OF THE SOFTWARE. EXPECT BUGS 
        !!!
        AGAIN: THIS IS AN EARLY BETA VERSION OF THE SOFTWARE. EXPECT 
        BUGS !!!
        Backup your data files and entire AmiBroker 
        folder first!
        INSTALLATION INSTRUCTIONS
        IMPORTANT: This archive is update-only. You have to install 
        full version 4.30 first. 
        Just run the installer and follow the instructions. 
        Then run AmiBroker. You should see "AmiBroker 4.31.0 beta" written in 
        the About box.
        CHANGES FOR 
        VERSION 4.31.0 (as compared to 4.30.0)
        
          Workspace window uses "icon font" set in the Windows settings 
          instead of hard coded Tahoma 8 
          for better readability and ClearType(tm) compatibility on WinXP, 
          all dialog windows use now 'MS Shell Dlg' face name that maps to 
          standard MS Sans Serif on Win 9x/Me/NT and Tahoma on Win 2K and XP. 
          rewritten AFL parser, now formula is parsed and coverted to syntax 
          tree and then interpreted. This would allow further improvements 
          including compilation. This allowed also to add loops/if-else 
          statements. 
          implemented IF/ELSE statement, WHILE and FOR loops:The same 
          basic 'for' loop in AFL is 2..3 times faster than in JScriptSyntax 
          follows C++/JScript style: 
          while( conditional_expression ) statement;
          for( initializer_part; conditional_expression; iterator_part ) 
          statement;
          if( conditional_expression ) statement;
          if( conditional_expression ) 
          statement;elsestatement;
          
          implemented compound statements: these are blocks of statements 
          enclosedin opening and closing curly brace 
          {statement1;statement2;...statementN;}
          compound statement can appear anywhere when simple statement 
          can.
          For example:
          i = 10;while( i < 20 ){Plot( MA( Close, i ), 
          "MA" + WriteVal( i, 0 ), colorBlack + i );i = i + 
          1;}
          
          implemented C-style postfix and prefix increment/decrement 
          operators
          i = 10;WriteIf( i++ );WriteIf( ++i );WriteIf( i 
          );
          
          implemented array element access (subscript) operator []:
          WriteVal( Close[ 0 ] ); // prints the first bar of close 
          array
          /* a sample low-level implementation of exponential moving 
          average in AFL */
          myema[ 0 ] = Close[ 0 ];
          for( i = 1; i < BarCount; i++ ){myema[ i ] = 0.1 * 
          Close[ i ] + 0.9 * myema[ i - 1 ];}
          
          added built-in constant 'BarCount' that returns number of bars 
          available in arrays (the number of elements of array)When QuickAFL 
          is turned on it may be less than true number of bars because QuickAFL 
          feature attempts to use only visible bars (and few before). You can 
          control how many bars the formula requires using SetBarsRequired() 
          function
          
          implemented infinite-loop protection. Nice if you forgot to 
          increment counter variable in 'for' loop :-)
          
          tab key now works without need to press ALT/CTRL in AFL editors
          
          added C-like synonyms for logical ADD/OR/NOT: &&, ||, ! 

          /* a sample low-level implementation of Profit-target 
          stop in AFL: */
          Buy = Cross( MACD(), Signal() );
          priceatbuy=0;
          for( i = 0; i < BarCount; i++ 
          ){     if( priceatbuy == 0 && 
          Buy[ i ] )      priceatbuy = BuyPrice[ i 
          ];
               if( priceatbuy > 0 
          && SellPrice[ i ] > 1.1 * priceatbuy 
          )     {       Sell[ 
          i ] = 1;       SellPrice[ i ] = 
          1.1 * 
          priceatbuy;       priceatbuy = 
          0;     }     else       Sell[ 
          i ] = 0;}
          /* sample EMA rainbow */
          Plot( Close, "Price", colorBlack, styleCandle );for( 
          Range = 15; Range < 100; Range++ )   Plot( EMA( 
          Close, Range ), "MA"+WriteVal(Range,0), colorRose + Range % 8, 
          styleNoLabel );
          
        HOW TO REPORT BUGS
        If you experience any problem with this beta version please send 
        detailed description of the problem (especially the steps needed to 
        reproduce it) to <A 
        href="">bugs@xxxxxxxxxxxxx 
      Send BUG REPORTS to 
      bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
      suggest@xxxxxxxxxxxxx-----------------------------------------Post 
      AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: 
      <A 
      href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
      group FAQ at: <A 
      href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
      Your use of Yahoo! Groups is subject to the <A 
      href="">Yahoo! Terms of Service. 
      Send BUG REPORTS to bugs@xxxxxxxxxxxxxSend 
    SUGGESTIONS to 
    suggest@xxxxxxxxxxxxx-----------------------------------------Post 
    AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: 
    <A 
    href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
    group FAQ at: <A 
    href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
    Your use of Yahoo! Groups is subject to the <A 
    href="">Yahoo! Terms of Service. 
    Send 
  BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
  suggest@xxxxxxxxxxxxx-----------------------------------------Post 
  AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A 
  href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
  group FAQ at: <A 
  href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
  Your use of Yahoo! Groups is subject to the <A 
  href="">Yahoo! Terms of Service. 







Yahoo! Groups Sponsor


  ADVERTISEMENT









Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html



Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.