AmiBroker 5.60.0 BETA Read Me
September 25, 2012 9:19
THIS IS A BETA VERSION OF THE SOFTWARE. EXPECT
BUGS !!!
Backup your data files and entire AmiBroker folder
first!
INSTALLATION INSTRUCTIONS
Just run the installer and follow the instructions.
Then run AmiBroker. You should see "AmiBroker 5.60.0 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.60.0 (as compared to 5.59.0)
- Upgrade information: keys issued before 2011-04-13 are expired with 5.60
- UI:
removed unused options from Prefs/Miscelleneous page
- UI: In 5.59 ticker box
was not in sync with currently selected symbol on loading single-chart layout.
Fixed
- UI: importing custom icon image using Tools->Customize, button RMB
-> Edit
Image -> Import image caused change of current working directory. Now
CWD is saved and restored after customization.
- UI: Floating panes use themed
frames now
- UI: Filter settings dialog is resizable now (and static fields
use proper background color)
- UI: Crash could occur if the user customized
Tools menu by moving "Update
US stock list..." item from the very last position in the menu elsewhere.
Fixed.
- UI: cosmetic color changes (chart sheet tabs)
- On attempt to close Analysis
window that is currently running scan/exploration/backtest an appropriate
error message is displayed.
- New Analysis: the message "No symbols matched
apply to / filtering criteria" shows
up in the message bar instead of dialog, so one does not need to click OK
- New
Analysis: Specifying ReEntryDelay > 0 in ApplyStop rotational and
raw modes caused incorrect results in second and subsequent backtests (MG#79).
Fixed.
- New Analysis: In 5.59 3D optimization chart - wrong 2nd axis legend
was wrong (duplicate of 1st axis). Fixed.
- New Analysis: In 5.58 and 5.59 smart
optimizer engine was not finalized properly when user pressed "Cancel" during
optimize run. Fixed.
- New Analysis: error message bar text is now trimmed to
110 characters to ensure there is a place for the "Details" button
- In
colorCycle sequence colorRed is replaced with colorLightOrange for better
visibility when displayed with red candles
- In 5.58 View->Intraday->Tick
turned incorrect "0-tick" interval
which resulted in effective 1-second compression. Fixed.
- colorDefault is now
user- definable in the preferences (Colors tab) and selectable from Parameters
window and associated with chart theme
- Charts: Print Preview and printout
had incorrect colors due to the fact that SetDCPenColor/SetDCBrushColor APIs
do not work with metafiles/printers. Fixed.
- Charts: In 5.59 chart could stop
refreshing when it had odd number of Plot() calls combined with a couple
of PlotForeign() calls and total number of items
to display in tooltip/data window exceeded 20. Fixed.
- Changed default Price
all in one volume to color to ColorBlend( ColorRGB( 128, 128, 192 ), GetChartBkColor(),
0.5 )),
- Changed default colors for charts to "Black" scheme and
outline mode to "One color for entire handle and hollow up candle body"
- Changed
default chart layout for clean installation
- Changed default appearance to
VS2010 / pane tabs on bottom
- Changed Bollinger band filled default color to
ColorBlend( Color, GetChartBkColor(), 0.8 )
- changed all price formulas shipped
in setup to use colorDefault instead of colorBlack
- Blank chart panes now use
defined chart background color instead of white
- Background of built-in dark
grey theme made slightly lighter than black
- ASCII import: sector names beginning
with "Sector" and industry names
beginning with "Industry" were not imported properly. Fixed.
- aqh.format,
aqd.format, aqg.format changed - removed $VOLFACTOR 0.01 previously used
so volume is reported in shares not in hundreds of shares
- ApplyStop( stopTypeNBar,
... ) in backtestRegularRaw / backtestRegularRawMulti/Rotational - N-bar
stop exited 1 bar later than in regular mode. Fixed.
- AFL: when array was passed
as "amount" argument to DateTimeAdd,
the results could be incorrect. Fixed.
- AFL: SetChartOptions did not write
chart flags in 5.5x. Fixed
- AFL: GetFnData() now supports "Country" field
CHANGES FOR VERSION 5.59.0 (as compared to 5.58.0)
- New Analysis: loading previously stored APX files into 5.58 resulted in
ICB filter being set (instead of cleared). Fixed.
- New Analysis: 3D optimization
chart can also be displayed from single-parameter
optimization now, without need to add dummy Optimize()
- IB data plugin: CMDTY
historical requests use MIDPRICE instead of TRADES
- IB data plugin: Max. number
of symbols increased to 1000
- UI: Tools->Preferences/Charting: added setting
to show (or hide) the bar number in the crosshair's X label, by default the
bar number is NOT shown
now (previously it was ON by default)
- UI: Tools->Preferences/Charting removed
setting for "'New look' charts" -
now 'New look' is used always
- UI: For PlotOHLC and Plot with styleCandle/styleBar
tooltip and data window display OHLC data in this order (instead COHL in
previous versions)
- UI: Data window now displays values for all panes at once
(you can turn the display of single pane back using right click menu option)
- ASCII
importer: added $COUNTRY command and COUNTRY field to $FORMAT command
- AFL:
in ROC, RSI, RSIa, TRIX, CCI, MFI, MA, EMA, Hold, BBandBottom, BBandTop,
PDI, MDI, ADX, ATR, Correlation, Wilders functions 'range' parameter is now
checked for > 0 and error is displayed when it is negative
- Interval-locked
layers did not work correctly for N-tick/volume/range intervals. Fixed.
CHANGES FOR VERSION 5.58.0 (as compared to 5.57.1)
- DB: Automatic setup and update of stock symbol listing, together with sectors,
industries, markets and groups (Tools->Update US symbol list and categories).
This is implemented using new #import command and new ASCII importer commands
(see below for the details)
- UI: custom tools menu - added special internal
command #import that allows to import ASCII files from local disk or even
from remote (web) sources. In the Tools->Customize, "Tools" page, you can now
define custom tool that uses new #import command
Command: #import
Arguments: URL to download data from
Initial dir: path to format definition file
- UI: custom tools menu - when an error occurs during launching of external
command appropriate error message is displayed (instead of nothing like in
old versions)
- DB: The support for Industry Classification Benchmark (ICB) category
system added (See icb.txt file for definitions)
- OLE: Stock object has new property (string): ICB (read/write)
- ASCII
importer: support for importing sector/industry scheme and assignments by
name (new SECTORNAME and INDUSTRYNAME fields in $FORMAT command)
- ASCII importer: new command $CLEARSECTORS 1 to wipe existing sector / industry
structure.
- ASCII importer: new $SORTSECTORS command to sort existing
sector/industry structure.
$SORTSECTORS
1 - sort
case
sensitive,
without
touching sector/industry
== 0 (undefined sector/undefined industry)
$SORTSECTORS 2 - sort case sensitive, all defined sectors/industries
$SORTSECTORS 3 - sort case insensitive, without touching sector/industry
== 0 (undefined sector/undefined industry)
$SORTSECTORS 4 - sort case insensitive, all defined sectors/industries
- ASCII importer: crash could occur if required numeric arguments
for some commands were missing. Fixed.
- ASCII importer: added support for ICB
import: ICB field added to $FORMAT command and added $ICB command
For example ICB assignments for NYSE can be imported from this site:
http://www.nyse.com/indexes/nyaindex.csv
(to import use this format def)
$FORMAT FullName, Ticker, Skip, ICB, Skip, Skip, Skip, Skip
$SKIPLINES 2
$SEPARATOR ,
$CONT 1
$GROUP 255
$AUTOADD 1
$NOQUOTES 1
- ASCII importer:
numeric field data may be enclosed in double quotation marks and still properly
interpreted as numbers now.
- AFL: SetChartOptions did not allow to overwrite miny/maxy in 5.51-5.57.
Fixed.
- AFL: CategoryGetSymbols, CategoryGetName, CategorySetName, CategoryAddSymbol,
CategoryRemoveSymbol, CategoryFind updated to support categoryICB (new
constant = 8)
- AFL: added InIcb() and IcbID() functions
- AFL: Added Status("lastbartimeleftrt") - it works like "lastbartimeleft" but
uses the most recent RT stream update time instead of Now(). Also added Status("lastrtupdate")
- time of last RT stream update
Depends on RT plugin to deliver correct DateUpdate / TimeUpdate data.
If plugin or date source sends incorrect datetimestamps or does not send DateUpdate/TimeUpdate
correctly this function will not operate properly.
Note that most data sources send weird (not current) datetime stamps on weekends.
Also IQFeed plugin sends DateUpdate/TimeUpdate only inside regular trading
hours
- UI: Interval combo box was not updated after changing preferences / intraday
/ custom interval settings. Fixed.
- Analysis: when optimization is stopped, Optimize() returned NON-default
value when Status("action")==actionPortfolio in subsequent backtest.
Fixed
CHANGES FOR VERSION 5.57.1 (as compared to 5.57.0)
- When real-time quotes were streaming interval combo refreshed too often
making it hard to enter new interval in 5.57.0. Fixed.
- Entering custom interval
in the combo did not always work correctly for floating
windows in 5.57.0. Fixed.
CHANGES FOR VERSION 5.57.0 (as compared to 5.56.0)
- Charts/UI: now there is a new chart interval combo box that allows to either
select predefined interval OR simply type ANY interval you want without the
need to define it in the preferences
Supported interval codes are:
Y - yearly, Q - quarterly, M - monthly, W - weekly, D - daily, N - day/night,
h - hourly, m -minute (note lowercase m), s - second, T - tick, R - range, V.
D, h, m, s, T, R, V intervals can be preceded by a number. So if you type
15m it means 15 minute chart,
if you type 13T it means 13 tick chart, if you type 200R it means 200R (range)
chart.
If you type just a number (x) without the following letter it will treat it
as x-minute chart.
Note that while AmiBroker is trying to keep layout files backward compatible,
attempt to load the layout that uses 'new' interval that is not present in
defined set into *old* (pre-5.57) version will result in this extra interval
being
replaced by simply daily chart.
- Tools->Auto update quotes is now native command (not a 'custom tool'
as it was)
This change was caused by the fact that custom tools menu is stored in HKEY_CURRENT_USER
registry key that is shared between 32-bit and 64-bit version.
That caused that if both 32-bit and 64-bit versions were installed an unmatching
bitness version of AmiQuote could be launched and that in turn
caused problems because in Windows OS 64-bit automation first calls 64-bit
server and only in absense of it tries 32-bit. So if both versions were installed
only one was updated properly (the last one installed) using "Auto-update" command.
Having this command native ensures that proper bitness version is launched
so 32-bit and 64-bit versions of AmiBroker can be updated with appropriate
corresponding versions of AmiQuote.
- Default "X grid spacing" changed to 50 (from original
60) pixels
- 12 hour X grid spacing replaced by
6 hour
CHANGES FOR VERSION 5.56.0 (as compared to 5.55.1)
- New Analysis: A new walk-forward summary report that covers all out-of-sample
steps
There were significant changes to walk forward testing made to allow summary
out-of-sample report.
The most important change is that each subsequent out-of-sample test uses initial
equity equal to previous step ending equity.
(Previously it used constant initial equity).
This change is required for proper calculation of all statistics/metrics throughout
all sections of out-of-sample test.
Summary report shows the note that built-in metrics correctly represent
all out-of-sample steps
but summary custom metrics are composed using user-definable method:
1 first step value, 2 last step value, 3 sum, 4 average, 5 minimum, 6 maximum.
By default summary report shows last step value of custom metrics UNLESS
user specifies different combining method in
bo.AddCustomMetrics() call. bo.AddCustomMetrics has now new optional parameter
- CombineMethod
bool AddCustomMetric( string Title, variant Value, [optional] variant LongOnlyValue,
[optional] variant ShortOnlyValue , [optional] variant DecPlaces = 2, [optional]
variant CombineMethod = 2 )
This method adds custom metric to the backtest report, backtest "summary" and
optimization result list. Title is a name of the metric to be displayed in
the report, Value is the value of the metric, optional arguments LongOnlyValue,
ShortOnlyValue allow to provide values for additional long/short-only columns
in the backtest report. Last argument DecPlaces controls how many decimal
places should be used to display the value.
Supported CombineMethod values are:
1 first step value, - summary report will show the value of custom metric
from very first out-of-sample step
2 last step value (default), - summary report will show the value of custom
metric from the last out-of-sample step
3 sum, - summary report will show the sum of the values of custom metric
from all out of sample steps
4 average, - summary report will show the average of the values of custom
metric from all out of sample steps
5 minimum, - summary report will show the smallest value of custom metric
from all out of sample steps
6 maximum.- summary report will show the largest value of custom metric from
all out of sample steps
Note that certain metrics calculation methods are complex and for example
averaging them would not lead to mathematically correct representation of
all out of sample test.
Summaries of all built-in metrics are mathematically correct out-of-the-box
(i.e. they are *not* averages, but properly calculated metrics using method
that is appropriate for given value). This contrasts with custom metrics,
because they are user-definable and it is up to the user to select 'combining'
method, and still it may happen that none of the available methods is appropriate.
For that reason the report includes the note that explains what user-definable
method was used to combine custom metrics.
- New Analysis: walk forward procedure now produces detailed reports for
every out-of-sample step
- Enhanced backtest report: color-coding 'good' and
'bad' values in backtest report
Some of the metrics in the backtest report are color-coded.
Blue means "neutral", Green means "good", Red means "bad"
Metrics that are not colorized are always black
This color coding is of course arbitrary and should be used as guideance only.
Treat 'red' as a warning flag and advice to check the value in detail.
As of now the following metrics are colorized:
Net Profit, Net Profit % - bad < 0, good > 0
Annual Profit %, bad < 0, neutral betwen 0 and 10, good > 10
RAR % bad < 0, good > (10 / Exposure)
Avg. Profit/Loss all trades (Expectancy $) - bad < 0, good > 0
Avg Profit/Loss % all trades (Expectancy %) - bad < 0, good > 0
Max. system % drawdown - bad: dd worse than -30%, neutral: dd between -30
and -10%, good - -10% to 0%
CAR/MaxDD, RAR/MaxDD - bad < 1, neutral between 1 and 2, good > 2
Recovery factor - bad < 1, neutral between 1 and 2, good > 2
Payoff ratio - bad < 1, neutral between 1 and 2, good > 2
- Report: a note added to tooltips for Sharpe
ratio and UPI metrics telling where user can change risk-free rates for those
metrics
- Report Explorer 1.0.2 - added alternate row background color
- Removed "00:00:00" time
in the "date from" in the backtest
report / settings page
- Param window: clicking on category that had exactly
same name as parameter resulted in changing parameter value. Fixed.
- Analysis:
all custom metrics were treated as numbers (for example got formatted with
thousand separator). Now AmiBroker custom metrics of string type are
treated as strings and do not get any extra formatting for the display.
- Added
recommendation to activate multithreading to the performance warning tooltip
when multithreading is currently turned OFF.
CHANGES FOR VERSION 5.55.1 (as compared to 5.54.0)
- Random characters could appear in list view clipboard copy in
5.55.0. Fixed (5.55.1).
- _SECTION_BEGIN/_SECTION_END/_PARAM_VALUES appeared twice in auto-complete
listbox. Fixed.
- SetOption("PortfolioReportMode", x ) changed exploration
columns too. Fixed. (bmg#92)
- AFL: new function GetAsyncKeyState( vkey )
GetAsyncKeyState is 100% equivalent of Windows API function of the same name.
See: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v=vs.85).aspx
The function queries current state of keyboard keys (at the time of the
call).
vkey is virtual key code to query (see table below).
The function returns 0 if key is NOT pressed and value < 0 ( less than
zero) when key is currently pressed.
Example:
Plot( C, "Close", colorRed );
vk_Shift = 16;
if( GetAsyncKeyState(
vk_Shift ) < 0 ) Title = "Shift
is pressed";
Virtual Key codes:
vk_BackSpace = 8;
vk_Tab = 9;
vk_Return = 13;
vk_Shift = 16;
vk_Control = 17;
vk_Alt = 18;
vk_Pause = 19;
vk_CapsLock = 20;
vk_Escape = 27;
vk_Space = 32;
vk_PageUp = 33;
vk_PageDown = 34;
vk_End = 35;
vk_Home = 36;
vk_Left = 37;
vk_Up = 38;
vk_Right = 39;
vk_Down = 40;
vk_PrintScreen = 44;
vk_Insert = 45;
vk_Delete = 46;
/* NOTE: vk_0..vk_9 vk_A.. vk_Z match regular ASCII codes for digits and
A-Z letters */
vk_0 = 48;
vk_1 = 49;
vk_2 = 50;
vk_3 = 51;
vk_4 = 52;
vk_5 = 53;
vk_6 = 54;
vk_7 = 55;
vk_8 = 56;
vk_9 = 57;
vk_A = 65;
vk_B = 66;
vk_C = 67;
vk_D = 68;
vk_E = 69;
vk_F = 70;
vk_G = 71;
vk_H = 72;
vk_I = 73;
vk_J = 74;
vk_K = 75;
vk_L = 76;
vk_M = 77;
vk_N = 78;
vk_O = 79;
vk_P = 80;
vk_Q = 81;
vk_R = 82;
vk_S = 83;
vk_T = 84;
vk_U = 85;
vk_V = 86;
vk_W = 87;
vk_X = 88;
vk_Y = 89;
vk_Z = 90;
vk_LWin = 91;
vk_RWin = 92;
vk_Apps = 93;
/* numerical key pad */
vk_NumPad0 = 96;
vk_NumPad1 = 97;
vk_NumPad2 = 98;
vk_NumPad3 = 99;
vk_NumPad4 = 100;
vk_NumPad5 = 101;
vk_NumPad6 = 102;
vk_NumPad7 = 103;
vk_NumPad8 = 104;
vk_NumPad9 = 105;
vk_Multiply = 106;
vk_Add = 107;
vk_Subtract = 109;
vk_Decimal = 110;
vk_Divide = 111;
/* function keys */
vk_F1 = 112;
vk_F2 = 113;
vk_F3 = 114;
vk_F4 = 115;
vk_F5 = 116;
vk_F6 = 117;
vk_F7 = 118;
vk_F8 = 119;
vk_F9 = 120;
vk_F10 = 121;
vk_F11 = 122;
vk_F12 = 123;
vk_F13 = 124;
vk_F14 = 125;
vk_F15 = 126;
vk_F16 = 127;
vk_NumLock = 144;
vk_ScrollLock = 145;
vk_LShift = 160;
vk_RShift = 161;
vk_LControl = 162;
vk_RControl = 163;
vk_LAlt = 164;
vk_RAlt = 165;
vk_SemiColon = 186;
vk_Equals = 187;
vk_Comma = 188;
vk_UnderScore = 189;
vk_Period = 190;
vk_Slash = 191;
vk_BackSlash = 220;
vk_RightBrace = 221;
vk_LeftBrace = 219;
vk_Apostrophe = 222;
- AFL: Status() function supports
new fields "lastbarend", "lastbartimeleft", "timeshift"
Status("lastbarend") returns DateTime of the end of last bar. For
example 5 -minute bar at 9:00 will have end time of 9:04:59 (works for time-based
bars only)
Status("timeshift") returns database timeshift expressed in seconds
Status("lastbartimeleft") returns number of seconds to the completion
of current last bar. Works for time-based bars only. Note that for proper operation
this requires database timeshift to be set properly (so dates displayed on
chart match your local computer time zone).
- List
view clipboard copy now uses regional settings decimal separator.
You can turn it off and revert to "always dot" decimal separator
by creating registry key
HKEY_CURRENT_USER\TJP\Broker\Settings
DWORD value "UseLocaleForClipboard" = 0
- Charting:
added left- and right extend option to the rectagle drawing tool
- List view
date column sort was incorrect when regional settings time format was set
to: H:mm:ss. Fixed.
- When multithreading in charts was turned OFF, drawing
tools did not work properly in 5.53-5.54. Fixed.
- XYChartAddPoint does not
generate error anymore when Null values are passed as X, Y co-ords. Instead
it silently ignores such points (they are not plotted)
and XYChartAddPoint returns FALSE (0)
- AFL: new function StaticVarInfo( "varname", "field" )
StaticVarInfo( "varname", "field") - provides information
about static variables
"
varname" - is a variable name. It can be also a wildcard template such
as "myvariable*" and then it means that AmiBroker will search for
all variables beginning with
"
myvariable". * character matches any string, ? matches any single character
Supported "field" values are:
"
list" - returns the list of static variables
"
memory" - returns memory usage in bytes (not including memory used
for variable name itself)
"
totalmemory" - returns memory usage in bytes (including memory used
for variable name)
Example:
StaticVarSet("my_array1", Close );
StaticVarSet("my_array2", Close );
StaticVarSet("my_scalar", 12 );
StaticVarSetText("my_text", "Text123456" );
"All variables in memory: " +
StaticVarInfo( "*", "list" );
" Total static var memory: " +
StaticVarInfo( "*", "totalmemory");
" Only my_ variables: " +
StaticVarInfo( "my_*", "list" );
" Memory 2 arrays (bytes): " +
StaticVarInfo( "my_array*", "memory" );
" Memory scalar (bytes): " +
StaticVarInfo( "my_scalar", "memory" );
" Memory text (bytes): " +
StaticVarInfo( "my_text", "memory" );
CHANGES FOR VERSION 5.54.0 (as compared to 5.53.1)
- New Analysis: "Sync chart on select" did not respect linked charts
and symbol lock. Fixed.
- AFL: new function XYChartSetAxis( "chartname", "x-axis
name", "y-axis
name" )
- AFL: new function XYChartAddPoint( "chartname", "text",
x, y, color )
- New Analysis: Implemented XY (scatter) charts in Explorations
Example:
// XY chart coding example
// This formula generates 2 X-Y scatter charts
that display relationship between
// final trade profit and MFE and MAE
Buy = Cross( MACD(), Signal());
Sell = Cross( Signal(), MACD()
);
Short = False;
Cover = False;
Eq = Equity( 1 ); //
single-security equity this evaluates stops (if you use them)
and removes extra signals
Entry = Buy OR Short;
EqAtEntry = ValueWhen(
Entry, Eq );
Profit = 100 * ( Eq
- EqAtEntry ) / EqAtEntry; // percent profit
// MAE and MFE below use CLOSING equity, MAE and
MFE in the report use high/low price
MAE = 100 * ( LowestSince(
Entry, Eq ) - EqAtEntry ) / EqAtEntry; // percent
MAE
MFE = 100 * ( HighestSince(
Entry, Eq ) - EqAtEntry ) / EqAtEntry; // percent
MAE
bi = BarIndex();
Len = bi - ValueWhen(
Entry, bi );
EntryPrice = ValueWhen(
Entry, BuyPrice );
// if you prefer MAE/MFE using high/low price
// uncomment the lines below (long only Version)
MAE = 100 * ( LowestSince(
Entry, Low )
- EntryPrice ) / EntryPrice ; // percent MAE using
low
MFE = 100 * ( HighestSince(
Entry, High )
- EntryPrice ) / EntryPrice ; // percent MAE using
high
Exit = Sell OR Cover;
dt = DateTime();
Clr = ColorHSB( Status("stocknum"), 255, 255 );
for( bar = 0;
bar < BarCount;
bar++ )
{
if(
Exit[ bar ] )
{
// item text
consists of two parts
// first part
(before \t) is a item name displayed immediatelly on XY chart
// second
part (after \t) is a tooltip hint text that is displayed in the tooltip
// when you
hover on given item
// here we
will only use hint text
HintText = "\t" + Name()+"@"+ DateTimeToStr(
dt[ bar ] );
XYChartAddPoint( "Profit vs MAE",
HintText, MAE[ bar ], Profit[ bar ],Clr );
XYChartAddPoint( "Profit vs MFE",
HintText, MFE[ bar ], Profit[ bar ], Clr );
XYChartAddPoint( "Profit vs trade length",
HintText, Len[ bar ], Profit[ bar ], Clr );
}
}
XYChartSetAxis( "Profit vs MAE", "[MAE]", "[Profit]" );
XYChartSetAxis( "Profit vs MFE", "[MFE]", "[Profit]" );
XYChartSetAxis( "Profit vs trade length", "[Length]", "[Profit]" );
Filter = Exit;
AddColumn( Eq, "Equity" );
AddColumn( Profit, "Profit" );
AddColumn( MAE, "MAE" );
AddColumn( MFE, "MFE" );
AddColumn( Len, "trade
length" );
- {{INTERVAL}}
gave incorrect (unstable) results in custom n-tick/n-range/n-volume charts
when used with multithreading. Fixed.
- Interval(2) returned incorrect (unstable)
results in custom n-tick/n-range/n-volume charts when used with multithreading.
Fixed.
- Preferences: Currency page was not working properly. Fixed.
- Status bar look
matches now appearance settings (esp. visible in VS2012 style)
- Parameter window
now allows to select combined styles (like styleHidden) as well as their
components styleNoRescale+styleNoDraw independently
- User setting for minimum
pixel spacing in X grid (Tools->Preferences, "Axes
/ Grids") - it is recommended to keep it at default value (60 pixels),
for denser grid use less spacing (minimum 30 pixels), for wider grid use
more x spacing (maximum 120 pixels)
- Sometimes panes did not refresh to final
size when chart sheets are switched (for example - one tab has only one
pane second tab has two panes). Fixed.
CHANGES FOR VERSION 5.53.1 (as compared to 5.53.0)
- Trend lines and other drawing tools sometimes were blinking or disappeared
in 5.53.0. Fixed
- Plots with styleDashed mixed with plots using other styles
could cause continuous growth of rendering time in 5.52/5.53. Fixed.
CHANGES FOR VERSION 5.53.0 (as compared to 5.52.0)
- Triangle drawing tool now supports filled interiors
- Vertical selector line
was flicerking with RT update when more than one chart window was open. Fixed
- SetChartGradientFill
renamed to SetGradientFill
- SetGradientFill now has 2 more arguments: baseline
and baselinecolor. Allows reverse gradient chart (such as underwater equity)
and 3 color gradients
top->baseline->bottom
- Added 2-year and 5-year x grid spacing
- Gradient chart sometimes disappeared
when null values were in the data set and chart was zoomed out to the maximum.
Fixed.
- GUI: Preferences dialog adjustments (moved "bold" checkbox
in color page, removed obsolete "show vertical line" boxes in charting
page, moved candlestick outline color settings from charting to color page
)
- styleClipMinMax interferred with styleGradient in 5.52.0. Fixed (both styles
can now be used independently as well as combined together)
CHANGES FOR VERSION 5.52.0 (as compared to 5.51.2)
- Chart themes implemented,
featuring new look, new grid settings, new background gradient fills, predefined
themes for more details see: http://www.amibroker.com/guide/h_themes.html
- Charts:
X-axis algorithm rewritten (now it is clearer and prevents overcrowded/unreadable
X labels)
- Charts: added native gradient area charts. Gradient chart is obtained using
styleGradient. Upper gradient color is specified by color parameter in Plot()
function, bottom gradient color is either background color or can be defined
using SetChartGradientFill function. styleGradient can be combined with styleLine
Example
SetChartGradientFill( colorLightOrange, colorPaleGreen );
Plot( C, "Close", ColorBlend( colorPaleGreen, colorBlack ),
styleGradient | styleLine, Null, Null, 0,
-1 );
- Charts: Plot/PlotForeign/PlotOHLC now adds extra parameter "width" that
controls the width of the line. Positive values specify PIXEL width, negative
values specify width in percent of current bar width. So for example -20
will give you dynamic width that is 20% of bar width. Example:
Plot( C, "Close", colorBlack, styleBar, Null, Null, 0, 1,
-20 /*
line width as percent of bar */ );
- Eliminated build-up of rendering times caused by growing of MFC temporary
GDI object maps in non-UI threads. Now rendering engine uses direct WINAPI
calls without MFC
- View->Filtering
menu was disabled in 5.51.x. Fixed
- Data window was not working in 5.51.x.
Fixed
- "
Show middle lines" = "NO" causes date axis to be moved down
outside visible area. Fixed.
- Selector line was not working correctly in 5.51.
Fixed.
- Bold dotted trendline did not work in 5.51 BETA. Fixed
- AFL: LinearReg/LinRegSlope/LinRegIntercept/TSF/StdError
display proper error message when user passes negative (wrong) parameter
- Study
tooltip information now includes also number of bars between start and end
of the trendline
- New Analysis: saving last column
layout works better
- Account manager: Edit->Undo menu was missing. Fixed.
- GetFnData() now
supports retrieving "Address" field too
- On Win98 and above drawing engine uses DC_PEN/DC_BRUSH for speed
- Optimize()
reduced possibility of IEEE floating point accumulation errors with steps < 1
(such as 0.01)
- PlotShapes() does not plot multiple times in same x/y pos anymore
- it results in faster rendering when shapes overlap (large zoom outs)
CHANGES FOR VERSION 5.51.2 (as compared to 5.51.1)
- PlotShapes() rendering was slower in 5.51 than in 5.50. Fixed.
- Interpretation
was blank with new rendering engine. Fixed.
- Charts: Quick AFL was disabled
in new rendering engine causing slowdowns with > 100K
bars. Fixed
CHANGES FOR VERSION 5.51.1 (as compared to 5.51.0)
- fix for low-level Gfx* functions causing crash when multithreaded
GDI was enabled
CHANGES FOR VERSION 5.51.0 (as compared to 5.50.5)
- Charts: Multithreaded GDI implemented for super-smooth UI response and
preventing GDI-intensive charts from detoriating entire UI responsiveness
- Maximum
rendering time limit increased to 1000ms (1sec) when multithreaded
charts + GDI are enabled (allowing 2 times more complex plots without Warning
901)
- 64-bit only: eSignal plugin - first BETA version of 64-bit eSignal plugin
(3.0.0)
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