AmiBroker 6.14.0 BETA Read Me
June 18, 2016 17:13
THIS IS A BETA VERSION OF THE SOFTWARE. EXPECT
Backup your data files and entire AmiBroker folder
First you need to have full version of AmiBroker 6.10 installed. Then just
run the BETA installer and follow the instructions.
Then run AmiBroker. You should see "AmiBroker 6.14.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.
CHANGES FOR VERSION 6.14.0 (as compared to 6.13.0)
- AFL: ParamDate() added support for format=2 to return datetime instead
- AFL: PercentRank function now accepts variable period (range)
- AFL: PriceVolDistribution
crashed if startbar argument was negative. Fixed by implementing protection
against negative bar indexes.
- AFL: PriceVolDistribution sometimes produced
some random values in 6.13. Fixed.
- ASCII importer now supports microsecond
resolution timestamps (HH:MM:SS.mmmuuu) where mmm - milliseconds 000..999,
uuu - microseconds 000..999
- New Analysis: new feature a PAUSE button to temporarily
pause/resume any running analysis. Note that already running threads are
they are allowed
to complete gracefully and then pause state is entered.
- UI: A warning message
is displayed when user attempts to close AmiBroker while Analysis is in progress
QuoteEditor in some cases did not properly round fractional part of millisecond
down to microsecond. Fixed
- UI: QuoteEditor: Edit fields for OHLC prices, Volume,
OpenInt and Aux now check for proper entry as you type and display red background
not proper numer. Also those edit fields don't accept characters other than
digits (0..9), decimal
- UI: Toolbar icons are set to "Large icons" mode
automatically on HighDPI screens
- When broker.workspace file was corrupted
or truncated, the file remained open which eventually prevented from writing
it on close. Fixed.
CHANGES FOR VERSION 6.13.0 (as compared to 6.12.0)
- AFL Editor: calling SetForeign thousands of times followed by RestorePriceArrays()
could cause exception during code verify when number of symbols exceeded
cache size. Fixed.
- AFL Editor: changes made in 6.11 to the way how automatic
names for new formulas
are assigned have been removed and replaced by new method that is faster
and more reliable.
- AFL Editor: if clipboard is locked by another application
the editor would retry opening clipboard upto 8 times before giving up
Editor: when formula was open cursor was located at the end. Now it is located
at the top.
- AFL: GfxSetCoordsMode( mode ) accepts now four different modes
mode parameter now accepts values 0, 1, 2, 3 with the following meaning:
0 - X and Y coordinates are expressed in screen pixels
1 - X coordinate is bar index, Y coordinate is price
2 - X coordinate is pixel, Y coordinate is price
3 - X coordinate is bar index, Y is pixel
- AFL: MA function
made upto 2 times faster, StDev function made 20% faster, Correlation made
- AFL: NormDist( x, mean = 0, sigma = 1, cumulative = True ) function.
Implements hi-precision algorithm.
The function uses hi-precision algorithm that gives accurate results even
for extreme left and right tails (<-5 and >+5)
The results are compatible with Excel 2003 and later which introduced higher
precision NORMDIST than previous versions (Excel 2002 and earlier).
x = 19;
m = 2;
s = 9;
printf("PDF %g CDF %g", NormDist( x, m, s, False ), NormDist(
x, m, s, True ) );
x = -7;
m = 0;
s = 1;
printf("PDF %g CDF %g", NormDist( x, m, s, False ), NormDist(
x, m, s, True ) );
- AFL: PriceVolDistribution( priceH, priceL,
vol, bins, absolute = False, startbar = 0, endbar = -1 )
// a demo showing
// re-implementation of VAP overlay using
// PriceVolDistribution and low-level graphics
bi = BarIndex();
fvb = FirstVisibleValue( bi );
lvb = LastVisibleValue( bi );
mx = PriceVolDistribution( H, L, V, 100, False, fvb, lvb );
GfxSetCoordsMode( 1 );
GfxSelectPen( colorRed );
bins = MxGetSize( mx, 0 );
for( i = 0; i < bins; i++ )
price = mx[ i ][ 0 ]; // price level
relvolume = mx[ i ][ 1 ]; // relative volume 0..1
relbar = relvolume * (lvb-fvb+1);
GfxMoveTo( fvb, price );
GfxLineTo( fvb + relbar, price );
Plot( C, "Price", colorDefault, styleBar );
if( ParamToggle("BuildinVAP", "No|Yes") ) PlotVAPOverlay(
100, 100, colorGreen, 2 );
- AFL: 64-bit version AFL Correlation() produced slightly different values
(+/-0.00001 typ) than 32-bit version due to compiler differencies. Now 64-bit
produces same values as produced by all 32-bit versions.
- Charting: new feature
- Snap to Tick grid. Snap drawing tool end points to TickSize-spaced grid
(if TickSize > 0 for given symbol)
- Plugin loading routine displays a message
box when plugins with incorrect bitness are found
- Plugin loading routine
writes detailed error message to the broker.log in case of problem of DLL
loading (must enable plugin log to use this feature)
To enable plugin loading messages you need to create the following key
in the registry:
(DWORD 32bit) key with value = 5
Example error codes:
Loading 'AmiBroker\Plugins\FT.dll' - failed. Error code: 126: The specified
module could not be found.. (0.63 ms)
- this means that the FT.DLL could not be loaded because it depends on
other DLL that is missing (or not found in search path)
Loading 'AmiBroker\Plugins\TC2K.dll' - failed. Error code: 1114: A dynamic
link library (DLL) initialization routine failed.. (0.23 ms)
- this means that TC2K.DLL was loaded fine but its InitInstance function
exited with error code. In that case it was because Telechart was not
installed and/or its OLE server not registerd
Loading 'F:\AmiBroker\Plugins\Sample.dll' - failed. Error code: 193:
Not a valid 32-bit DLL. (0.14 ms)
- this means that you attempted to use 64-bit DLL with 32-bit application
(not supported by OS)
- When drawn study is
being modified, Y distance shown in the status bar accounts for activated
snap-to-price and/or snap-to-tick mode now.
CHANGES FOR VERSION 6.12.0 (as compared to 6.11.0)
- AFL: new function GfxDrawImage( "filename", x, y )
The function currently supports BMP and PNG files.
Per-pixel transparency (alpha channel) is supported ONLY for 32-bit PNG files.
PNG files with 32-bit depth are rendered with AlphaBlend which is not be
available on oldest systems (Win95).
BMP files PNG files of lower depths are rendered without transparency using
BitBlt (fast and always available)
Loading and drawing BMP files is much faster than PNG (as much as 10 times
faster), approx load and rendering time is 0.3 ms for BMP, 3 ms for PNG
Timings that you get from Code check and profile are misleading for Gfx
functions because they don't include actual on-screen rendering.
GfxDrawImage( "wizard.bmp", 100, 0 ); // bitmap - fast
GfxDrawImage( "logo.png", 30, 30 ); // png - supports per-pixel
alpha channel / transparency
- AFL: new function ProdSince( condition, array ) - cumulative product of
array elements since condition is met
On bar when condition is met, initial product value is 1.
- AFL: new function Prod( array, range ) - cumulative product of array elements
over specified number of bars (range)
Note: when range is less or equal zero, product is equal 1.
- AFL: new function CumProd( factor ) - cumulative product of array elements
y = CumProd( 1.05 ); // 1% per-bar growth
Plot( y, "exponential growth", colorRed );
- AFL: new function VoiceCount( ) - returns number of available SAPI (Speech
API) voices - to be used with Say() command
- AFL: new function VoiceSelect(
num ) - select SAPI (Speech API) voice to be used with Say() function,
num is a numerical index of installed voices.
By default Windows comes with just one voice, but one can add countless
3rd party voices
- AFL: StaticVarAdd with non-array input produced incorrect results. Fixed.
- UI: Symbols with COMMA (,)
caused problems with multiple-selection operations. Now it is handled properly.
Symbol Information - date fields (like last split date, div date or delisting
date) can now be cleared (select all and press DELETE) to set
- UI: Realtime quote window: a RMB context menu items are
grayed when local data is used and an empty message is set to inform the
user that he/she
data source to use this window
- UI: Quote Editor allows now immediate
search for matching date - just type digits in format YYYYMMDD and list
will automatically scroll and
quote that most closely matches entered date
- UI: New Analysis: Alt+Enter
shortcut added to bring up settings window
CHANGES FOR VERSION 6.11.0 (as compared to 6.10.0)
- AFL: added formatDateTimeISO for ISO formatting regardless of locale settings,
Filter = 1;
AddColumn( DateTime(), "DT
ISO", formatDateTimeISO ); // generate a date/time
column that is always in ISO format regardless of regional settings in Windows
MxFromString was slow on very large matrices (>100000 cells) due
to poor performance of strtod function from Microsoft C runtime. Now MxFromString
does not use it and is even 1000 times faster on 100K+ cell matrices (5ms
- ASCII importer can now be even 20 times faster when importing NEW
(non existing) data that were oddly sorted (like for example in reverse order
dates instead of ascending).
- ASCII importer is now twice as fast when updating
already existing quotes thanks to using in-house code instead of msvcrt functions.
Fibonacci maximum user-definable level increased to 9000% (from 1000%)
processing is forced now every 125 ms (instead of 250ms) in Analysis window
to update UI components more frequently under heavy CPU load
- Ruin stop is
identified by Short(ruin) / Sell(ruin) instead of Short(6) / Sell(6)
splash screen is displayed a little sooner now and some pre-loading of editor
components is done at start to save time to open editor later
- When there were
thousands of files in "Formulas" folder opening
editor for the first time could take some time. Now this time is significantly
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 amibroker.com