AmiBroker 5.69.0 BETA released

Stability: Rank 3 - Regular BETA, pretty stable, should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (5.69.0) of AmiBroker has just been released.

32-bit version:
(2 324 392 bytes)

64-bit version:
(9 161 528 bytes)

If you forgot your user name / password to the members area you can use automatic reminder service at:

IMPORTANT: Unauthorized copying and/or distribution of materials found on members' only page is STRICTLY PROHIBITED and will result in IMMEDIATE termination of license.

Note that this version can only be installed onto previous full installation of version 5.60 or higher from

CHANGES FOR VERSION 5.69.0 (as compared to 5.68.1)

  1. Adding symbols via ASCII import caused change of selected symbols in charts. Fixed.
  2. OLE: AnalysisDoc.Run supports Individual Optimization now (Action == 5)
  3. Charts: when formula file can not be found the detailed information about the path referenced and current working directory is displayed instead of old "the formula can not be found - no chart to display"
  4. New Analysis: added Auto-repeat status icon in the right-hand corner of the Info bar (yellow 'play' arrow shows up when auto-repeat is active and scheduled for next run)
  5. AFL: Percentile() uses now new algorithm that has linear O(n) complexity instead of O(log(n)*n) so it is MUCH faster than the old one and close to Median() that uses quickselect (which is fastest)
  6. ODBC plugin: now available in 64-bit
  7. AFL: since 5.63 round() function used 32-bit floorf which resulted in some differnces as compared to 5.60. Previous code version is restored now.
  8. DDE plugin: 64-bit version of DDE plugin was producing incorrect timestamps. Fixed.
  9. Default seed for Random() and mtRandom() was based on time(), which could be the same for threads created in the very same moment. Now the seed in multiple threads is guaranteed to be unique. This prevents repeated pseudo-random sequences in multiple threads created in the very same moment.
  10. IB plugin: added support for CFDs (security type=CFD, exchange=SMART) and commodities (security type = CMDTY, exchange = SMART)
  11. UI: Now there are separate MRU (most recently used) menus for files and databases (File->Recent Databases, File->Recent Files_
  12. Removed / changed some mnemonics (key accelerators) in menus to avoid duplicates
  13. The default setting for Layers/"Auto-Select Layer" is changed to OFF.
  14. Custom Backtester interface: added FullName read-only property to Trade object (gives full name of symbol)
  15. SPSO (standard particle swarm optimizer) plugin: now available in 64-bit
  16. Tribes plugin: now available in 64-bit
  17. DDE plugin: now available in 64-bit

CHANGES FOR VERSION 5.68.1 (as compared to 5.68.0)

  1. Fixed crash occuring in 64-bit version when StaticVarGenerateRanks was used on large arrays.
  2. AFL: since 5.63 round() function used 32-bit floorf which resulted in some differnces as compared to 5.60. Previous code version is restored now.

CHANGES FOR VERSION 5.68.0 (as compared to 5.67.2)

  1. AFL: new function: Error("text") - allows to display user-defined error messages and stop execution of the formula. Good for 3rd party plugin implementors to display error messages
  2. AFL: new function: StaticVarGetRankedSymbols( "outputprefix", "inputprefix", datetime )
  3. AFL: new function: StaticVarGenerateRanks function (flexible ranking function, experimental subject to change - for the details and instructions how to use see the read me)
  4. New Analysis: when two Analysis windows were open and running Scan simultaneously with AddToComposite composites could get reset by scan running in second window. Fixed.
  5. Added millisecond support to ASCII importer. Supported time format with milliseconds is HH:MM:SS.mmm (where mmm is milliseconds 000..999)
  6. Unsettled sale proceeds were settled at the end of the day instead of the beginning of the next day. Fixed.
  7. The message 'trade not entered because of insufficient funds' is modified to mention that it also it may not be entered because of incorrect position size specified by the user

CHANGES FOR VERSION 5.67.2 (as compared to 5.67.0)

  1. Using more than 100 Plot() statements in one formula could cause memory corruption sometimes resulting in access violation. Fixed.
  2. File->New->Blank chart and then clicking "View" caused exception in 5.67.1. Fixed
    AmiBroker 5.67.1 BETA
  3. Low-level gfx playback engine resets colors to black pen / white background, so it does not get influenced by chart colors like labels.
  4. GfxSetOverlayMode( 2 ) sometimes produced incorrect output in 5.67.0. Fixed.

CHANGES FOR VERSION 5.67.0 (as compared to 5.66.0)

  1. New Analysis: Optimization continued even if there was error inside custom backtest procedure. Fixed.
  2. Charting: a new "Warning 902 can not plot a chart in logarithmic scale as a data set contains negative value(s)" message is displayed on attempt to use log scale with negative data and the chart is plotted in linear scale instead.
  3. UI: 'Logarithmic scale' item added to "View" menu.
  4. AFL: new function fdir( "wildcard", flags = 1 ) - returns comma separated directory list (like "DIR" command)
  5. AFL: GfxSetOverlayMode( mode = 1 ) did not work with "alternate background fill". Fixed.
  6. Analysis Settings Load/Save buttons were positioned wrong in RTL (right-to-left) systems. Fixed.
  7. AFL: CategoryCreate( "name", category ) - adds new category (currently supports only adding watchlists)
  8. 64-bit: Fixed crash with backtest of more than 10 million bars
  9. 64-bit: Fixed 'squeeze' problem with charts at full zoom out when more than 10 million data bars were displayed
  10. OLE Stocks.Add and Stocks.Remove trigger resynchronization of selected indexes to avoid problems with "symbol locked" charts

CHANGES FOR VERSION 5.66.0 (as compared to 5.65.0)

  1. CBT: a new field "TransactionCosts" (equivalent to report's "total transaction costs") is now supported in the custom backtester Stats.GetValue method
  2. ASCII importer: added DELISTED_DATE to fields available in $FORMAT command.
  3. AFL: GetFnData returned invalid value for fields DividendPayDate and ExDividendDate when they were empty (not set) in the Information window. Fixed (now Null is returned)
  4. AFL: GetFnData now supports new field "DelistingDate"
  5. Information window: added "Delisting date" field.
  6. Information window: it was not possible to set/change Dividend Pay Date and Ex Dividend date from UI. Fixed.
  7. Preferences window: new tab "Candles & Bars" that controls detailed appearance of candlestick and traditional bar charts
  8. The database save was triggered when opening documents using recent file list. Fixed.
  9. Parameter window: Right mouse button double click over parameter label resets selected parameter to the default value now
  10. AFL: PlotShapes() now has XShift parameter
  11. Custom metric optimization target (WF tab) is now matched case-insensitive (FC#2442)
  12. 32-bit and 64-bit versions now use different registry key to save list of DLLs so warning messages about non-certified 3rd party plugins are not displayed each time you switch between 32-bit and 64-bit app version anymore.
  13. Foreign("~~~EQUITY" ) within custom backtest proc in old AA returned zero (because of change in 5.65). Fixed.
  14. CBT: when low-level mode was used (no ProcessTradeSignals was called) ~~~Equity open interest field was not filled with number of open positions. Fixed.
    When user moved default Formula path somewhere else Report charts were not generated properly. Fixed.

CHANGES FOR VERSION 5.65.0 (as compared to 5.64.1)

  1. Fixed crash @0048C19A/48C1C4 (click on result list after backtest to show arrows sometimes produced this).
  2. Foreign/SetForeign/RelStrength of the same symbol as active does nothing (i.e. refers to already existing thread local data, instead of querying database)
  3. In-memory quotation cache can now be larger than 20K symbols. Now the maximum is 100K symbols (user definable in Tools->Preferences, "Data" tab). Caveat use extreme values ONLY if you have plenty of memory AND you are using 64-bit version
  4. New Analysis: In 5.64.x "stocknum" incorrectly started counting from 1 instead of 0 as in old versions. Fixed.
  5. New Analysis: results are now sorted after Individual Optimization the same way as after portfolio Optimization
  6. New Analysis: Walk-forward result list colums had "alpha" type which resulted in alphabetic sort when user clicked on column. Fixed (numeric type is used now).
  7. New Analysis: when SetSortColumns was used in 5.63 and above it could trigger redundant multiple sorts. Now it is fixed (sort only once)
  8. QuickData did not work properly for not time-based intervals so it is now automatically turned off for charts using such intervals.
  9. Trade profit calculation speeded up. Upto 15% faster optimization with lots of trades.
  10. OpenInterest field of ~~~EQUITY symbol now holds number of open positions on bar per bar basis (works now)

CHANGES FOR VERSION 5.64.1 (as compared to 5.63.0)

  1. New Analysis: Multi-threaded Individual Optimization. Upto NumberOfCores faster. Note: no CBT and only exhaustive mode is supported.
  2. Built-in constant are set up once and shared among all threads to save setup time (gives 10% speed up in execution of simple formulas)
  3. Built-in constants such as colorBlack are now read-only and any attempt to overwrite such constant value results in error 55.
  4. New Analysis, list view in scans, explorations and individual optimizations is refreshed less often to gain some speed.
  5. In case of individual backtest / individual optimization the backtester allocates much smaller price cache (just for 2 symbols) - takes less time.
  6. In 5.63 Bar Replay did not with "QuickData" enabled (it required View->Refresh All to start working). Fixed.
  7. Some actions (like import of past data, split, etc) did not trigger automatic chart refresh when QuickData was enabled. Fixed.
  8. In 5.64.0 RoundLotSize, TickSize, and a couple of other built-in variables were incorrectly marked as read-only. Fixed in 5.64.1

CHANGES FOR VERSION 5.63.0 (as compared to 5.62.0)

  1. QuickData for charts implemented. QuickData is a new feature that greatly decreases time required to prepare compressed/filtered data for real-time charts.
  2. Time&Sales now supports filtering out trades and bid/ask quotes below user-defined size. FC#1046
  3. Time&Sales allows to customize colors (separate color setting for trades occuring above/at ask, inside, at / below bid, etc). Right-click and use context menu to bring up "Colors..." dialog. FC#2313
  4. Time&Sales now supports "Wide list" mode in addition to existing "Narrow" mode. "Wide mode" has separate columns for bid / ask data. To switch - right click on the T&S window and choose "Wide" or "Narrow" from context menu. FC#2332
  5. GetFnData() supports now "Currency" and "WebID" fields
  6. AFL: some transcendental math functions (sqrt, sin,asin, cos, acos, tan, atan, ln, log10, etc) are 10-30% faster now.
  7. AmiQuote 3.05: fix to "It is illegal to call out while inside message filter" error that sometimes occurred when OLE server was busy during long imports
  8. ASCII importer: if import takes more than 5 seconds, Windows does not mark AmiBroker as "not responding" anymore
  9. Progress indicator (for ASCII import) in the status bar is larger and works better for large files
  10. AFL: SetSortColumns() can now be called more than once to support multiple rankings via AddRankColumn
  11. 64-bit version: Added 'highDPIaware' and "asInvoker' settings to application manifest in x64 version, to prevent file system virtualization and scaling on high-DPI screens
  12. Added X/Y constaints for drawing tools. When you hold down "Y" key, start and end Y co-ordinates are set to equal value (with trend line it gives horizontal line). When you hold down "X" key you get perfectly vertical line (X start/end set to equal value). FC#1262
  13. When loading and saving quotation files, AmiBroker does not allocate extra memory buffer. This conserves RAM when handling large files.
  14. 64-bit version is able to load/save files larger than 2GB per symbol (more than 53 million data bars per symbol). Note that you would need to use huge amounts of RAM as using 50 million data bars requires 6GB of RAM or more for any decent performance.
  15. When user re-arranged tabs in the "Log" window, "Clear" and other right-menu commands used wrong tab. Fixed.
  16. AFL: new function AddRankColumn - adds ranking column(s) according to current sort set by SetSortColumns. FC#2326

CHANGES FOR VERSION 5.62.0 (as compared to 5.61.0)

  1. AddSummaryRows now supports also flag = 32. This flag adds standard deviation row
  2. AddSummaryRows treated NULLs as zeros in averages. Now it is fixed and NULLs are not included in calculations.
  3. Drawing tooltip "bars" count starts from 0 (when line is pure vertical) to match status bar X distance display. Status bar coords display is hidden once drawing is done to prevent user confusion.
  4. Snap to price now allows snapping to Closing and Opening price, to activate snap to close hold down "C" key, to activate snap to open hold down "O" key while drawing line / moving the mouse
  5. When "Play" button is pressed Bar replay dialog checks if Start Date is earlier than End date and displays error message if that is not the case.
  6. Ticker box is updated with new full name if it is changed from symbol information
  7. Per-symbol UserData fields are accessible now via GetFnData("UserData0")..GetFnData("UserData99"). This feature is for implementors of custom data plugins to allow them to expose custom data
  8. New Analysis: In 5.61.0 Walk Forward kept old "Current symbol" until Scan/Explore/Backtest was run. Fixed
  9. First line in "Parallel trendlines" tool is snapped to price (if the option is turned on) as normal trendline.
  10. eSignal: now plugin supports EOD history for more than 40 years back
  11. Charting: Copy-Paste Special allows to copy entire chart pane with various options
  12. Backtest report now includes 'Total transaction costs' (sum of all commissions paid)
  13. Aux1/Aux2 fields now allow user-definable aggregation/compression mode (File->Database Settings->Intraday Settings). Available choices are last (default), first, highest, lowest, sum

CHANGES FOR VERSION 5.61.0 (as compared to 5.60.0)

  1. When using any drawing tool X and Y distance is shown in the status bar (FC #2380)
  2. When position can not be entered due to insufficient funds the Backtester in the "detailed mode" gives additional info such as: requested entry price, requested position size (and dollar value) and requested round lots (FC#2377)
  3. Time&Sales column layout persists between runs now (FC #2341)
  4. Running any #import command (including "Update US symbol list and categories") is preceeded by prompt for confirmation now
  5. Report Explorer now supports copying selected items to clipboard (Edit->Copy), Ctrl+C (FC#2288)
  6. Quote Editor: added "Go to selected" button that quickly scrolls to and selects the data bar marked on chart (FC#2342)
  7. New Analysis: parameters were not reset to default values when formula was loaded. Fixed. (#2353)
  8. New Analysis: "Add artificial future bar" option does not affect Exploration and Scan anymore (FC#2353)
  9. Max. chart rendering time of 1000 ms when multithreaded charts are turned ON can be overriden now by registry setting. See FC#2330 for details.
  10. Increased width of symbol combo boxes in Symbol->Merge dialog to prevent truncation of ticker names
  11. Floating window caption is now synchronized even if it is not active (FC#2376)
    eSignal: new 64-bit version allows to select whenever EOD bars should report Settlement price or regular close
  12. Change PlotShapes does NOT use "shape0", "shape1" variables anymore to prevent clashing with user-defined variables (#104931)
  13. ASCII importer now supports $WEBID command and WEBID field in the $FORMAT command to allow importing web ID (FC#2362)
  14. ASCII importer now supports $ISINDEX, $ISFAVORITE commands, and ISINDEX and ISFAVORITE fields in the $FORMAT command (FC#2310)
  15. Apply To: Filter dialog takes less time to show up


For more details, instructions and examples how to use new features see the 5.69.0 BETA READ ME

64-bit DDE plugin updated

A new 64-bit versions of DDE plugin is available for download from:

  1. (database plugin, 64-bit)

The plugin DLL files should be copied to "Plugins" subdirectory in the AmiBroker (remember only 64-bit installation) folder, overwriting old versions.

CHANGES FOR VERSION 1.4.0 (as compared to 1.3.0)
* 64-bit DDE plugin was producing incorrect timestamps. Fixed.

Instructions on usage are available here: