AmiBroker 5.45.0 BETA Read Me
September 19, 2011 16:06
THIS IS A BETA VERSION OF THE SOFTWARE. EXPECT
Backup your data files and entire AmiBroker folder
IMPORTANT: This archive is update-only. You have to install full version
Just run the installer and follow the instructions.
Then run AmiBroker. You should see "AmiBroker 5.45.0 BETA" written
in the About box.
See CHANGE LOG below for detailed list of changes.
CHANGES FOR VERSION 5.45.0 (as compared to 5.44.1)
- 64-bit version compiled with new version of C runtime (Microsoft security
- Fixed date/time column sorting in virtual list views when regional
date format was different than yyyy-MM-dd
- AFL: ClipboardSet() returns True
(1) when clipboard has been successfully set. Sometimes clipboard is locked
by another applications and then write
(ClipboardSet() will return zero/False then)
- New Analysis: Changed alignment
of Date/Time column to left in backtest result list.
- Most AFL engine setup
moved to worker threads. Result - smaller UI thread load in MT charts (better
scalability) and much faster (upto 2x) explorations/scans
in New Analysis window
- New Analysis: added "Info" tab that provides
some summary information about analysis (number of rows, timings, backtest
summary) - contents can be
copied using Ctrl+C / Edit->Copy
End users should only look at "Completed in... sec" line that shows
actual run time of the analysis (scan/exploration/backtest).
The times shown in "timings" row are for Amibroker.com internal
use. In development/testing they help us tweak the performance of various
parts of analysis engine. The detailed timings do not sum up to actual run
time. No further infomation is available at the moment. The "timings" row
is subject to change/removal in the future versions.
If you have problems/questions with the performance of new Analysis window
please copy (Ctrl+C) the contents of Info tab and send to support.
- New Analysis: first-phase backtest signal
processing and ranking moved to non-UI threads, enabling better parallelism,
results in better backtest performance
(upto 2x in with trivial codes)
CHANGES FOR VERSION 5.44.0 (as compared to 5.43.1)
- New Analysis: fixed AddToComposite()
- New Analysis: Interval() function was
working incorrectly in new analysis window. Fixed.
- New Analysis: Backtest
~~~EQUITY symbol did not have "use only local
database" set in 5.43.1. Fixed.
- New Analysis: Backtest performance improved
by removing some unnecessary list view refreshes (now it should never be
slower than old AA even with
CHANGES FOR VERSION 5.43.1 (as compared to 5.43.0)
- When range different than "All quotes" was selected, backtest in
new Analysis window could produce incorrect results in 5.43.0. Fixed.
CHANGES FOR VERSION 5.43.0 (as compared to 5.42.0)
- New Analysis Window: multi-threaded Backtest feature implemented (experimental)
Note that only first phase of backtest is multithreaded (each symbol in separate
thread). 2nd phase (custom backtest) is executed in main thread as there
is only one symbol to work on (i.e. equity) and it needs to talk with OLE
which is single threaded and GUI.
buttons removed from Plugins dialog. This was developer-only feature and
it was abused by ordinary people who were unloading plugins that were
actually in -use (such as data plugins when being connected to given data
- ListViews: the last line (partially shown) in RT quote window was
not easily selectable. Fixed
- New Analysis window: Implemented Parameters dialog
- AFL: GetCursorMouseButtons()
sometimes missed clicks when multithreading was on and formula took ages
to execute. Now it is now 100% reliable.
- Auto-selection of proper layer based
on selected viewing interval
NOTE: This feature can be turned off by click with RIGHT mouse button over
layers window and UNCHECKING "Auto-select layer"
- IRA accounts support - implemented Settlement
delay in backtester, via SetOption("SettlementDelay",
"SettlementDelay" option describes the number of days (not bars)
it takes for sale proceeds to settle and be available for opening new positions.
SetOption("SettlementDelay", 3 ); // this will cause that proceeds
from sale are only available for trading on 3rd day after sale
For detailed tracking
Detailed log" report option now shows available and unsettled funds for
T+1, T+2 and so on
Note: when using this option it is recommended to use backtestRegularRaw
instead of backtestRegular, otherwise some trades may not be entered
because funds are not settled immediately and you need to be able to enter
not on first but subsequent buy signals and that is exactly what backtestRegularRaw
Note2: old backtester (Equity() function) ignores settlement delay
- Zoom in/out toolbar buttons zoom in finer steps (+/-10%)
- Analysis ListView,
RMB menu new option: "Add Rank column" - adds
a column with ordinal rankings based on current sort or just row number column
when list is not sorted
- New feature: Adding new chart/research/account/analysis
via (+) tab
- New Analysis window: Implemented SetSortColumns
- New Analysis window: Implemented
CHANGES FOR VERSION 5.42.0 (as compared to 5.41.0)
- Implemented right click menu in new Analysis windows (Add symbols to watchlist/Show
- Zoom in/out toolbar buttons now have auto-repeat feature
- In 5.41.0 Ctrl+C from
list view copied text without tabs (column separators). Fixed
- In 5.41.0 did not
refresh progress dialog optimization status list. Fixed. (owner draw list
view initial size is retrieved in PreSubclass now)
- In 5.41.0 did not display
Time&Sales in reverse order (newest on top). Fixed.
CHANGES FOR VERSION 5.41.0 (as compared to 5.40.3)
- New Analysis window (File->New->Analysis) - featuring multithreaded
Scan and Exploration
to fully benefit from multithreading it is best to use AmiBroker local NATIVE
database (not external)
as it is the only database that can deliver data quickly enough.
Tests show that on AmiBroker native databases scans and explorations are
100% scalable to multiple cores
- i.e. for example would run upto 8 times faster on 8 CPU/core machine.
IMPORTANT: This window is work-in-progress. Multithreaded Backtest and Optimization
features will be added later.
- AFL: AddColumn - added mini bar charts to explorations
Exploration now features ability to create mini bar charts in individual cells.
AddColumn has new parameter 'barchart'
AddColumn( ARRAY, "Caption", format = 1.2, fgcolor = colorDefault,
bkcolor = colorDefault, width = -1, barchart = null )
'barchart' parameter accepts values from 0...100 represening percentage width
of bar chart displayed in a cell
the in-cell bar chart is drawn with bkcolor (background color).
AddColumn( Close, "Close" );
rank = PercentRank( Close, 100 );
Color = ColorHSB( rank * 64/100, 255, 255 );
AddColumn( rank, "100-day percent rank", 1.2, colorDefault, Color,
-1, rank );
Note that although this example uses same value for numeric display and chart
bar width, it does NOT need
to be the same, i.e. numerical value of the cell is independent from bar chart.
- Totally rewritten listview with very efficient owner draw code speeds up
list view scrolling/resizing/repainting more than 10 times. Native system
ListView control is terribly slow on Windows XP/Vista/7 (surprisingly it
times faster in Win9x!)
- AFL: Percentile()
does a param check for range > 0 now
- Mini-chart in RT Quote window - Mini chart shows where LAST price is within
- Errors and
warnings are now displayed in red color in the indicator pane
- During actual
GDI chart rendering AmiBroker measures time and if it exceeds 500ms timeout
it stops rendering with Warning 901.
This check is required because GDI rendering occurs in GUI thread and if GUI
thread does not process messages for half second Windows will think that application
is "not responding".
This prevents making application stuck with some overly complex, possibly incorrect
formulas that call hundreds of Plot()s
- Warning 502: Calling Plot()/PlotOHLC
over 500 times is displayed in indicator in runtime to prevent abuse
- All list
views, pressing Ctrl and NumPad'+' automatically adjusts column widths to
- if data are missing in the in-memory cache, Foreign()
calls from non-GUI threads use synchronous retrieval method for reliability.
This provides reliable results in AA but may slow down the multi-threaded operations
if cache size is too small and user uses more Foreign() calls than in-memory
For optimum performance in-memory cache setting (Tools->Preferences->Data)
should be GREATER than number of Foreign() calls in any single formula used.
Values lower than that cause lots of disk activity and serialization of all
Foreign calls that means that additional threads must wait for data retrieval
and new Analysis window: outputting millions of rows to listview is much
- All list views - Ctrl+A (Select All) made much faster
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