AmiBroker 6.25.0 BETA Read Me

July 25, 2017 0:20


Backup your data files and entire AmiBroker folder first!


First you need to have full version of AmiBroker 6.20 installed. Then just run the BETA installer and follow the instructions.

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

See CHANGE LOG below for detailed list of changes. Note that only changes that affect end-user directly are listed here. Internal code changes/refactoring is usually not mentioned.

UPGRADE POLICY: This version is a free upgrade for users who purchased AmiBroker license after July 24, 2015.


This version brings:


This version is experimental because we are migrating 64-bit version to brand new compiler (VC++ 2017). Such migrations pretty often brings some compatibility risks therefore backup is highly recommended (although you can always go back by just installing previous version). We needed to migrate not only the program itself but many internal libraries taking care not to break backward compatibility.

Note that migration does NOT affect 32-bit version. It is still compiled with old compiler.

Why do we migrate to new compiler with 64-bit version?

  1. New compiler supports new CPU instructions (SSE3/AVX) that we can use to offer better performance
  2. According to our tests new compiler support produces faster code by itself (better optimizations, auto-vectorization, etc)
  3. New compiler is better with error checking (less bugs to slip through)
  4. We don't need to care about compatibility with pre-Vista systems in 64-bits version and all 64-bit capable CPUs are "modern" enough.

Why do we stay with old compiler in 32-bit version?

  1. New compiler does not produce code compatible with older operating systems (XP or earlier). Old compiler offers 100% compatibility with all Windows versions
  2. New compiler requires modern CPUs

Exact performance improvement is function dependent and hardware dependent. Many functions are faster by 30-50% but in some cases such as Min()/Max() functions as large as 8x speed up can be observed in 64-bit version.


This version features preliminary support for native chart GUI (buttons and edits at the moment). Please be resonable with Gui* functions and be aware of Windows limits.
As all controls in Windows (buttons, edit boxes, etc) are actual Window objects they are subject to Windows limitation.
And there is a limit of 10000 windows PER PROCESS. So don't try to create thousands of buttons (like a button for every bar of data) because
first you will see huge performance decrease and next you will hit the limit and run into problems (crash)

Best practice is to keep the number under 100-200.

If you need more consider using low-level graphics instead.

Here is a sample formula that shows basic usage of Gui* functions:

GuiButton( "Custom button", 1, 10, 40, 100, 30, 7 );
GuiButton( "Dynamic "+Date(), 2, 120, 40, 150, 30, 7 );
GuiButton( "System button", 3, 320, 40, 100, 30, 7 );
GuiEdit( 5, 450, 40, 100, 20, 31 );

GuiSetColors( 1, 3, 2, colorRed, colorBlack, colorRed, colorWhite, colorBlue, colorYellow, colorRed, colorBlack, colorYellow );
GuiSetColors( 3, 3, 0 ); // default (system) look

editText = GuiGetText( 5 );

Title = "Text entered: " + editText + "\nLast event: " + GuiGetEvent( 0, 2 );

id = GuiGetEvent( 0, 0 );
event = GuiGetEvent( 0, 1 );

if( id == 3 && event == 1 ) GuiSetText("Button clicked",5);


CHANGES FOR VERSION 6.25.0 (as compared to 6.22.0)

CHANGES FOR VERSION 6.22.0 (as compared to 6.21.0)

CHANGES FOR VERSION 6.21.0 (as compared to 6.20.1)


If you experience any problem with this beta version please send detailed description of the problem (especially the steps needed to reproduce it) to support at