AmiBroker 5.49.2 BETA Read Me
November 18, 2011 14:00
THIS IS A BETA VERSION OF THE SOFTWARE. EXPECT
BUGS !!!
Backup your data files and entire AmiBroker folder
first!
INSTALLATION INSTRUCTIONS
IMPORTANT: This archive is update-only. You have to install full version
5.40 first.
Just run the installer and follow the instructions.
Then run AmiBroker. You should see "AmiBroker 5.49.2 BETA" written
in the About box.
See CHANGE LOG below for detailed list of changes.
CHANGE LOG
CHANGES FOR VERSION 5.49.2 (as compared to 5.49.1)
- New Analysis: added Optimize->3D Optimization chart menu
- New Analysis:
buttons for Portfolio Equity/Individual Equity charts added
- New Analysis:
Info Bar added (that duplicates some of the info that normally appears on
the Info Tab). It can be turned on using Settings->Info Bar
- New Analysis:
Report generation is now OFF by default when running optimization/walk forward
as in old AA. This gives about 0.9 sec gain per step.
- New Analysis: Single-symbol
optimization made faster by caching already compressed quote array on subsequent
steps
- New Analysis: the check for Status("StockNum") was sensitive
to blanks between parenthesis, function name and string parameter. Now it
is
made insensitive
to blanks.
- New Analysis: when "Range" was "n last bars" or "n
last days", Status("rangefromdate") gave date of preceding
bar. Fixed.
- UI: "Performance" tooltip title was not always updated
on time. Fixed.
- UI: "Wait for plugin" window displays progress bar
with "marquee" style
instead of circle of dots
CHANGES FOR VERSION 5.49.1 (as compared to 5.49.0)
- New Analysis: Testing on unaligned data sometimes took longer than expected
because of the work necessary to bring signals in order. Now a smart method
avoids most of the memory transfers and can give 10x speedup on backtesting
very long unaligned intraday data.
- New Analysis: "Backtest started", "Exploration started" text
in the info tab appeared twice per run (instead of once). Fixed
- New Analysis:
Backtest report did not include formula code. Fixed.
- New Analysis: Fixed crash
that could occur when running analysis with Range set to "N recent bars" and
N was exceeding number of quotes.
- New Analysis: Float/Normal/Close popup
menu RMB menu was active everywhere in floating window instead of only caption
area. Fixed.
- New Analysis: Implement single-thread start when Status("StockNum")
is detected in the code. Other threads are started when first symbol processing
is completed.
- New Analysis: Send to Analysis did not update formula combo
box properly in certain scenarios: when formula X was selected, then formula
Y, then formula
X again. Fixed.
- Old AA: status bar displays true timing
for fair comparisons between old AA and new Analysis. Watching progress
bar numbers was misleading
as it
closed before all processing was truly complete, so it looked like
old AA completed
sooner than it really did
- UI: menu item for Old Automatic Analysis restored
as apparently some users got lost. Also attempt to run old Automatic analysis
displays
an information
about new Analysis window
CHANGES FOR VERSION 5.49.0 (as compared to 5.48.0)
- New
Analysis: when floating pane is made normal from/to dates were reset to today.
Fixed.
- New Analysis: when Apply To: Filter is defined so NO symbol matches
the criteria, appropriate message is displayed when trying to run Analysis
and action is
terminated instead of displaying progress bar forever
- New Analysis: when analysis
window is "floating" double click/show
arrows/sync affects active MDI chart just like old AA did, as opposed to
last one (when analysis is not floating)
- New Analysis: Optimization parameter
setup stage uses now not more than 100 bars. This reduces setup time.
- New
Analysis: implemented import / export, File menu now has Import HTML and
Export HTML/CSV commands
- New Analysis: Implemented "Wait for backfill" option.
This slows down analysis sequence so AmiBroker waits for external RT data
source to
deliver backfill data
When "wait for backfill" option is turned on, AmiBroker checks if
data for given symbol are complete, if not, it sends request to external source
to backfill the data and waits 1 second.
After one second, it checks again, it data are complete, if not, it waits another
1 second, and so on. Once data are complete given symbol is used for formula
execution.
- New Analysis: Custom backtester uses "last backtest
settings" when
calling GetStatus() instead of old AA settings
- New Analysis: auto-repeat interval
edit field did not allow to enter values if moved to main toolbar via customization.
Fixed.
- Formula Editor Analysis toolbar button now operates on New Analysis
window
- Default for timestamping of intraday compression changed to "Show
START time of interval"
- Charts: AFL error message color is now definable
in Tools->Preferences, "Color" tab
- Charts: Tooltips automatically
display also OHL prices (in addition to close) when Plot style is set to
candlestick, bar or when PlotOHLC was used
- UI: Adjusted item Y offset for owner
drawn listviews for consitent look with old layout of system listviews
in Windows XP and earlier OSes
- UI: Account, Analysis and Web research windows
don't use client edge/border anymore - gives slicker / less crowded look
- UI: when focus is switched to floating document window, the application
menu is switched to proper context
- UI: When File->Close was used on floating pane, document was closed
but docking pane was not. Fixed.
- UI: The toolbar button and menu option to launch old Automatic Analysis
window are now hidden (can be brought back by using Tools->Customize),
old AA can also be launched from new Analysis via Analysis->Old Analysis
menu
- UI: New menu options and toolbar button to launch new analysis window
- UI: Moved all menu items controlling visibility of docking windows to "Window" menu
- UI: floating state of windows can now be turned on/off using right-click
menu over tab / floating window caption
- UI: File->Save (when currently selected window is a chart) command now
saves Chart template. To save database use "Save database" instead.
- UI: Defaults for data window are changed, so extra OHL display is turned
off by default as currently PlotOHLC displays all 4 prices in the tooltip
and data window already
- UI: Data window scroll bars are hidden and do not flicker when updating
- UI: "Save All" toolbar button removed, "Save database" button
added to replace it
- Web Research: turned on "silent" mode - should prevent error
message boxes displayed by IE engine.
- QuoteEngine: Range bars algorithm improved significantly
- Quote array uses 20480 bytes (512 quotes) allocation chunk size (exactly
5x4KB page) for better alignment with Windows virtual memory pages
CHANGES FOR VERSION 5.48.0 (as compared to 5.47.0)
- New Analysis: custom metrics columns were invisible in backtest/optimizations.
Fixed. (#91031)
- New Analysis: backtest did not display proper column names
when Report mode was different than trade list. Fixed. Also added support
for changing report
mode via SetOption().
- New Analysis: Auto-repeat Scan/Explore implemented (aka. "Run
every" in
old AA) (use drop down menu next to "Settings" button)
- New Analysis:
Showing arrows by double click implemented
- New Analysis: Sync chart on select
option implemented (use drop down menu next to "Settings" button)
- Fixed
window activation issue after RMB click in chart window when non-chart floating
windows are active
- New Analysis: Cancelling walk-forward did not restore date
range and settings and didn't reset internal step counter. Fixed.
- New Analysis:
Formula path disappeared when window was made floating. Fixed.
- New Analysis:
in 5.47 non-exhaustive optimizers sometimes stopped after first step in walk-forward.
Fixed.
- Charting: scroll bar zoom function remains active even at extreme zoom
in levels
- New Analysis: Fixed problem with opt steps warning dialog appearing
sometimes in the out-of-sample tests in walk forward sequence
- New Analysis:
Signal heaps are separated now, allowing to run concurrent backtest/optimizations
in many analysis windows
- New Analysis: removed unnecessary refreshes of symbol
list during optimizations that caused slowdowns when user had large database
- New
Analysis: The size of control fields is properly adjusted with regards to
DPI
- New Analysis: Status("StockNum") was always zero in 5.47 and
earlier. Now it is set properly.
Caveat: be careful when you run codes that use Status("StockNum")==0
for special processing in multithreading mode.
Other threads with "StockNum" = 1, 2, 3,... will run simultaneously!
If you store static variables in step 0 these variables may be empty if you
access them from other parallel running threads.
- Fixed Error 53 message that was giving an
error when proper \" (quotation
mark espace sequence) was used
CHANGES FOR VERSION 5.47.0 (as compared to 5.46.0)
- New Analysis: last used ApplyTo/Range/From/to dates/filters and other settings
are saved when Analysis window is closed
- Fix to "slow response" problems
some users reported when switching symbols
- Fibonacci retracement- modifying
Z-order affected only control trendline, not all lines as it should. Fixed.
- New
Analysis: implemented Walk-Forward testing (use drop arrow next to Optimization
button)
- AFL engine: new error 53: incorrect \ espace sequence. Error is issued
when user forgets that single slash must be written as \\
- Default title for
new analysis window is "AnalysisX" (instead of "Unnamed")
where X is consecutive number 1, 2..
- attempt to use Say() on
computer without sound card or without driver installed does not result
in throwing exception/crash report, but it is rather silently
ignored
CHANGES FOR VERSION 5.46.0 (as compared to 5.45.0)
- New Analysis: Exhaustive multi-threaded optimization implemented
- New Analysis: Smart (non-exhaustive) multi-threaded
optimization implemented
in a way compatible with existing optimizer plugins
Note however that due to the fact that most non-exhaustive optimization plugins
are not re-entrant, AmiBroker prevents from running more than one non-exhaustive
multi-threaded optimization at a time.
You can however, run many exhaustive optimizations in parallel, as they don't
require external plugins.
- Slight modification to the way how compressed bar charts are drawn (so
bars with H==L are better visible)
CHANGES FOR VERSION 5.45.0 (as compared to 5.44.1)
- 64-bit version compiled with new version of C runtime (Microsoft security
update)
- 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
can fail
(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
NOTE:
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
simplest formulas)
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.
- Load/Unload
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
source)
- 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",
x )
"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
offers.
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
AddSummaryRows
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
arrows functionality)
- 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
Performance note:
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).
Example usage:
Filter=1;
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
was many
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
LOW-HIGH range.
- 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
content
- 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
cache size.
IMPORTANT:
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
to complete.
- Old
and new Analysis window: outputting millions of rows to listview is much
faster now
- 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