| 
 PureBytes Links 
Trading Reference Links 
 | 
| 
 Hi Graham, 
  
I also made a request to fix existing things a 
while back. But I would not call the new beta fluff - it is a pretty nice 
improvement once you get it all figured out. 
  
Steve 
  ----- Original Message -----  
  
  
  Sent: Saturday, October 22, 2005 8:30 
  PM 
  Subject: Re: [amibroker] AmiBroker 4.74.1 
  BETA released 
  
  Hate to be odd one in the crowd but feel fixing existing things 
  that do not work correctly should take precedence over fluff and stuff
  
  On 10/23/05, Steve 
  Dugas <sjdugas@xxxxxxxxxxx> 
  wrote: 
  
    Hello TJ, 
      
    After about 4 hours of playing with every 
    option I could find, I have to say this is about the coolest GUI that I have 
    ever used !! 
      
    I have written a disclaimer for you, 
     to include in future versions: 
      
    "Warning: User Interface is addictive. I cannot 
    be responsible if playing with it causes you to forget about making money ! 
    "       8 - ) 
      
    Awesome Beta !! 
      
    Steve 
    
      ----- Original Message -----  
      
      
      Sent: Saturday, October 22, 2005 
      12:53 PM 
      Subject: [amibroker] AmiBroker 4.74.1 
      BETA released 
         
      
      Hello, 
        
      
      
      
      
      
      A new beta version (4.74.1) of AmiBroker has 
      just been released. 
        
         
       Highlight of this release is new 
      customizable user-interface, featuring 
      
      
        - Tear-Off Tabs 
        
 - Nested docking pane grouping 
        
 - WYSIWYG docking 
        
 - sliding auto-hide pinnable windows 
        
 - modern "Whidbey" look 
        
 - Tear-Off menus and toolbars 
        
 - Add/copy/Delete/Modify/drag-drop commands 
        
 - User-defined toolbars
  For a little video 
      presentation see:  http://www.amibroker.com/video/uicustomize.htmlNote: 
      toolbar and keyboard customizations made in old versions need to be 
      re-done because they can not be imported by new system due to fundamental 
      differences (I am sorry about that)    
        
      The only change to 4.74.0 is minor fix for progress bar display 
      during exploration. 
         Best 
      regards, Tomasz Janeczko amibroker.com 
        
      
      AmiBroker 4.74.1 Beta Read Me
      October 22, 2005 18:46  
      THIS IS A BETA VERSION OF THE SOFTWARE. EXPECT BUGS 
      !!! 
      Backup your data files and entire AmiBroker 
      folder first!  IMPORTANT NOTE: This version uses new system to store 
      indicators (in separate files), so old versions will not automatically 
      "see" indicators created with new version.  
      INSTALLATION INSTRUCTIONS 
      IMPORTANT: This archive is update-only. You have to install full 
      version 4.70 first.  
      Just run the installer and follow the instructions.  
      Then run AmiBroker. You should see "AmiBroker 4.74.1 beta" written in 
      the About box. 
      Many thanks to all providing detailed descriptions how to reproduce 
      given bug.
  
      See CHANGE LOG below for detailed list of changes.
  
      CHANGE LOG 
      CHANGES FOR VERSION 4.74.1 (as compared to 4.74.0) 
      
        - Fixed incorrect message displayed in the progress window during some 
        longer explorations 
  
      CHANGES FOR VERSION 4.74.0 (as compared to 4.73.0) 
      
        - New user interface: fully user-customizable advanced docking 
        panes/toolbars/menus.
  New UI features: 
        
          - Tear-Off Tabs 
          
 - Nested docking pane grouping 
          
 - WYSIWYG docking 
          
 - sliding auto-hide pinnable windows 
          
 - modern "Whidbey" look 
          
 - Tear-Off menus and toolbars 
          
 - Add/copy/Delete/Modify/drag-drop commands 
          
 - User-defined toolbars
  
  For a little video 
        presentation see: http://www.amibroker.com/video/uicustomize.htmlNote: 
        toolbar and keyboard customizations made in old versions need to be 
        re-done because they can not be imported by new system due to 
        fundamental differences (I am sorry about that)] 
  
         - GroupID(), IndustryID(), SectorID, MarketID(), InWatchList(), 
        IsIndex() and IsContinuous() functions are now affected by 
        SetForeign
  
         - Removed debug messages cluttering DebugView output (that appeared in 
        4.73)
  
         - Changed the way drawing color picker is working: now it works like 
        in Word (or other text editor) - keeps selected color even if drawing 
        with different color is clicke
  
         - Fixed false message "The note has been modified outside the notepad 
        editor." occuring when file did not exist
  
         - OLE: Changed Window.LoadTemplate to return FALSE when file can not 
        be found
  
         - OLE: Window.LoadTemplate now refreshes display so it is not 
        necessary to use SelectedTab = 0
  
         - Removed constant RT refreshes in interpretation window when text 
        does not change
  
         - ZoomToRange: last selected bar in range is visible after zooming now 
        
  
      
      CHANGES FOR VERSION 4.73.0 (as compared to 4.72.1) 
      
        - OLE: Window object, new method ZoomToRange( From, To ) 
        
 ZoomToRange( From, To ) From and To parameters are of any type 
        that can be converted to date(you can use string or OLE date for 
        example).
  Example code (JScript): 
  AB=new 
        ActiveXObject("Broker.Application"); AW = AB.ActiveWindow; if( 
        AW.ZoomToRange( "2005-04-01", "2005-08-01" ) ) {     
        WScript.Echo("Zoom successfull" ); }
  
         - Fixed: Chart got shrinked a bit with each overlaid plot, now the Y 
        scale does not change (unless really needed) 
  
         - Fixed: XShift now works correctly with styleOwnScale and 
        styleLeftScale
  
         - Fixed: Volume chart overlaid on price chart in log scale (overlay) 
        was compressed to flat line, now it is fixed (volume chart overlay uses 
        linear scale always)
 [#22262]
  
         - AFL: Added AlmostEqual function (completed: 
        2005-09-16)
  AlmostEqual( x, y, ulps = 5 )
  this is a helper 
        function for comparing floating point numbers.It returns True if x and y 
        are equal or almost equal upto defined accurracy (ulps).It is 
        recommended to use this function instead of equality check (==) as 
        itleads to more reliable comparisons and less headache caused by IEEE 
        floating pointacurracy issues. 
  Parameters:x, y - the numbers or 
        arrays to be compared,Ulps stands for "units in last place" and 
        represents maximum relative error of the comparison. Since 32 bit IEEE 
        floating point numbers have accurracy of 7 significant digits, 1 unit in 
        last place(ulp) represents relative error of 0.00001 %. The default 
        value of ulps parameter is 5 which gives roughtly 0.00005% "comparison 
        sensitivity".
 
  Example code:
  if( 1/3 == 0.3333333 ) 
         {    printf("32-bit Floating point IEEE exact equality\n"); 
         }
  if( AlmostEqual( 1/3, 0.3333333 ) )  { 
           printf("Numbers are almost equal\n"); }
  Thanks 
        to Bruce Dawson for his fast routine.
  
         - Optimize() function now checks if min < max, step > 0 and 
        checks if parameter name is not empty 
  
         - Made Time&Sales case insensitive (when "case sensitive tickers" 
        option is turned off") 
  
         - OBV/AccDist/Chaikin functions adjusted to be 
SetForeign-aware
  
         - OLE: Application object new methods
 BOOL LoadLayout( filename 
        ) BOOL SaveLayout( filename )
  AB = new 
        ActiveXObject("Broker.Application"); AB.LoadLayout("C:\\Program 
        Files\\AmiBroker\\Data\\Layouts\\Default.awl"); 
  
         - OLE: Window object new property: SelectedTab 
  AB = new 
        ActiveXObject("Broker.Application"); AW = 
        AB.ActiveWindow; tabindex = AW.SelectedTab; // read selected 
        tab AW.SelectedTab = 3; //switch to tab 3  AW.SelectedTab = 
        tabindex; // restore originally selected tab
  
         - Fixed: Exception was generated when GetRTDataForeign was called with 
        non-existing ticker
  
         - OLE: Window object new methods: LoadTemplate, SaveTemplate
  AB 
        = new ActiveXObject("Broker.Application"); AW = 
        AB.ActiveWindow; AW.SaveTemplate("Test.abt"); AW.LoadTemplate("Test.abt 
        ");
   
      CHANGES FOR VERSION 4.72.1 (as compared to 4.72.0) 
      
        - fixed out-of-memory problem sometimes occuring during scan of large 
        (>512MB) databases 
  
      CHANGES FOR VERSION 4.72.0 (as compared to 
      4.71.1)
  
      
        - " Currency" field support in ASCII importer 
 added command: 
         $CURRENCY USD
  and field:
  $FORMAT 
        Name,Currency$OVERWRITE 1$AUTOADD 1]
  
         - Added "Additional commands" field in the Import wizard for typing 
        any extra $- commands that are not available via checkboxes 
  
         - Added parameter to AddColumn/AddTextColumn to control column width 
        
  AddColumn( ARRAY, "Caption", format = 1.2, color = colorDefault, 
        bgcolor = colorDefault, width = -1);  AddTextColumn( "Text", 
        "Caption", format = 1.2, color = colorDefault, bgcolor = colorDefault, 
        width = -1 );
  
         - AddToComposte new flag to work when Status("action")== 
        actionPortfolio (completed: 2005-09-09)
 new flag is called 
        atcEnableInPortfolio
  Example:
  if( Status("action" ) == 
        actionPortfolio ) 
  { ... Custom backtest mode here 
        .... AddToComposite( some_array, "~COMPOSITE", "X", 
        atcFlagEnableInPortfolio | atcFlagDefaults );
  }
  
         - AFL added: tanh(), sinh(), cosh() functions 
 Hyperbolic tangent, 
        sine and cosine function
  
         - AFL functions: StrToUpper and StrToLower 
  
         - Fixed: Tick ASCII import: last tick of previous import was deleted 
        on subsequent import, now it is corrected 
  
         - Function to detect mouse button state 
        
  GetCursorMouseButtons() returns mouse button state at the time 
        when chart formula is executed
  0 - if no mouse button is 
        pressed 1 - if left mouse button is pressed  2 - if right mouse 
        button is pressed 4 - if middle mouse button is pressed
  plus 
        combinations:3 - left + right5 - left + middle6 - right + middle 7 - 
        left + right + middle]
  
         - GetRTDataForeign (retrieving values for other symbols) 
        
 GetRTDataForeign( "field", "symbol")
  
         - Pane is not deleted if shrinked down to zero (prevents from 
        accidential deletion of panes) 
  
         - Plot function now has xshift parameter that allows to visually shift 
        the chart past the last bar 
 Example 20-bar Moving average shifted 10 
        bars into the future past the last 
        bar:
  Plot(Close,"Close",colorBlack,styleCandle);Plot(MA(Close,20), 
        "Shifted MA", colorRed, styleLine, Null, Null, 10 ); 
  Note that 
        shift occurs during plotting and does not affect source array
  
         - Removed data source selection from preferences because it caused 
        user confusion way too often 
  
         - Stock.Currency available via OLE
  
         - Title variable now supports new special token {{OHLCX}} which is 
        replaced at runtime by string "Open ..., Hi .... Lo ... Close (...%)" 
        showing current price
  This way it is possible to implement 
        formula that will show OHLC prices with number of decimal places set in 
        the preferences. 
        
  Example:
  SetChartOptions(0,chartShowArrows|chartShowDates); _N(Title 
        = "{{NAME}} - {{INTERVAL}} {{DATE}} {{OHLCX}} {{VALUES}}" ); Plot( C, 
        "Close", ParamColor("Color", colorBlack ), styleNoTitle | 
        ParamStyle("Style") | GetPriceStyle() ); 
  
         - user-definable number of decimal places in chart titles (completed: 
        2005-09-09)
 Number of decimal places displayed in default chart title 
        is now user-definable inTools->Preferences->Miscellaneous"Decimal 
        places in chart titles". 
  Allowable values: -1 - dynamic mode 
        (number of decimal places automatically adjusted) 0..6 - fixed number 
        of decimal places 
  
         - QuoteArray resizing now uses heuristic algorithm to minimize memory 
        fragmentation and increase performance 
  
         - atcFlagDeleteValues now highlighted properly in the AFL 
        editor
   
      CHANGES FOR VERSION 4.71.1 (as compared to 4.71.0) 
      
        - fixed compatibility problem with AmiQuote (due to changed order of 
        OLE properties/method while AmiQuote was using old ones) 
        
 - now ASCII importer in $TICKMODE does not delete quotes older than 
        oldest (first) record in the imported file, so you can safely import 
        tick data from subsequent files (older first, newest later) 
  
      CHANGES FOR VERSION 4.71.0 (as compared to 4.70.5) 
      
        - AFL: added GetCursorXPosition() and GetCursorYPosition() 
        functions
  Functions return current mouse cursor position. 
         Values returned are equal to those visible in the status bar, and 
        these functions require status bar to be visible. Returned values 
        represent cursor position at the formula execution time (or few 
        milliseconds before it) and accurracy is subject to pixel resolution of 
        the screen (first cursor position is read in screen pixels (integer) and 
        then converted to actual value therefore for example when screen 
        resolution is 1024x768 maximum obtainable resolution in X direction is 
        0.1% and in Y direction 0.13%), also X values are snap to datetime of 
        nearest data bar.
  It only makes sense to use these functions in 
        indicator/interpretation code. 
  Using them in AA window may yield 
        random values.GetCursorXPosition() function returns X position in 
        DateTime format (the same as used by DateTime() function).You can 
        convert it to string using DateTimeToStr() function.GetCursorYPosition() 
        returns Y position (as displayed in Y axis of the chart). 
         Example: 
         ToolTip="X="+DateTimeToStr(GetCursorXPosition()) 
        +"\nY="+GetCursorYPosition(); 
        
         - 
        
AFL: added DateTimeToStr() and StrToDateTime() functions 
        
  These functions allow to convert string to datetime format and 
        vice versa. 
         Example:
  ToolTip="X="+DateTimeToStr(GetCursorXPosition()) 
        +"\nY="+GetCursorYPosition();]  
         - 
        
Added ability to store charts as .GIF (in addition to PNG) 
        
         - 
        
ASCII importer maximum supported line length is increased to 2048 
        characters  
        
         - 
        
Fixed: .aflsafe files didn't get deleted automatically 
        
         - Added N-volume bars charts and timeframe support.
  Custom 
        N-volume bar intervals are definable (as usual) in 
        Tools->Preferences->Intraday.
  TimeFrame functions were also 
        extended to support N-volume bars using new TimeFrameMode() function 
        calling 
  TimeFrameMode( 0 ); 
  - switches time frame 
        functions to time-based operation (the default)
  TimeFrameMode( 1 
        ); 
  - switches time frame functions to N-tick operation (positive 
        values passed to TimeFrameSet are treated now as N-tick) 
        
  TimeFrameMode( 2 ); 
  - switches time frame functions to 
        N-volume bar operation (positive values passed to TimeFrameSet are 
        treated nowas N-volme bars) 
         Example:
  TimeFrameMode( 2 ); TimeFrameSet( 50000 ); // 
        50'000 share bars..  ...do something ... TimeFrameRestore(); 
         Note: N-volume bars are somewhat weird (compression of data to 
        N-volume bar may actually deliver MORE output bars - for example if one 
        tick is 1000 shares and you have specified 100V bars then single tick 
        will be expanded to TEN 100V bars - ten times original size) 
         TimeFrame functions are protected against array overrun and will not 
        decompress beyond original array size (you will get an "Error 47. 
        N-volume bar compressed data longer than base time frame"). Also 
        switching main time frame to some weird N-volume bar value will result 
        in limiting the output to maximum twice original data size(without error 
        message).  You should keep that in mind and avoid using too small 
        N-volume bar intervals that could lead to such condition. Also due to 
        the nature of N-volume bars the only TimeFrameSet() function will yield 
        correct N-volume bar values, TimeFrameGetPrice() may give slightly 
        distorted results.  It is also possible to use n-volume bars in 
        TimeFrame functions without calling TimeFrameMode() - it is then 
        necessary to specify n-volume bars as negative number offset by -1000000 
        (minus one million):
  TimeFrameSet( -1000000 - 2000 ); 
  // 
        gives 2000V barsSimilarly formatted negative numbers will be reported by 
        Interval() function when n-volume bars are selected. 
        
          
         - 
        
OLE: Save As PNG / GIF callable from automation 
  Example 
        script:
  AB = new 
        ActiveXObject("Broker.Application"); AB.ActiveWindow.ExportImage("Test.png"); 
         - 
        
Plugin is not called when GetExtraData is used for symbol that has 
        "use only local database" flag turned on, and NULL is returned instead 
        of an error  
        
         - 
        
Protected against changing application's current working directory by 
        printing to file 
        
         - 
        
Toolbar does not get wrapped when main frame window is resized  
        
         - 
        
OLE: Analysis object has new method MoveWindow( x, y, width, height) 
        that allows to control position and size of automatic analysis 
        window
  AB = new 
        ActiveXObject("Broker.Application"); AB.Analysis.MoveWindow ( 10, 10, 
        200, 200 ); 
         It has some restrictions on size: specified size can not 
        besmaller than 10x10 pixels and can not be bigger than entire screen 
        dimensions. Also when "No minimum size for resizing dialogs" box in 
        UNCHECKED in Tools->Prefs->Misc it won't shink AA window below 
        default size necessary to fully display all controls.  
        
         - 
        
ASCII importer: added ability to import tick data from text files 
        
  ASCII importer now allows tick data files to be imported. 
        Tick data files consist of several records having the same 
        timestamp.This makes it impossible to use normal import mode which 
        assumes different (unique) timestampsfor each data row (when same 
        timestamp is found then new data overwrites old).  
         To turn on TICK mode you need to add manually
  $TICKMODE 
        1
  line to ASCII importer definition file. 
         $TICKMODE is a special mode of importer that allows to import 
        quotes that haveduplicate time stamps. 
  It makes two 
        assumptions: a) input data should come in the ascending time order 
        (i.e. OLDER records first, LATEST records last)  b) input data should 
        consist of entire tick history because importer will DELETE any existing 
        quotes (to avoid creating multiple copies of the same ticks). 
        Once again: Turning on  $TICKMODE 1 will DELETE ANY QUOTES that 
        already exist in the database and then will import all ticks from input 
        data file. You have been warned. 
         For example data files like this: 
        MOL,0,20050606,162959,16400.0000,16400.0000,16400.0000,16400.0000,2MOL,0,20050606,162959,16400.0000,16400.0000,16400.0000,16400.0000,11MOL,0,20050606,162959,16400.0000,16400.0000,16400.0000,16400.0000,40 
         Can be imported using the following definition file: 
         $FORMAT Ticker, Skip, Date_YMD, Time, Open, High, Low, Close, 
        Volume $SKIPLINES 1 $SEPARATOR , $CONT 1 $GROUP 
        255 $AUTOADD 1 $DEBUG 1 $TICKMODE 1 
         Sometimes it happens that input files have invalid timestamps 
        (seconds > 59).
  For 
        example:
  MOL,0,20050606,162970,16400.0000,16400.0000,16400.0000,16400.0000,2
  Please 
        take a closer look at first line shown in this example it has 
        time:16:29:70 (you see 70 seconds !)  
        So I had to add a special flag to the importer that works around such 
        data errors.
  It is called $ALLOW99SECONDS 1 and will convert all 
        records with invalid seconds (i.e greater than 59)to 59s.  So record 
        stamped 16:29:70 will be treated as 16:29:59  
        Now for tick mode to work with such incorrect records you would need 
        to add two lines to ASCII importer definition: 
        $TICKMODE 1 $ALLOW99SECONDS 1
 
    
      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 bugs at amibroker.com  
  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 
      other support material please check also: http://www.amibroker.com/support.html 
      
 
 
 
 
  
      SPONSORED 
      LINKS  
       
      
        
      YAHOO! GROUPS LINKS  
       
      
        
         
 
  -- 
   Cheers Graham AB-Write >< Professional AFL Writing 
  Service Yes, I write AFL code to your requirements http://e-wire.net.au/~eb_kavan/ab_write.htm 
  
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 other support material please check also: 
http://www.amibroker.com/support.html 
 
  
  
 
  
    
  YAHOO! GROUPS LINKS
 
 
    
  |   
 |