AmiBroker 5.50.4 official release

Stability: Rank 5 – Stable official release

A new official release version (5.50.4) of AmiBroker is available now.

32-bit version:
(9 043 088 bytes) (link updated to 5.50.5)

64-bit version:
(9 328 352 bytes) (link updated to 5.50.5)

ATTENTION: This version is free only for users who registered after September 1st, 2009. See Upgrade Policy and Pricing section below for more details.

CHANGES FOR VERSION 5.50.4 (as compared to 5.50.3)

  1. New Analysis: “Show arrows for actual trades” sometimes used date range from old AA. Fixed
  2. New Analysis: Individual backtest – custom metrics columns would not appear if very first symbol under test does not generate ANY trades. Fixed.
  3. UI: when you float a maximized MDI window it becomes little smaller so it does not overlap MDI tabs.
  4. Print/Print Preview: circle/arc/rectangle objects outside current view are properly clipped on printouts
  5. New Analysis: When user cancelled optimization in the middle and ran backtest afterwards then this single follow up backtest could be incorrect and required another run to produce correct result again. Fixed.
  6. When timeshift != 0 then duplicate range markers could appear at day boundary. Fixed.
  7. Small rounding issue in ray drawing fixed
  8. When multiple chart panes were using SetForeign on rare occassions foreign call could fail (return other symbol data) Fixed.

CHANGES FOR VERSION 5.50.3 (as compared to 5.50.2)

  1. Blank chart can be closed using flyout minitoolbar now
  2. Fixed crash @7C8097FF when trying to drag drop indicator on chart when database is empty
  3. Formulas: Ichimoku cloud added
  4. Formulas: faster version of Portfolio Equity formula
  5. Formulas: styleNoLabel is now default for all “Band” formulas (Bollinger/Keltner/Percent)
  6. New Analysis: Individual backtest: setting different report mode took place only after second run / second symbol. Fixed.
  7. New Analysis: proper symbol list refresh is triggered when composites are created or user calls SetOption(“RefreshWhenCompleted, True );
  8. New Analysis: Walk forward tab table did not display custom metrics. Fixed.
  9. PlotVAPOverlay did not draw the very last level line. Fixed. Also done some cosmetic tweaks.
  10. TC2K/TC2KFunds plugins updated to check Wow6432Node registry key on 64-bit installations (should avoid TC2k detection issue on 64-bit Windows)
  11. Ticker bar prevents from adding empty ” symbol names
  12. When database is empty or chart does not have properly selected symbol the information note is displayed in the chart window (instead of blank chart)
  13. When settlement delay was set to zero, then interest rate setting was ignored (5.46-5.50.2). Fixed.

CHANGES FOR VERSION 5.50.2 (as compared to 5.50.1)

  1. New Analysis and Old AA: HoldMinBars > 0 can now be used together with AllowSameBarExit=True
  2. New Analysis: SeparateLongShortRank required proper MaxLongPos and MaxShortPos definitions in order to work. Now if they are missing defaults are applied as in old AA.
  3. New Analysis: If current formula is open in the formula editor it is auto-saved prior to running any Analysis (as old AA did)
  4. New Analysis: on attempt to load analysis project file that contains formula path that does not exist or is not writable AmiBroker will create the formula in the “Formulas\Imported” folder instead of not creating it at all
  5. New Analysis: on Backtest/Optimization current formula is saved in @LastBacktestFormula registry key so it can be referenced by Individual Equity formula
  6. New Analysis: when formula is picked from the folder that is inside current working directory, then relative path is used and stored in project instead of absolute path previously used
  7. New Analysis: WinXP-only – RMB click column descend/ascend menus were not working due to Windows XP bug. Fixed.
  8. Plugins: IQFeed plugin uses new faster IQFeed API, downloads less and uses way more efficient method to backfill 1/5/15-second base time intervals. Attention: you need to use new IQClient or higher.
  9. Plugins: IQFeed: added “You can’t close plugin window” on attempt to close working IQFeed window.
    Settings: ‘Stops’ tab: N Bar stop has priority check box state was not saved. Fixed
  10. UI: Category list now features new icons and decreased indentation
  11. UI: Chart tree, Layout tree in “Explorer” theme
  12. UI: Floating non-chart windows (account/web browser/analysis) are not closed when switching layouts.
  13. UI: Owner-draw listviews now fully implement ellipsis item truncation mechanism, but using ExtTextOut only which is 6 times faster than DrawText that Windows uses

CHANGES FOR VERSION 5.50.1 (as compared to 5.50.0)

  1. New Analysis: Individual Backtest implemented. Note that it runs with approx same speed as old AA as Individual Backtest is single threaded for reasons explained in the User’s manual.
  2. New Analysis: toolbar icons for parameters and settings changed to avoid confusion with the icon for preferences
  3. UI: Symbol List uses Windows 7/Vista style
  4. New Analysis: Toolbar customization is now saved
  5. MRU (most recently used) file menu moved to submenu and MRU list increased to 10 items
  6. Charts: fixed small alignment problem on Y axis when using fixed (nonproportional) font
  7. New Analysis: backtester object now has EquityArray property that returns entire equity array (not just current value).
  8. New Analysis: AddToComposite with atcDeleteValues | atcEnableInPortfolio did not delete previous values. Fixed
  9. New Analysis: “Interval” menu item in the auto-repeat group renamed to “AR interval” because some users interpreted it wrong (as periodicity)
  10. New Analysis: OLE interface implemented. See for the details.
  11. Charts: more tweaks for Y axis algorithm for readability. Now in Tools->Preferences, “Charting” the user may select different grid stepping: Instead of default 1, 2, 5, 10 grid stepping, user may select to use 2.5 step instead of 2 (Use 2.5 step in Y axis)
  12. GetFnData() supports new field “Alias” – return Alias field without need to use OLE
  13. GetOption supports new fields: ApplyTo and Filter*, eliminates the need to use OLE for that purpose
  14. Fix for FPU inaccurracies in range bars implemented

CHANGES FOR VERSION 5.50.0 (as compared to 5.49.2)

  1. New Analysis: “Save” creates now a Analysis project (.apx) file that includes all settings and formula needed in single file. The file itself is in human readable XML format
  2. UI: File open dialog now has “All supported files” option in the “Files of type”
  3. UI: PopupWindow is now resizable (see size gripper in the lower-right corner)
  4. AFL: PopupWindow function has additional parameters to control width/height and flag that controls whenever popup window captures input focus
  5. New Analysis: ApplyStops applied in non-regular modes are passed to 2nd phase properly now.
  6. New Analysis: “Show current trade arrows” fixed.
  7. New Analysis: View->Filtering menu options were not available when New Analysis was active. Fixed.
  8. New Analysis: Standard Edition has a limit of max 2 threads per Analysis window instance.
  9. UI: Log window clicking on error displayed AFL Editor and marked Line+1, Col+1 char position instead of proper place. Fixed
  10. New Analysis: Errors are now displayed in a modern message bar instead of dialog box
  11. UI: holding down Ctrl and Q keys simultaneously while AmiBroker is starting resets all menus/command bars to defaults
  12. New Analysis: scroll bar properly works when “Walk forward” tab is active
  13. New Analysis: Walk forward tab content can be now copied using Edit->Copy / Ctrl+C
  14. New Analysis: when “wait for backfill” was turned on and external data source was very slow to repond (like IQFeed during backfill) subsequent calls to Status(‘stocknum’) could give non-unique numbers. Fixed.
  15. New Analysis: Copy to clipboard includes headers now
  16. New Analysis: Column customization/state persistence implemented
  17. Charts: New Y axis grid algorithm for clearer display on condensed charts
  18. AFL: CategoryGetSymbols supports new categoryAll (all symbols in the database) and new Mode parameter
  19. AFL: Added Warning 503. Using OLE / CreateObject / CreateStaticObject is not multi-threading friendly. See Users’ Guide “”Efficient use of multithreading”” for more details.
  20. AFL: Added ThreadSleep( milliseconds ) function. It suspends current thread for specified number of milliseconds (maximum is 100 ms). Works only from NON-UI threads. When called from UI thread the function does NOTHING and returns immediatelly. Please do NOT abuse this function. Using it may negatively impact performance.
  21. AFL: Added StaticVarCompareExchange function. Provides atomic interlocked compare/exchange functionality

CHANGES FOR VERSION 5.49.2 (as compared to 5.49.1)

  1. New Analysis: added Optimize->3D Optimzation chart menu
  2. New Analysis: buttons for Portfolio Equity/Individual Equity charts added
  3. New Analysis: Info Bar added (that duplicates some of the info that normally appears on the Info Tab). It can be turned on using Settings->Info Bar
  4. New Analysis: Report generation is now OFF by default when running optimization/walk forward as in old AA. This gives about 0.9 sec gain per step.
  5. New Analysis: Single-symbol optimization made faster by caching already compressed quote array on subsequent steps
  6. New Analysis: the check for Status(“StockNum”) was sensitive to blanks between parenthesis, function name and string parameter. Now it is made insensitive to blanks.
  7. New Analysis: when “Range” was “n last bars” or “n last days”, Status(“rangefromdate”) gave date of preceding bar. Fixed.
  8. UI: “Performance” tooltip title was not always updated on time. Fixed.
  9. UI: “Wait for plugin” window displays progress bar with “marquee” style instead of circle of dots

CHANGES FOR VERSION 5.49.1 (as compared to 5.49.0)>

  1. New Analysis: “Backtest started”, “Exploration started” text in the info tab appeared twice per run (instead of once). Fixed
  2. New Analysis: Backtest report did not include formula code. Fixed.
  3. New Analysis: Fixed crash that could occur when running analysis with Range set to “N recent bars” and N was exceeding number of quotes.
  4. New Analysis: Float/Normal/Close popup menu RMB menu was active everywhere in floating window instead of only caption area. Fixed.
  5. New Analysis: Implement single-thread start when Status(“StockNum”) is detected in the code. Other threads are started when first symbol processing is completed.
  6. New Analysis: Send to Analysis did not update formula combo box properly in certain scenarios: when formula X was selected, then formula Y, then formula X again. Fixed.
  7. New Analysis: Testing on unaligned data sometimes took longer than expected because of the work necessary to bring signals in order. Now a smart method avoids most of the memory transfers and can give 10x speedup on backtesting very long unaligned intraday data.
  8. Old AA: status bar displays true timing for fair comparisons between old AA and new Analysis. Watching progress bar numbers was misleading as it closed before all processing was truly complete, so it looked like old AA completed sooner than it really did
  9. UI: menu item for Old Automatic Analysis restored as apparently some users got lost. Also attempt to run old Automatic analysis displays an information about new Analysis window

CHANGES FOR VERSION 5.49.0 (as compared to 5.48.0)

  1. Web Research: turned on “silent” mode – should prevent error message boxes displayed by IE engine.
  2. UI: when focus is switched to floating document window, the application menu is switched to proper context
  3. UI: When File->Close was used on floating pane, document was closed but docking pane was not. Fixed.
  4. UI: The toolbar button and menu option to launch old Automatic Analysis window are now hidden (can be brought back by using Tools->Customize), old AA can also be launched from new Analysis via Analysis->Old Analysis menu
  5. UI: New menu options and toolbar button to launch new analysis window
  6. UI: Moved all menu items controlling visibility of docking windows to “Window” menu
  7. UI: floating state of windows can now be turned on/off using right-click menu over tab / floating window caption
  8. UI: File->Save (when currently selected window is a chart) command now saves Chart template. To save database use “Save database” instead.
  9. UI: Defaults for data window are changed, so extra OHL display is turned off by default as currently PlotOHLC displays all 4 prices in the tooltip and data window already
  10. UI: Data window scroll bars are hidden and do not flicker when updating
  11. UI: Adjusted item Y offset for owner drawn listviews for consitent look with old layout of system listviews in Windows XP and earlier OSes
  12. UI: Account, Analysis and Web research windows don’t use client edge/border anymore – gives slicker / less crowded look
  13. UI: “Save All” toolbar button removed, “Save database” button added to replace it
    QuoteEngine: Range bars algorithm improved significantly
  14. Quote array uses 20480 bytes (512 quotes) allocation chunk size (exactly 5x4KB page) now
  15. New Analysis: when floating pane is made normal from/to dates were reset to today. Fixed.
  16. New Analysis: when Apply To: Filter is defined so NO symbol matches the criteria, appropriate message is displayed when trying to run Analysis and action is terminated instead of displaying progress bar forever
  17. New Analysis: when analysis window is “floating” double click/show arrows/sync affects active MDI chart just like old AA did, as opposed to last one (when analysis is not floating)
  18. New Analysis: Optimization parameter setup stage uses now not more than 100 bars. This reduces setup time.
  19. New Analysis: implemented import / export, File menu now has Import HTML and Export HTML/CSV commands
  20. New Analysis: Implemented “Wait for backfill” option. This slows down analysis sequence so AmiBroker waits for external RT data source to deliver backfill data
  21. New Analysis: Custom backtester uses “last backtest settings” when calling GetStatus() instead of old AA settings
  22. New Analysis: auto-repeat interval edit field did not allow to enter values if moved to main toolbar via customization. Fixed.
  23. Formula Editor Analysis toolbar button now operates on New Analysis window
  24. Default for timestamping of intraday compression changed to “Show START time of interval”
  25. Charts: Tooltips automatically display also OHL prices (in addition to close) when Plot style is set to candlestick, bar or when PlotOHLC was used
  26. Charts: AFL error message color is now definable in Tools->Preferences, “Color” tab

CHANGES FOR VERSION 5.48.0 (as compared to 5.47.0)

  1. New Analysis: custom metrics columns were invisible in backtest/optimizations. Fixed. (#91031)
  2. New Analysis: backtest did not display proper column names when Report mode was different than trade list. Fixed. Also added support for changing report mode via SetOption().
  3. New Analysis: Auto-repeat Scan/Explore implemented (aka. “Run every” in old AA) (use drop down menu next to “Settings” button)
  4. New Analysis: Showing arrows by double click implemented
  5. New Analysis: Sync chart on select option implemented (use drop down menu next to “Settings” button)
  6. Fixed window activation issue after RMB click in chart window when non-chart floating windows are active
  7. New Analysis: Cancelling walk-forward did not restore date range and settings and didn’t reset internal step counter. Fixed.
  8. New Analysis: Formula path disappeared when window was made floating. Fixed.
  9. New Analysis: in 5.47 non-exhaustive optimizers sometimes stopped after first step in walk-forward. Fixed.
  10. Charting: scroll bar zoom function remains active even at extreme zoom in levels
  11. New Analysis: Fixed problem with opt steps warning dialog appearing sometimes in the out-of-sample tests in walk forward sequence
  12. New Analysis: Signal heaps are separated now, allowing to run concurrent backtest/optimizations in many analysis windows
  13. New Analysis: removed unnecessary refreshes of symbol list during optimizations that caused slowdowns when user had large database
  14. New Analysis: The size of control fields is properly adjusted with regards to DPI
  15. New Analysis: Status(“StockNum”) was always zero in 5.47 and earlier. Now it is set properly.
  16. Fixed Error 53 message that was giving an error when proper \” (quotation mark espace sequence) was used

CHANGES FOR VERSION 5.47.0 (as compared to 5.46.0)

  1. New Analysis: implemented Walk-Forward testing (use drop arrow next to Optimization button)
  2. New Analysis: last used ApplyTo/Range/From/to dates/filters and other settings are saved when Analysis window is closed
  3. Fibonacci retracement- modifying Z-order affected only control trendline, not all lines as it should. Fixed.
  4. Default title for new analysis window is “AnalysisX” (instead of “Unnamed”) where X is consecutive number 1, 2..
  5. attempt to use Say() on computer without sound card or without driver installed does not result in throwing exception/crash report, but it is rather silently ignored
  6. AFL engine: new error 53: incorrect \ espace sequence. Error is issued when user forgets that single slash must be written as \\
  7. Fixed “slow response” problems some users reported when switching symbols)

CHANGES FOR VERSION 5.46.0 (as compared to 5.45.0)

  1. New Analysis: Exhaustive multi-threaded optimization implemented
  2. New Analysis: Smart (non-exhaustive) multi-threaded optimization implemented in a way compatible with existing optimizer plugins
  3. Slight modification to the way how compressed bar charts are drawn (so bars with H==L are better visible)

CHANGES FOR VERSION 5.45.0 (as compared to 5.44.1)

  1. 64-bit version compiled with new version of C runtime (Microsoft security update)
  2. Fixed date/time column sorting in virtual list views when regional date format was different than yyyy-MM-dd
  3. AFL: ClipboardSet() returns True (1) when clipboard has been successfully set. Sometimes clipboard is locked by another applications and then write can fail (ClipboardSet() will return zero/False then)
  4. New Analysis: Changed alignment of Date/Time column to left in backtest result list.
  5. Most AFL engine setup moved to worker threads. Result – smaller UI thread load in MT charts (better scalability) and much faster (upto 2x) explorations/scans in New Analysis window
  6. New Analysis: added “Info” tab that provides some summary information about analysis (number of rows, timings, backtest summary) – contents can be copied using Ctrl+C / Edit->Copy
  7. New Analysis: first-phase backtest signal processing and ranking moved to non-UI threads, enabling better parallelism, results in better backtest performance (upto 2x in with trivial codes)

CHANGES FOR VERSION 5.44.1 (as compared to 5.44.0)

  1. Removed dialog box with partial timings that appeared after backtest in the new analysis window. (It was introduced in 5.44.0 for performance fine-tuning purposes, but not really needed for end-user).

CHANGES FOR VERSION 5.44.0 (as compared to 5.43.1)

  1. New Analysis: fixed AddToComposite()
  2. New Analysis: Interval() function was working incorrectly in new analysis window. Fixed.
  3. New Analysis: Backtest ~~~EQUITY symbol did not have “use only local database” set in 5.43.1. Fixed.
  4. New Analysis: Backtest performance improved by removing some unnecessary list view refreshes (now it should never be slower than old AA even with simplest formulas)

CHANGES FOR VERSION 5.43.1 (as compared to 5.43.0)

  1. When range different than “All quotes” was selected, backtest in new Analysis window could produce incorrect results in 5.43.0. Fixed.

CHANGES FOR VERSION 5.43.0 (as compared to 5.42.0)

  1. New Analysis Window: multi-threaded Backtest feature implemented (experimental)
  2. Load/Unload buttons removed from Plugins dialog.
  3. ListViews: the last line (partially shown) in RT quote window was not easily selectable. Fixed
  4. New Analysis window: Implemented Parameters dialog
  5. AFL: GetCursorMouseButtons() sometimes missed clicks when multithreading was on and formula took ages to execute. Now it is now 100% reliable.
  6. Auto-selection of proper layer based on selected viewing interval
  7. IRA accounts support – implemented Settlement delay in backtester, via SetOption(“SettlementDelay”, x )
  8. Zoom in/out toolbar buttons zoom in finer steps (+/-10%)
  9. Analysis ListView, RMB menu new option: “Add Rank column” – adds a column with ordinal rankings based on current sort or just row number column when list is not sorted
  10. New feature: Adding new chart/research/account/analysis via (+) tab
  11. New Analysis window: Implemented SetSortColumns
  12. New Analysis window: Implemented AddSummaryRows

CHANGES FOR VERSION 5.42.0 (as compared to 5.41.0)

  1. Implemented right click menu in new Analysis windows (Add symbols to watchlist/Show arrows functionality)
  2. Zoom in/out toolbar buttons now have auto-repeat feature
  3. In 5.41.0 Ctrl+C from list view copied text without tabs (column separators). Fixed
  4. In 5.41.0 did not refresh progress dialog optimization status list. Fixed. (owner draw list view initial size is retrieved in PreSubclass now)
  5. In 5.41.0 did not display Time&Sales in reverse order (newest on top). Fixed.

CHANGES FOR VERSION 5.41.0 (as compared to 5.40.0)

  1. New Analysis window (File->New->Analysis) – featuring multithreaded Scan and Exploration
    Performance note: to fully benefit from multithreading it is best to use AmiBroker local NATIVE database (not external) as it is the only database that can deliver data quickly enough. Tests show that on AmiBroker native databases scans and explorations are 100% scalable to multiple cores
    – i.e. for example would run upto 8 times faster on 8 CPU/core machine. IMPORTANT: This window is work-in-progress. Multithreaded Backtest and Optimization features will be added later.
  2. Totally rewritten listview with very efficient owner draw code speeds up list view scrolling/resizing/repainting more than 10 times. Native system ListView control is terribly slow on Windows XP/Vista/7 (surprisingly it was many times faster in Win9x!)
  3. AFL: AddColumn – added mini bar charts to explorations
  4. Mini-chart in RT Quote window. Mini chart shows where LAST price is within LOW-HIGH range.
  5. AFL: Percentile() does a param check for range > 0 now
  6. Errors and warnings are now displayed in red color in the indicator pane
  7. During actual GDI chart rendering AmiBroker measures time and if it exceeds 500ms timeout it stops rendering with Warning 901.
  8. Warning 502: Calling Plot()/PlotOHLC over 500 times is displayed in indicator in runtime to prevent abuse
  9. All list views, pressing Ctrl and NumPad’+’ automatically adjusts column widths to content
  10. If data are missing in the in-memory cache, Foreign() calls from non-GUI threads use synchronous retrieval method for reliability.
  11. Old and new Analysis window: outputting millions of rows to listview is much faster now
  12. All list views – Ctrl+A (Select All) made much faster


  1. The upgrade is FREE for all users who purchased AmiBroker after September 1st, 2009
  2. The users who purchased AmiBroker before September 1st, 2009 would need to buy upgrade if they want to use this newest version ($99 – Standard Edition, $139 – Professional). If you don’t want to pay – you may continue using previous version(s) infinitely.
  3. To find out when you have purchased AmiBroker and how long your free upgrade period is, use “Account Information” page in the members area at:
  4. To purchase new license or upgrade please use our ordering page at:

For more details, instructions and examples how to use new features see Users’ Guide