AmiBroker 4.84.0 Beta Read Me
August 6, 2006 13:59
THIS IS A BETA VERSION OF THE SOFTWARE. EXPECT BUGS !!!
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 4.84.0 beta" written
in the About box.
See CHANGE LOG below for detailed list of changes.
CHANGES FOR VERSION 4.84.0 (as compared to 4.83.1)
- Added GradientFillSlow code to support gradients on printers and metafiles
which do not support them natively (completed: 2006-07-28)
- Added GraphGridZOrder
variable to control when grid lines are plotted (completed: 2006-07-31)
When you specify
GraphGridZOrder = 1;
then grid lines are plotted on top of any charts
- AFL: new function RequestTimedRefresh(
interval, onlyvisible = True ) (completed: 2006-08-06)
RequestTimedRefresh( interval, onlyvisible = True )
- causes given
indicator window to refresh automatically every <interval> seconds
regardless of data source used or connection state.
interval parameter defines timeout in seconds between refreshes. AmiBroker
attempts to align refreshes to second boundaryso if you call it RequestTimedRefresh(
5 ) you should get refreshes at 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 and
55 second of the minute.Due to the way how regular (low overhead) timers are
implemented in Windows they have accurracy of +/-55ms providedthat CPU is not
very busy. Don't expect to get first line of your code to execute exactly at
.000 milliseconds. This varies depending on machine load, number of quotes,
system time slice and tens of other factors.Usually (on my testing machines)
the first line of the code executes anywhere in the first 100 ms of the second,
provided that other processes do not interfere. Windows is not real-time operating
system and it does not guarantee any fixed execution/reaction times.
onlyvisible parameter set to True (default value) means that refreshes
are triggered only for visible and not minimised windows. This applies also
to main AmiBroker window - when it is minimised charts are NOT refreshed by
default. To force refreshes when window is minimised you need to set this parameter
to False. Note that this visibility applies to mostly to 'minimised' state
or the situation when you move chart outside the boundary of physical screen
so it is not visible to an eye but still open. It does not apply to chart windows
that are on placed on inactive sheets, as they do not really exist until they
are shown (this way AmiBroker conserves memory and CPU) and as non-existing,
can not be refreshed.
RequestTimedRefresh( 5 ); // automatically refresh this particular
chart every 5 seconds
Hint: to detect whenever given refresh comes from timer
or user action you can use Status("redrawaction") function. It returns
0 for regular refresh (user action) and 1 for timer-refresh
- AFL: Status("redrawaction")
added (completed: 2006-08-06)
Status function now supports new field: redrawaction
It returns 0 (zero) for regular refreshes,
and 1 for refreshes triggered via RequestTimedRefresh(). Note that in the
future more return values can be
- CreateStaticObject() actually calls internal CreateStaticObject :-) -
for some reason it was calling regular CreateObject() instead. (completed:
- Fixed problem with HoldMinDays sometimes allowing exit too soon
- Fixed: Custom metric sort problem in optimization
result list (occurred in 4.83 only) (completed: 2006-07-29) (ext.ID: 345)
resizing algorithm changed so if you drag the divider between panes only
neighbouring panes are resized (others remain unchanged)
- Real time quote
parent window has WS_CLIPCHILDREN style in order to fix some minor redraw
issue (completed: 2006-07-31)
CHANGES FOR VERSION 4.83.1 (as compared to 4.83.0)
- Fix to FC#302 caused problems with calling COM properties with parameters.
This is now fixed.
CHANGES FOR VERSION 4.83.0 (as compared to 4.82.0)
- Added detection of multiple copies of plugins for the same data source (completed:
This (multiple copies of the plugins for same data source) was causing problems
and lots of support issues because people were using old plugins even if
they installed (newer) copy of the plugin. This was so becasue AB always
one encountered in given directory and it usually was the oldest one. Now
AB displays warning message that there are multiple copies of the same plugin
and then they must be renamed or removed.
- Added HoldMinDays and EarlyExitDays
options to SetOption() (completed: 2006-07-27)
In addition to already exitsing functionality of HoldMinBars / EarlyExitBars,
new options to specify min hold/penalty period in CALENDAR DAYS (as opposed
SetOption("HoldMinDays", 30 ); //
set minimum holding period to 30 calendar days
SetOption("EarlyExitDays", 90 ); //
set penalty period to 90 calendar days
Note that you can use one or another (not
both at the same time) for one parameter, so you can specify minimum holding
period in either days or bars (but not both
at the same time). The same with EarlyExit period. You may however use different
specifications (i.e. days/bars) for EarlyExit and HoldMin (they are independent
from each other).
- Added scoreExitAll constant that causes rotational mode backtester
to exit all positions regardless of HoldMinBars (completed: 2006-07-27)
Note that this is global flag and it is enough to set it for just any single
symbol to exit all currently open positions, no matter on which symbol you
use scoreExitAll (it may be even on symbol that is not currently held).
By setting PositionScore to scoreExitAll you exit all positions immediatelly
regardless of HoldMinBars setting.
..your normal score..
// if market timing signal goes negative close
PositionScore = IIf(
MarketTimingSignal < 0,
scoreExitAll, PositionScore );
NOTE: This flag works ONLY in rotational trading mode (in regular
mode it is easy to generate such global exit by ORing sell signal with global
- CBT: Added ExitReason property to Trade object (completed: 2006-07-18)
- Chart Tree - RMB - Edit - now restores and focuses to already opened formula
editor (if it is during editing) (completed: 2006-07-24) (FC#: 300)
Note that you can still open NEW instance of the editor with the very same
file (for comparison and to see the original contents) by holding down SHIFT
key when choosing "EDIT" menu.
- Eliminated extra unnecessary refreshes
of commentary window when new symbol was picked from ticker selector (completed:
- Fixed calling parameter-less JScript functions from AFL level
(completed: 2006-07-19) (FC #: 302)
- Fixed: wrong estimated time in progress
dialog when number of steps is greater than 2^32 (4294967296) (allocated
to: 4.80.2) (completed: 2006-07-24)
- AFL: Added Gradient background coloring
(SetChartBkGradientFill function) (completed: 2006-07-26)
Gradient fill of chart interior is now available via SetChartBkGradientFill
Please note that this is independent from chart background color (background
color fills entire pane, gradient fill is only for actual chart interior,
so axes area is not affected by gradient fill)
bottomcolor, titlebkcolor = default )
topcolor - specifies top color of the
bottomcolor - specifies bottom color of the gradient fill
titlebkcolor - (optional)
the background color of title text. If not specified then top color is automatically
used for title background.
SetChartBkGradientFill( ParamColor("BgTop", colorWhite),ParamColor("BgBottom", colorLightYellow));
- Multiple tabs in RTQ window (completed: 2006-07-18) (FC#:
RT quote window tabs behave the same as chart tabs: can be renamed with
right mouse button and dragged from one place to another.
20 tabs are currently available.
- Non-numeric custom trade metrics are not
formatted with thousands separators anymore (completed: 2006-07-21) (FC#:
- now Tools->Preferences->Misc "Decimal places in RT quote window" allows
to specify upto 6 decimal places. (completed: 2006-07-25)
- OLE: Fixed default
property (Item) marker for Windows collection (completed: 2006-07-18)
dialog: now estimated time is displayed in years/days if it is large enough
CHANGES FOR VERSION 4.82.0 (as compared to 4.81.1)
CHANGES FOR VERSION 4.81.1 (as compared to 4.81.0)
- fixed problem with some of the watch lists not showing up in 4.81.0
CHANGES FOR VERSION 4.81.0 (as compared to 4.80.2)
- Database structure changed to hold new fundamental data - quarterly EAT/EBT/Sales
figures, Code and Nominal value have been replaced by new fields.
Despite these changes
files are still backward and forward compatible - so it can be read by any
version, the only minor inconvenience is that if you load new file into old
version (pre-4.81) of AmiBroker you will see weird numbers in old "Finances"
dialog as well as in "Shares out." and "Book Value" fields.
- Implemented new View->Information property page featuring extra
fundamental data fields
OLE: added new fundamental data fields to Stock object
Stock object has now the following properties:
AFL: new function GetFnData() - allows accessing fundamental
"field" can be one of the following:
ASCII importer: added support for new
fundamental data fields :
now supports additional fields:
BOOK_VALUE (requires SHARES_OUT to be specified as well)
PRICE_TO_SALES (requires CLOSE to be specified as well)
PRICE_TO_EARNINGS (requires CLOSE to be specified as well)
PRICE_TO_BV (requires CLOSE to be specified as well)
FORWARD_PE (requires CLOSE to be specified as well)
MARKET_CAP (requires CLOSE to be specified as well - it is used to calculate
(see Formats\aqfe.format and Formats\aqfn.format files for example usage)
Removed Stock->Information and Stock->Finances dialogs (this
functionality is replaced by View->Information - new dockable
AFL: new function StrReplace(
string, oldsubstring, newsubstring )
Fixed crash occuring sometimes if "Symbol->Watch List->Type-in" symbol
was longer than maximum allowable length (allocated
Foreign() function changed.
Now by default missing data bar OHL fields are filled using previous
bar Close and volume is set to zero.
It is possible to turn old behaviour (filling missing bar OHL fields
using previous bar OHL fields and copying previous bar volume) if you
Fixup parameter set to 2.
Foreign("MSFT","O", 2 ); // old-style (pre-4.81)
Scaling-in profit% calculations modified to use total cost
instead of max. pos value
ships with AmiQuote 1.90 featuring automatic download and import of
fundamental data from Yahoo Finance. See AmiQuote\ReadMe2.html
CHANGES FOR VERSION 4.80.2 (as compared to 4.80.1)
Changed %profit calculation when scaling-in is used to use maximum number
of shares ever held as a “base” of %profit calculation - this
leads to “most conservative” % figures, compared to using just
initial entry value.
Prec() function improved so it does not show rounding
errors when working on
CHANGES FOR VERSION 4.80.1 (as compared to 4.80.0)
- fixed problem with Easy Alert window not accepting new alerts in some circumstances
- included new IB plugin version 1.6.2 (FC issue #54)
If you experience any problem with this beta version please send detailed
description of the problem (especially the steps needed to reproduce it) to
bugs at amibroker.com