AmiBroker 5.34.0 BETA released

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

This is a BETA version. May still exhibit minor problems. Make a backup first

A new beta version (5.34.0) of AmiBroker has just been released.
(1 670 368 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.30 or higher

The highlight of this version is a first public release of completely rewritten AFL engine that now allows multi-threaded execution. Original AFL engine was written back in 1997 when multi-core/multi-processor computers were not available for “average” user, therefore the engine was written to optimize single-thread execution speed. Now when multi-core processors are common and improvements in linear single-core CPU speed practically stopped, the only way to gain more speed is to run several formulas in parallel. Rewritting such a complex piece of software like AFL engine to allow parallel execution is not easy and straightforward, so it had to take some months to complete. Although the engine alone is already 100% complete, there are other areas of the program that need to be rewritten or at least changed significantly to leverage new possibilities. Charts are the first area where parallel execution is fully utilised as of version 5.31.0 BETA. If you were struggling with real-time performance of your complex charts, you should see dramatic improvement after turning multi-threaded charts on (in Tools->Preferences, “AFL” tab). For details see Read Me file.

CHANGES FOR VERSION 5.34.0 (as compared to 5.33.0)

  1. Fix: Gfx functions when run in multithreaded mode slowed down over time due to Micosoft MFC library GDI wrappers not being thread-safe. Fixed by replacing MFC calls with straight WINAPI calls.
  2. Multi-threading charts are now ON by default and will be reset to ON on each restart. This change is temporary but added because some people forget to turn this on.
  3. Fix: When Symbol Lock was ON, currently focused chart did not update its quote cache. Fixed
  4. Fix: Status(“redrawaction”) was giving 0 result for timed refreshes in 5.31-5.33 while it should give 1. Fixed.
  5. Fix: GDI leak found when using Gfx* functions in Automatic Analysis that resulted in resource exception after long use. Fixed
  6. Fix: GDI leak found after Parameter windows “Reset all”. Fixed
  7. Fix: Black screen in Edit->Image->Copy as bitmap/Metafile/Export/Send e-mail. Fixed. Now uses separate instance of AFL engine not to interfere with execution running in the background.
  8. Fix: AFL engine did not release memory buffer for pre-processed parts (#include). Fixed
    AmiBroker now has requestedExecutionLevel set to “asInvoker” in its manifest file and that prevents Vista/Windows 7 folder virtualization. It also displays a warning message when it does not have write access to its working directory.

CHANGES FOR VERSION 5.33.0 (as compared to 5.32.1)

  1. OLE: Analysis object – added IsBusy property that allows OLE programs to check whenever AA is currently running asynchronous AA operation
  2. In 5.32.1 only active window was refreshed automatically by streaming data – others required mouse click. Fixed.
  3. In 5.32 formulas using Status(“actionex”) == actionIndicator caused blank pane when focused because actionex was NOT indicator. Compatibility shim implemented.
  4. Fixed bad crash occuring when using AddToComposite with atcFlagsEnableInIndicator in multi-threaded mode
  5. Fix: Interval linked charts did not update immediatelly and multi-window layouts required click to update after loading. Fixed.
  6. Fix: Crash @501C30 when doing double right click on Data window
  7. Dangling pointer to view (after its deletion) removed from timedrefresh map and parameter window. This prevents some crashes.
  8. Compat: In 5.32 when SetOption() was placed AFTER custom backtester procedure code in user formula – such options did not affect CBT results. Technically 5.32 was correct one and 5.30 incorrect (such options affected CBT results), but because probably too many user formulas are poorly written without taking attention on placement of SetOption() calls and that created false bug reports, an old compatible behaviour was restored till the time when error messages about wrong placement of SetOption() calls are implemented, so users become aware about their coding errors.
  9. Bug recovery/report dialog now allows the user to type steps required to reproduce the crash and select how often given problem occurs
  10. Attempts to run AA asynchronous operation (Backtest/Optimize/Scan/Explore) via OLE while another one is still running are detected and prevented (with error message “Automatic Analysis is Busy processing”)
  11. AFL thread termination routine checks for possible same-process COM call deadlock and pumps COM messages if necessary to complete thread gracefully

CHANGES FOR VERSION 5.32.1 (as compared to 5.32.0)

  1. Fix: when “stop parsing at first error” option was turned on “Reset all” button in parameters window caused params to disappear. Fixed
  2. Fix: random crash @7792E25B (small alloc heap corruption) fixed
  3. Fix: random crash @4BFFF7 (when accessing static variables from multiple threads at once). Fixed.
  4. Fix: Eliminated multi-threaded race condition that randomly caused blank charts.

CHANGES FOR VERSION 5.32.0 (as compared to 5.31.2)

  1. Parameters work also without _SECTION_BEGIN/_SECTION_END,
  2. Parameters ‘Reset All’ operation improved
  3. Interpretation does not use extra execution cycle anymore (text evaluation is done within normal indicator execution).
  4. Formula Editor: Syntax check, Apply indicator, Insert work faster because it only uses 100 bars to perform syntax check instead of all bars
  5. Formula Editor: Code check & profile uses not more than 100K bars
  6. Fix: Timing display in the chart shows correctly AFL execution and redraw time when multi-threading is ON and does not flicker
  7. Fix: Say() function works properly when multithreading is ON
  8. Fix: Errors occuring in JScript/VBScript parts do not result in crash anymore
  9. Data Window now allows to choose which of default data elements (OHLCV, OI, Aux1/2) to display – use Right click context menu
  10. Data window display is immediate and does not require extra AFL execution
  11. Data tooltip readout is immediate – does not use extra execution cycle anymore (implemented internal cache)
  12. When there are no parameters for given indicator – empty brackets are not added anymore for display in tooltip/data window and as a return value of _DEFAULT_NAME().

CHANGES FOR VERSION 5.31.2 (as compared to 5.31.1)

  1. Fixed: Problems with Gfx functions (all references to ChartInfo removed) in 5.31.1
  2. Fixed: Parameters window was not refreshed properly after ResetAll in 5.31.1
  3. Fixed: Crash when switching layouts in 5.31.1
  4. Fixed: Crash @004C297D – Foreign returned wrong interval in 5.31.1
  5. Fixed: Crash @0040F91C / @0040FA2B (all references to ChartInfo removed from AFL engine) in 5.31.1
  6. Fixed: Automatic Analysis ignored changes done via SetOption and other runtime settings-related changes in 5.31.1
  7. Fixed: Changing chart display interval did not work immediatelly in 5.31.1

CHANGES FOR VERSION 5.31.1 (as compared to 5.31.0)

  1. fixed crash @0040BACD (using Gfx… functions) when multi-threading was enabled
  2. fixed crash @0041E27C (JScript/VBScript embedded code) when multi-threading was enabled
  3. fixed crash @7686F05D and @004B83EC (load/create new database) when multi-threading was enabled

CHANGES FOR VERSION 5.31.0 (as compared to 5.30.4)

  1. Major change: AFL Engine rewritten completely to allow multi-threaded execution
  2. $HYBRID now allows importing OpenInterest, Aux1, Aux2 onto existing data without need to specify price
  3. new AFL function: PlaySound( “filename” )
  4. new AFL function: ShellExecute( “filename”, “arguments”, “workingdir”, showcmd = 1 )
  5. Multiple file open dialogs now use 1MB buffer (instead of 256K)
  6. OptimizerSetOption and OptimizerSetEngine are now no-ops for anything but backtest/optimization action
  7. Value labels are drawn with a little offset from the Y axis. First Plot() label is drawn with an arrow pointing out exactly price level
  8. When main application window is in modal state (displaying File open dialog for example), RequestTimedRefresh is held
  9. When multiple MDI windows are open and one is maximized, the windows in back that are completely obscured by others and minimized windows are not redrawn during normal RT refresh


  1. Data tooltips do not show interpretation text (only interpretation window shows it) and you can not set custom data tip text using Tooltip variable (this functionality is made obsolete). Use Interpretation window instead.
  2. When Symbol Lock is ON, currently focused chart does not update its quote cache. Workaround: Unlock the symbol lock.

Hint: If AmiBroker 5.34.0 crashes at start up with “multi-thread charts” option enabled, you can make it work by holding down the SHIFT key while starting AmiBroker – this will turn OFF multi-threading.

For more details and instructions see the 5.34.0 BETA READ ME.

Next planned beta (5.35.0) should arrive next Friday.

Comments are closed.