New Amibroker 5.21


Download Now


Backup your data files and entire AmiBroker folder first!


IMPORTANT: This archive is update-only. You have to install full version 5.20 first.

Just run the installer and follow the instructions.

Then run AmiBroker. You should see "AmiBroker 5.21.0 beta" written in the About box.

See CHANGE LOG below for detailed list of changes.


CHANGES FOR VERSION 5.21.0 (as compared to 5.20.0)

  • Added optional data padding for non-trading days (switchable from View->Pad non-trading days menu) - for daily and higher intervals only (FC#1136,FC#1174)
  • All drawing tools now can define Z-order (from -5 to +5).

    Imagine that you could see the drawing objects arranged on the chart page like puzzle pieces on a table. Some objects may appear to be placed one on top of another, and others may be overlapping.
    This third dimension of chart page is known as "Z order." If the X axis relates to width and the Y axis to height, then the Z order relates to depth. Although Z order cannot be seen directly, just as can you position objects along X and Y (horizontal and vertical) axes, you can also position them in the Z order.
    Every object on the page has its Z order, positioned in back to front order, so that objects at the front will take precedence over objects behind.
    Z order gives you the ability to superimpose objects one on top of another.
    You can change Z-order parameter using Properties dialog
    as well as using Format->Z-Order->Bring Forward / Send Backward menus
    (and default keystrokes Shift+Page Up, Shift+Page Down)
    Negative values mean BEHIND axis/grid, positive mean above grid.
  • Blank area past last available quote can be now enlarged on the fly by simply using > arrow in the scroll bar or using mouse wheel (just roll the wheel past the last bar) (FC #430,#1516, #1500, #1239, #982, #808, #561 )
  • CBT: Backtester.GetSignalQty( bar, type ) method implemented (FC#1671)

    Backtester object
    GetSignalQty( bar, type ) method
    - retrieves the number of signals occuring on given bar
    type = 0 - both entry and exit signals
    type = 1 - only entry signals
    type = 2 - only exit signals
    Note that AmiBroker to conserve memory keeps track only of 2 * MaxNumberOfPositions entry signals on any single bar,
    however it keeps track of ALL exit signals (because they consume much less space and at the time of signal collection
    it is not known which positions are already open, so all exits must be tracked to prevent missing an exit)
  • E-mail alerts can now be sent through different port than 25 (see Tools->Preferences->Alerts) (FC#1641)
  • Early warning of indicator space running out. At application exit the message is displayed when less than 10% indicator space is left, plus an offer to run Indicator Maintenance (FC#1667)
  • new AFL functions ColorBlend

    ColorBlend( colorFrom, colorTo, factor = 0.5 )
    - the function blends (mixes) colorFrom with colorTo with 'factor' proportion using the following algorithm
    RGB = ( 1 - factor ) * RGB(colorFrom) + factor * RGB(colorTo );
    So factor = 0 means use colorFrom only, factor = 1 means use colorTo only. All in-between values
    mean create mix of colors. The lower the factor value means more colorFrom.
    This function makes it easy to lighten or darken colors like this:
    function ColorLighten( color )
    return ColorBlend( color, colorWhite, 0.5 );
    function ColorDarken( color )
    return ColorBlend( color, colorBlack, 0.5 );
  • Plot, PlotForeign and PlotOHLC now have new parameter zorder which defines the Z-axis position of given plot. (FC#257)

    zorder can be set from -5 to 5.
    The default is zero.
    Zorder = 0 means also where the "grid" is located.
    So if you want to plot BEHIND the grid you need to specify negative zorder parameter.
    Smaller values mean draw first (i.e. BEHIND others), higher values mean draw later (ON TOP of others).
    Plots are drawn in the following order:
    • zorder parameter takes precedence over the order of calling Plot() functions, so if z-order is set, it determines plotting order.
    • If multiple plots use the same z-order parameter they are plotted in reverse call order (ones that appear last in the code are plotted first). This rule can be changed by already existing switch graphzorder = 1 which, when specified, reverses this behaviour (so plots are drawn in call order).
    Please note the above applies to each zorder "layer" separately (so within same zorder "layer" reverse call rule applies)
    This may sound complicated but is required for backward compatibility.
    Bollinger bands with "cloud" fill behind price (zorder = -1)
    P = ParamField("Price field",-1);
    Periods =
    Param("Periods", 15, 2, 100, 1 );
    Width =
    Param("Width", 2, 0, 10, 0.05 );
    Color =
    ParamColor("Color", colorLightGrey );
    Style =
    ParamStyle("Style") | styleNoRescale;;
    Plot( bbt = BBandTop( P, Periods, Width ), "BBTop" + _PARAM_VALUES(), Color, Style );
    Plot( bbb = BBandBot( P, Periods, Width ), "BBBot" + _PARAM_VALUES(), Color, Style );
    PlotOHLC( bbt, bbt, bbb, bbb, "", ColorBlend( Color, colorWhite, 0.9 ), styleCloud, Null, Null, Null, -1 );

  • Rectangle and Ellipse drawing tool now are by default SOLID, with default fill color being a blend between background and selected drawing color, they are use ZOrder = -1 (behind regular plots) by default
  • Support for SSL (secure connection) e-mail alerts added, so now you can use your GMail accounts. (FC#83)
    1. Download and install AmiBroker 5.21 or higher
    2. Download and run SSL add-on from
    3. Configure (Tools->Preferences->Alerts) with SSL enabled as shown in this picture:
  • X-Y co-ordinate labels on axes implemented. Can be controlled using View->X-Y labels menu. (FC#1621, FC#732)