AmiBroker 5.67.0 BETA Read Me
August 7, 2013 11:03
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.60 first.
Just run the installer and follow the instructions.
Then run AmiBroker. You should see "AmiBroker 5.67.2 BETA" 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.
CHANGE LOG
CHANGES FOR VERSION 5.67.2 (as compared to 5.67.0)
- Using more than 100 Plot() statements in one formula could cause memory
corruption sometimes resulting in access violation. Fixed.
- File->New->Blank chart and then clicking "View" caused
exception in 5.67.1. Fixed
- Low-level gfx playback engine resets colors to black pen / white background,
so it does not get influenced by chart colors like labels.
- GfxSetOverlayMode(
2 ) sometimes produced incorrect output in 5.67.0. Fixed.
CHANGES FOR VERSION 5.67.0 (as compared to 5.66.0)
- New Analysis: Optimization continued even if there was error inside custom
backtest procedure. Fixed.
- Charting: a new "Warning 902 can not plot
a chart in logarithmic scale as a data set contains negative value(s)" message
is displayed on attempt to use log scale with negative data and the chart
is plotted in linear scale
instead.
- UI: 'Logarithmic scale' item added to "View" menu.
Also the user can add this to View toolbar using toolbar customization (click
on arrow in the "View" toolbar, "Add or remove buttons" then "View" then "Logarithmic...")
- AFL: new function
fdir( "wildcard", flags = 1 ) - returns comma separated
directory list (like "DIR" command)
"wildcard" is a path with a wildcard pattern to match.
For example "C:\\*.*" will give you all files in C: drive, but "C:\\*.txt" will
give you only files with .txt extension.
flags - controls what is returned the default is 1 - only files, 2 - only directories,
3 - both files and directories
Example:
printf("Only files:\n");
_N( list = fdir( "c:\\*.*", 1 ) );
for( i = 0; ( filename = StrExtract( List, i ) ) != ""; i++ )
{
printf( filename + "\r\n" );
}
printf("\n\nOnly directories:\n");
_N( list = fdir( "c:\\*.*", 2 ) );
for( i = 0; ( filename = StrExtract( List, i ) ) != ""; i++ )
{
printf( filename + "\r\n" );
}
printf("\n\nBoth files and directories:\n");
_N( list = fdir( "c:\\*.*", 3 ) );
for( i = 0; ( filename = StrExtract( List, i ) ) != ""; i++ )
{
printf( filename + "\r\n" );
}
- GfxSetOverlayMode( mode = 1
) did not work with "alternate background
fill". Fixed.
- Analysis Settings Load/Save buttons were positioned wrong
in RTL (right-to-left) systems. Fixed.
- AFL: CategoryCreate( "name", category
) - adds new category (currently supports only adding watchlists)
newwl = CategoryCreate( "name", categoryWatchList ) - this will add
(create new) watch list with "name" (if it does not exist) or will
return existing "name" watch list
newwl will hold new watch list index.
Currently only creation of watch list is supported by this function.
- 64-bit:
Fixed crash with backtest of more than 10 million bars
- 64-bit: Fixed 'squeeze'
problem with charts at full zoom out when more than 10 million data bars
were displayed
- OLE Stocks.Add and Stocks.Remove trigger resynchronization
of selected indexes to avoid problems with "symbol locked" charts
CHANGES FOR VERSION 5.66.0 (as compared to 5.65.0)
- 32-bit and 64-bit versions now use different registry key to save list
of DLLs so warning messages about non-certified 3rd party plugins are not
displayed
each time you switch between 32-bit and 64-bit app version anymore.
- Foreign("~~~EQUITY" )
within custom backtest proc in old AA returned zero (because of change in
5.65). Fixed.
- CBT: when low-level mode was used (no ProcessTradeSignals was
called) ~~~Equity open interest field was not filled with number of open
positions. Fixed.
- When user moved default Formula path somewhere else Report
charts were not generated properly. Fixed.
- CBT: a new field "TransactionCosts" (equivalent
to report's "total
transaction costs") is now supported in the custom backtester Stats.GetValue
method
- ASCII importer: added DELISTING_DATE to fields available in $FORMAT command.
To import delisted symbols you may use file like this. Acceptable date formats
are
YYYY-MM-DD (ISO standard) and DD-MM-YYYY (automatically detected).
Note that MM-DD-YYYY (US) is not detected because one can not automatically
detect if 01-02-2003 means
february 1st or january 2nd
#
$FORMAT NAME, DELISTING_DATE
$NOQUOTES 1
$OVERWRITE 1
SYMBOL,"2012-07-0
- AFL:
GetFnData returned invalid value for fields DividendPayDate and ExDividendDate
when they were empty (not set) in the Information window. Fixed (now Null is
returned)
- AFL: GetFnData now supports new field "DelistingDate"
dd = GetFnData("DelistingDate");
if( IsNull( dd ) )
printf("Security is active");
else
printf( "Delisted at" + dd + DateTimeToStr( dd ) );
- Information
window: added "Delisting date" field.
Delisting Date is a last day when security was available for trading due to
delisting. If the security is still active the field is empty.
- Information window: it was
not possible to set/change Dividend Pay Date and Ex Dividend date from UI.
Fixed.
- Preferences window: new tab "Candles & Bars" that controls
detailed appearance of candlestick and traditional bar charts
Use up/down colors - when marked bar charts use candlestick up/down color defined
in the Colors tab
End cap style - controls whenever bar charts are plotted so the endings of
lines are rounded, square or flat.
The difference between square and flat is that square end will plot with "square" pen
and with wide pens it will plot width/2 pixels above high and below low because
of pen thickness (looks good but high/lows are not precisely marked).
"
Flat" means that ends terminate at exact position (so high and lows are
precise), but the open/close ticks may look weird when plotted at high/low
("staircase effect")
Open/Close tick % thickness - controls the thickness of line used to plot
open/close ticks. It is expressed in % of main bar thickness (default is
100%)
Open/Close tick % length - controls the length of open/close ticks. It is
expressed in % of candle width which is usually half the distance between
bars (but not more than 30 pixels).
- The database
save was triggered when opening documents using recent file list. Fixed.
- Parameter
window: Right mouse button double click over parameter label resets selected
parameter to the default value now
- AFL: PlotShapes() now has XShift parameter
- Custom metric optimization target
(WF tab) is now matched case-insensitive (FC#2442)
CHANGES FOR VERSION 5.65.0 (as compared to 5.64.0)
- In-memory quotation cache can now be larger than 20K symbols. Now the maximum
is 100K symbols (user definable in Tools->Preferences, "Data" tab).
Caveat use extreme values ONLY if you have plenty of memory AND you are using
64-bit version
- New Analysis: Walk-forward result list colums had "alpha" type
which resulted in alphabetic sort when user clicked on column. Fixed (numeric
type
is used now).
- QuickData did not work properly for not time-based intervals
so it is now automatically turned off for charts using such intervals.
- Fixed
crash @0048C19A/48C1C4 (click on result list after backtest to show arrows
sometimes produced this).
- Trade profit calculation speeded up which results in upto 15% faster optimization
with lots of trades
- New Analysis: In 5.64.x "stocknum" incorrectly
started counting from 1 instead of 0 as in old versions. Fixed.
- Foreign/SetForeign/RelStrength
of the same symbol as active does nothing (i.e. refers to already existing
thread local data, instead of querying database)
- New Analysis: when SetSortColumns
was used in 5.63 and above it could trigger redundant multiple sorts. Now
it is fixed (sort only once)
- New Analysis: results are now sorted after
Individual Optimization the same way as after portfolio Optimization
CHANGES FOR VERSION 5.64.0 (as compared to 5.63.0)
-
New Analysis: Multi-threaded Individual Optimization (experimental). Upto
NumberOfCores faster. Note: no CBT and only exhaustive mode is supported as
of now
The new optimizer is called "Individual Optimize" in the New analysis
window and you can access it here:
Note that old "Optimize" button runs OLD (i.e. 5.60) optimizer -
for comparison purposes.
"Individual Optimize" will use all available processor cores to
perform single-symbol optimization.
In "Current symbol" mode it will perform optimization on one symbol.
In "All symbols" and "Filter" modes it will process all
symbols sequentially, i.e.
first complete optimization for first symbol, then optimization on second
symbol, etc.
Limitations:
1. Custom backtester is not supported (yet)
2. Smart optimization engines are NOT supported - only EXHAUSTIVE optimization
works.
For explanation of these limitations see http://www.amibroker.com/guide/h_multithreading.html
Eventually I may get rid of limitation (1) - when I change the CBT NOT to
use OLE anymore.
But (2) is probably here to stay for long.
- Built-in constant are set up once and shared among all threads to save
setup time (gives 10% speed up in execution of simple formulas)
- Built-in constants
such as colorBlack are now read-only and any attempt to overwrite such constant
value results in error 55.
- New Analysis, list view in scans, explorations and individual optimizations
is refreshed less often to gain some speed.
- In case of individual backtest
/ individual optimization the backtester allocates much smaller price cache
(just for 2 symbols) - takes less time.
- In 5.63 Bar Replay did not with "QuickData" enabled
(it required View->Refresh All to start working). Fixed.
- Some actions (like
import of past data, split, etc) did not trigger automatic chart refresh
when QuickData was enabled. Fixed.
CHANGES FOR VERSION 5.63.0 (as compared to 5.62.0)
CHANGES FOR VERSION 5.62.0 (as compared to 5.61.0)
- AddSummaryRows now supports also flag = 32. This flag adds standard deviation
row
Filter=1;
AddColumn(V, "Volume" );
AddSummaryRows( 63, 1.2 );
// add Total, Average, Min, Max, and Count and StdDev rows (1+2+4+8+16+32)=63
- with two decimal places summary rows are added at the top of the list
- AddSummaryRows treated NULLs as zeros in averages. Now it is fixed and
NULLs are not included in calculations.
- Drawing tooltip "bars" count
starts from 0 (when line is pure vertical) to match status bar X distance
display. Status bar coords display
is hidden
once drawing is done to prevent user confusion.
- Snap to price now allows
snapping to Closing and Opening price, to activate snap to close hold down "C" key,
to activate snap to open hold down "O" key
while drawing line / moving the mouse
- When "Play" button is pressed
Bar replay dialog checks if Start Date is earlier than End date and displays
error message if that is not
the case.
- Ticker box is updated with new full name if it is changed from
symbol information
- Per-symbol UserData fields are accessible now via GetFnData("UserData0")..GetFnData("UserData99").
This feature is for implementors of custom data plugins to allow them to
expose custom data
for( i = 0; i < 100; i++ )
printf( "UserData%g %g\n", i, GetFnData("UserData"+i) );
- New Analysis: In 5.61.0 Walk Forward kept old "Current
symbol" until
Scan/Explore/Backtest was run. Fixed
- First line in "Parallel trendlines" tool
is snapped to price (if the option is turned on) as normal trendline.
- eSignal:
now plugin supports EOD history for more than 40 years back
- Charting: Copy-Paste
Special allows to copy entire chart pane with various options
a) Entire chart pane (fully independent) - it creates a copy of chart pane,
assigns new chart ID, creates duplicate of the formula file so parameters are
independent and formula is private (not shared with source pane)
b) Entire chart pane (independent parameters, but shared formula), the same
as (a) but does NOT create duplicate of the formula so it shares the very
same formula file with the original pane
c) Entire chart pane (hard-wired, shared parameters, formula and drawings,
same chartID) - a new pasted pane is directly hard-wired with pane being
copied, so it shares the same CHART ID and every change made to it is made
to the original (source) too.
- Backtest report
now includes 'Total transaction costs' (sum of all commissions paid)
- Aux1/Aux2
fields now allow user-definable aggregation/compression mode (File->Database
Settings->Intraday Settings). Available choices are last (default),
first, highest, lowest, sum
CHANGES FOR VERSION 5.61.0 (as compared to 5.60.3)
- When using any drawing tool X and Y distance is shown in the status bar
(FC #2380)
- When position can not be entered due to insufficient funds the
Backtester
in the "detailed mode" gives additional info such as: requested
entry price, requested position size (and dollar value) and requested round
lots
(FC#2377)
- Time&Sales column layout persists between runs now (FC #2341)
- Running
any #import command (including "Update US symbol list and categories")
is preceeded by prompt for confirmation now
- Report Explorer now supports copying
selected items to clipboard (Edit->Copy),
Ctrl+C (FC#2288)
- Quote Editor: added "Go to selected" button that
quickly scrolls to and selects the data bar marked on chart (FC#2342)
- New
Analysis: parameters were not reset to default values when formula was loaded.
Fixed. (#2353)
- New Analysis: "Add artificial future bar" option
does not affect Exploration and Scan anymore (FC#2353)
- Max. chart rendering
time of 1000 ms when multithreaded charts are turned ON can be overriden
now by registry setting. See FC#2330 for details.
- Increased width of symbol
combo boxes in Symbol->Merge dialog to prevent
truncation of ticker names
- Floating window caption is now synchronized even
if it is not active (FC#2376)
- eSignal: new version allows to select
whenever EOD bars should report Settlement price or regular close
- Change
PlotShapes does NOT use "shape0", "shape1" variables
anymore to prevent clashing with user-defined variables (#104931)
- ASCII importer
now supports $WEBID command and WEBID field in the $FORMAT command to allow
importing web ID (FC#2362)
- ASCII importer now supports $ISINDEX, $ISFAVORITE
commands, and ISINDEX and ISFAVORITE fields in the $FORMAT command (FC#2310)
- Apply
To: Filter dialog takes less time to show up
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