Tomasz,
Please elevate “moving the menu bar
and toolbar to one line” to a high priority. This single change
will add reduce my toolbar real estate by 50%*.
I love the changes in latest beta. As
one who spends a lot to time with the AB charts, the new UI changes reduce screen
usage, and improves flexibility and ease of use. NICE WORK!!!
Regards,
Dan.
* With two or more high resolution monitors,
it is easy to open all toolbars on a single line. But the Menu bar also
takes up one line. Result: Two rows with mostly blank screen space.
From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Tomasz
Janeczko
Sent: Saturday, October 22, 2005
8:20 AM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] Re:
AmiBroker 4.74.0 BETA released
Hello,
So you want both menu bar and toolbar in one line?
I did not think about allowing this, but I will add
to the to-do list.
Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message -----
From: "Charles Stangor" <cstangor232@xxxxxxxxxxxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Saturday, October 22, 2005 3:45 PM
Subject: Re: [amibroker] Re: AmiBroker 4.74.0 BETA
released
> Another small glitch I'm having is that in
the AFL editor I cannot put the
> "file - edit - tools -help" toolbar
on the same line as the standard
> toolbar.
>
> ----- Original Message -----
> From: "Quad Rate Serial Abby"
<quad_pumped_abby@xxxxxxxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Saturday, October 22, 2005 9:28 AM
> Subject: [amibroker] Re: AmiBroker 4.74.0
BETA released
>
>
>> Wow! Nice job! The charts
really sing now with the extra space that
>> is available. Thanks.
>>
>>
>> --- In amibroker@xxxxxxxxxxxxxxx,
"Tomasz Janeczko"
<amibroker@xxxx>
>> wrote:
>>>
>>> Hello,
>>> A new beta version (4.74.0) of
AmiBroker has just been released.
>>>
>>>
>>> It is available for registered users
only from the members area at:
>>> http://www.amibroker.com/members/bin/ab4740beta.exe
>>>
>>> (File size: 1 123 424 bytes, 1 MB)
>>>
>>> If you forgot your user name /
password to the members area
>>> you can use automatic reminder
service at:
>> http://www.amibroker.com/login.html
>>>
>>> The instructions are available below
and in the "ReadMe" file
>>> ( Help->Read Me menu from
AmiBroker )
>>>
>>> Highlight of this release is new
customizable user-interface, featuring
>>> a.. Tear-Off Tabs
>>> b.. Nested docking pane
grouping
>>> c.. WYSIWYG docking
>>> d.. sliding auto-hide
pinnable windows
>>> e.. modern
"Whidbey" look
>>> f.. Tear-Off menus and
toolbars
>>> g..
Add/copy/Delete/Modify/drag-drop commands
>>> h.. User-defined toolbars
>>>
>>> For a little video presentation see:
>>> http://www.amibroker.com/video/uicustomize.html
>>>
>>> Note: toolbar and keyboard
customizations made in old versions need
>> to be re-done because they can not be
imported by new system due to
>> fundamental differences (I am sorry about
that)
>>>
>>> Best regards,
>>> Tomasz
Janeczko
>>> amibroker.com
>>>
>>> AmiBroker 4.74.0 Beta Read Me
>>> October 22, 2005 13:50
>>>
>>> THIS IS A BETA VERSION OF THE
SOFTWARE. EXPECT BUGS !!!
>>>
>>> Backup your data files and entire
AmiBroker folder first!
>>> IMPORTANT NOTE: This version uses new
system to store indicators (in
>> separate files), so old versions will not
automatically "see"
>> indicators created with new version.
>>>
>>> INSTALLATION INSTRUCTIONS
>>>
>>> IMPORTANT: This archive is
update-only. You have to install full
>> version 4.70 first.
>>>
>>> Just run the installer and follow the
instructions.
>>>
>>> Then run AmiBroker. You should see
"AmiBroker 4.74.0 beta" written
>> in the About box.
>>>
>>> Many thanks to all providing detailed
descriptions how to reproduce
>> given bug.
>>>
>>>
>>> See CHANGE LOG below for detailed
list of changes.
>>>
>>>
>>> CHANGE LOG
>>>
>>> CHANGES FOR VERSION 4.74.0 (as
compared to 4.73.0)
>>>
>>> a.. New user interface:
fully user-customizable advanced docking
>> panes/toolbars/menus.
>>>
>>> New UI features:
>>> a.. Tear-Off
Tabs
>>> b.. Nested
docking pane grouping
>>> c.. WYSIWYG
docking
>>> d.. sliding
auto-hide pinnable windows
>>> e.. modern
"Whidbey" look
>>> f.. Tear-Off
menus and toolbars
>>> g..
Add/copy/Delete/Modify/drag-drop commands
>>> h..
User-defined toolbars
>>>
>>>
>>> For a little video
presentation see:
>>> http://www.amibroker.com/video/uicustomize.html
>>>
>>> Note: toolbar and
keyboard customizations made in old versions
>> need to be re-done because they can not
be imported by new system due
>> to fundamental differences (I am sorry
about that)]
>>>
>>>
>>> b.. GroupID(),
IndustryID(), SectorID, MarketID(), InWatchList(),
>> IsIndex() and IsContinuous() functions
are now affected by SetForeign
>>>
>>>
>>> c.. Removed debug
messages cluttering DebugView output (that
>> appeared in 4.73)
>>>
>>>
>>> d.. Changed the way
drawing color picker is working: now it works
>> like in Word (or other text editor) -
keeps selected color even if
>> drawing with different color is clicke
>>>
>>>
>>> e.. Fixed false message
"The note has been modified outside the
>> notepad editor." occuring when file
did not exist
>>>
>>>
>>> f.. OLE: Changed
Window.LoadTemplate to return FALSE when file can
>> not be found
>>>
>>>
>>> g.. OLE:
Window.LoadTemplate now refreshes display so it is not
>> necessary to use SelectedTab = 0
>>>
>>>
>>> h.. Removed constant RT
refreshes in interpretation window when
>> text does not change
>>>
>>>
>>> i.. ZoomToRange: last
selected bar in range is visible after
>> zooming now
>>> CHANGES FOR VERSION 4.73.0 (as
compared to 4.72.1)
>>>
>>> a.. OLE: Window object,
new method ZoomToRange( From, To )
>>> ZoomToRange( From, To )
>>> From and To parameters
are of any type that can be converted to
>> date(you can use string or OLE date for
example).
>>>
>>> Example code (JScript):
>>>
>>> AB=new
ActiveXObject("Broker.Application");
>>> AW = AB.ActiveWindow;
>>> if( AW.ZoomToRange(
"2005-04-01", "2005-08-01" ) )
>>> {
>>>
WScript.Echo("Zoom successfull" );
>>> }
>>>
>>>
>>> b.. Fixed: Chart got
shrinked a bit with each overlaid plot, now
>> the Y scale does not change (unless
really needed)
>>>
>>>
>>> c.. Fixed: XShift now
works correctly with styleOwnScale and
>> styleLeftScale
>>>
>>>
>>> d.. Fixed: Volume chart
overlaid on price chart in log scale
>> (overlay) was compressed to flat line,
now it is fixed (volume chart
>> overlay uses linear scale always)
>>> [#22262]
>>>
>>>
>>> e.. AFL: Added
AlmostEqual function (completed: 2005-09-16)
>>>
>>> AlmostEqual( x, y, ulps =
5 )
>>>
>>> this is a helper function
for comparing floating point numbers.It
>> returns True if x and y are equal or
almost equal upto defined
>> accurracy (ulps).It is recommended to use
this function instead of
>> equality check (==) as itleads to more
reliable comparisons and less
>> headache caused by IEEE floating
pointacurracy issues.
>>>
>>> Parameters:x, y - the
numbers or arrays to be compared,Ulps stands
>> for "units in last place" and
represents maximum relative error of the
>> comparison. Since 32 bit IEEE floating
point numbers have accurracy of
>> 7 significant digits, 1 unit in last
place(ulp) represents relative
>> error of 0.00001 %. The default value of
ulps parameter is 5 which
>> gives roughtly 0.00005% "comparison
sensitivity".
>>>
>>>
>>> Example code:
>>>
>>> if( 1/3 == 0.3333333 )
>>> {
>>>
printf("32-bit Floating point IEEE exact equality\n");
>>> }
>>>
>>> if( AlmostEqual( 1/3,
0.3333333 ) )
>>> {
>>>
printf("Numbers are almost equal\n");
>>> }
>>>
>>> Thanks to Bruce Dawson
for his fast routine.
>>>
>>>
>>> f.. Optimize() function
now checks if min < max, step > 0 and
>> checks if parameter name is not empty
>>>
>>>
>>> g.. Made Time&Sales
case insensitive (when "case sensitive
>> tickers" option is turned off")
>>>
>>>
>>> h.. OBV/AccDist/Chaikin
functions adjusted to be SetForeign-aware
>>>
>>>
>>> i.. OLE: Application
object new methods
>>> BOOL LoadLayout( filename
)
>>> BOOL SaveLayout( filename
)
>>>
>>> AB = new
ActiveXObject("Broker.Application");
>>>
AB.LoadLayout("C:\\Program
>>
Files\\AmiBroker\\Data\\Layouts\\Default.awl");
>>>
>>>
>>> j.. OLE: Window object
new property: SelectedTab
>>>
>>> AB = new
ActiveXObject("Broker.Application");
>>> AW = AB.ActiveWindow;
>>> tabindex =
AW.SelectedTab; // read selected tab
>>> AW.SelectedTab = 3;
//switch to tab 3
>>> AW.SelectedTab =
tabindex; // restore originally selected tab
>>>
>>>
>>> k.. Fixed: Exception was
generated when GetRTDataForeign was
>> called with non-existing ticker
>>>
>>>
>>> l.. OLE: Window object
new methods: LoadTemplate, SaveTemplate
>>>
>>> AB = new
ActiveXObject("Broker.Application");
>>> AW = AB.ActiveWindow;
>>>
AW.SaveTemplate("Test.abt");
>>>
AW.LoadTemplate("Test.abt");
>>>
>>> CHANGES FOR VERSION 4.72.1 (as
compared to 4.72.0)
>>>
>>> a.. fixed out-of-memory
problem sometimes occuring during scan of
>> large (>512MB) databases
>>> CHANGES FOR VERSION 4.72.0 (as
compared to 4.71.1)
>>>
>>>
>>> a.. " Currency"
field support in ASCII importer
>>> added command:
>>> $CURRENCY USD
>>>
>>> and field:
>>>
>>> $FORMAT
Name,Currency$OVERWRITE 1$AUTOADD 1]
>>>
>>>
>>> b.. Added "Additional
commands" field in the Import wizard for
>> typing any extra $- commands that are not
available via checkboxes
>>>
>>>
>>> c.. Added parameter to
AddColumn/AddTextColumn to control column
>> width
>>>
>>> AddColumn( ARRAY,
"Caption", format = 1.2, color = colorDefault,
>> bgcolor = colorDefault, width = -1);
>>> AddTextColumn(
"Text", "Caption", format = 1.2, color =
>> colorDefault, bgcolor = colorDefault,
width = -1 );
>>>
>>>
>>> d.. AddToComposte new
flag to work when Status("action")==
>> actionPortfolio (completed: 2005-09-09)
>>> new flag is called
atcEnableInPortfolio
>>>
>>> Example:
>>>
>>> if(
Status("action" ) == actionPortfolio )
>>>
>>> {
>>> ... Custom backtest mode
here ....
>>> AddToComposite(
some_array, "~COMPOSITE", "X",
>> atcFlagEnableInPortfolio |
atcFlagDefaults );
>>>
>>> }
>>>
>>>
>>> e.. AFL added: tanh(),
sinh(), cosh() functions
>>> Hyperbolic tangent, sine
and cosine function
>>>
>>>
>>> f.. AFL functions:
StrToUpper and StrToLower
>>>
>>>
>>> g.. Fixed: Tick ASCII
import: last tick of previous import was
>> deleted on subsequent import, now it is
corrected
>>>
>>>
>>> h.. Function to detect
mouse button state
>>>
>>> GetCursorMouseButtons()
returns mouse button state at the time
>> when chart formula is executed
>>>
>>> 0 - if no mouse button is
pressed
>>> 1 - if left mouse button
is pressed
>>> 2 - if right mouse button
is pressed
>>> 4 - if middle mouse
button is pressed
>>>
>>> plus combinations:3 -
left + right5 - left + middle6 - right +
>> middle 7 - left + right + middle]
>>>
>>>
>>> i.. GetRTDataForeign
(retrieving values for other symbols)
>>> GetRTDataForeign(
"field", "symbol")
>>>
>>>
>>> j.. Pane is not deleted
if shrinked down to zero (prevents from
>> accidential deletion of panes)
>>>
>>>
>>> k.. Plot function now has
xshift parameter that allows to visually
>> shift the chart past the last bar
>>> Example 20-bar Moving
average shifted 10 bars into the future past
>> the last bar:
>>>
>>>
Plot(Close,"Close",colorBlack,styleCandle);Plot(MA(Close,20),
>> "Shifted MA", colorRed,
styleLine, Null, Null, 10 );
>>>
>>> Note that shift occurs
during plotting and does not affect source
>> array
>>>
>>>
>>> l.. Removed data source
selection from preferences because it
>> caused user confusion way too often
>>>
>>>
>>> m.. Stock.Currency
available via OLE
>>>
>>>
>>> n.. Title variable now
supports new special token {{OHLCX}} which
>> is replaced at runtime by string
"Open ..., Hi .... Lo ... Close
>> (...%)" showing current price
>>>
>>> This way it is possible
to implement formula that will show OHLC
>> prices with number of decimal places set
in the preferences.
>>>
>>> Example:
>>>
>>> SetChartOptions(0,chartShowArrows|chartShowDates);
>>> _N(Title = "{{NAME}}
- {{INTERVAL}} {{DATE}} {{OHLCX}} {{VALUES}}" );
>>> Plot( C,
"Close", ParamColor("Color", colorBlack ), styleNoTitle |
>> ParamStyle("Style") |
GetPriceStyle() );
>>>
>>>
>>> o.. user-definable number
of decimal places in chart titles
>> (completed: 2005-09-09)
>>> Number of decimal places
displayed in default chart title is now
>> user-definable
inTools->Preferences->Miscellaneous"Decimal places in
>> chart titles".
>>>
>>> Allowable values:
>>> -1 - dynamic mode (number
of decimal places automatically adjusted)
>>> 0..6 - fixed number of
decimal places
>>>
>>>
>>> p.. QuoteArray resizing
now uses heuristic algorithm to minimize
>> memory fragmentation and increase performance
>>>
>>>
>>> q.. atcFlagDeleteValues
now highlighted properly in the AFL editor
>>>
>>> CHANGES FOR VERSION 4.71.1 (as
compared to 4.71.0)
>>>
>>> a.. fixed compatibility
problem with AmiQuote (due to changed
>> order of OLE properties/method while
AmiQuote was using old ones)
>>> b.. now ASCII importer in
$TICKMODE does not delete quotes older
>> than oldest (first) record in the
imported file, so you can safely
>> import tick data from subsequent files
(older first, newest later)
>>> CHANGES FOR VERSION 4.71.0 (as
compared to 4.70.5)
>>>
>>> a.. AFL: added
GetCursorXPosition() and GetCursorYPosition() functions
>>>
>>> Functions return current
mouse cursor position.
>>> Values returned are equal
to those visible in the status bar, and
>> these functions require status bar to be
visible. Returned values
>> represent cursor position at the formula
execution time (or few
>> milliseconds before it) and accurracy is
subject to pixel resolution
>> of the screen (first cursor position is
read in screen pixels
>> (integer) and then converted to actual
value therefore for example
>> when screen resolution is 1024x768
maximum obtainable resolution in X
>> direction is 0.1% and in Y direction
0.13%), also X values are snap to
>> datetime of nearest data bar.
>>>
>>> It only makes sense to
use these functions in
>> indicator/interpretation code.
>>>
>>> Using them in AA window
may yield random
>> values.GetCursorXPosition() function
returns X position in DateTime
>> format (the same as used by DateTime()
function).You can convert it to
>> string using DateTimeToStr()
function.GetCursorYPosition() returns Y
>> position (as displayed in Y axis of the
chart).
>>>
>>> Example:
>>>
>>>
>>>
ToolTip="X="+DateTimeToStr(GetCursorXPosition())
>> +"\nY="+GetCursorYPosition();
>>>
>>>
>>>
>>> b.. AFL: added
DateTimeToStr() and StrToDateTime() functions
>>>
>>> These functions allow to
convert string to datetime format and
>> vice versa.
>>>
>>>
>>> Example:
>>>
>>>
ToolTip="X="+DateTimeToStr(GetCursorXPosition())
>> +"\nY="+GetCursorYPosition();]
>>>
>>> c.. Added ability to
store charts as .GIF (in addition to PNG)
>>>
>>>
>>>
>>> d.. ASCII importer
maximum supported line length is increased to
>> 2048 characters
>>>
>>>
>>>
>>> e.. Fixed: .aflsafe files
didn't get deleted automatically
>>>
>>>
>>>
>>> f.. Added N-volume bars
charts and timeframe support.
>>>
>>> Custom N-volume bar
intervals are definable (as usual) in
>> Tools->Preferences->Intraday.
>>>
>>> TimeFrame functions were
also extended to support N-volume bars
>> using new TimeFrameMode() function
calling
>>>
>>> TimeFrameMode( 0 );
>>>
>>> - switches time frame
functions to time-based operation (the default)
>>>
>>> TimeFrameMode( 1 );
>>>
>>> - switches time frame functions
to N-tick operation (positive
>> values passed to TimeFrameSet are treated
now as N-tick)
>>>
>>> TimeFrameMode( 2 );
>>>
>>> - switches time frame
functions to N-volume bar operation
>> (positive values passed to TimeFrameSet
are treated nowas N-volme bars)
>>>
>>> Example:
>>>
>>> TimeFrameMode( 2 );
>>> TimeFrameSet( 50000 ); //
50'000 share bars..
>>> ...do something ...
>>> TimeFrameRestore();
>>>
>>>
>>> Note: N-volume bars are
somewhat weird (compression of data to
>> N-volume bar may actually deliver MORE
output bars - for example if
>> one tick is 1000 shares and you have
specified 100V bars then single
>> tick will be expanded to TEN 100V bars -
ten times original size)
>>> TimeFrame functions are
protected against array overrun and will
>> not decompress beyond original array size
(you will get an "Error 47.
>> N-volume bar compressed data longer than
base time frame").
>>> Also switching main time
frame to some weird N-volume bar value
>> will result in limiting the output to
maximum twice original data
>> size(without error message).
>>> You should keep that in
mind and avoid using too small N-volume
>> bar intervals that could lead to such
condition.
>>> Also due to the nature of
N-volume bars the only TimeFrameSet()
>> function will yield correct N-volume bar
values, TimeFrameGetPrice()
>> may give slightly distorted results.
>>> It is also possible to
use n-volume bars in TimeFrame functions
>> without calling TimeFrameMode() - it is
then necessary to specify
>> n-volume bars as negative number offset
by -1000000 (minus one million):
>>>
>>> TimeFrameSet( -1000000 -
2000 );
>>>
>>> // gives 2000V
barsSimilarly formatted negative numbers will be
>> reported by Interval() function when
n-volume bars are selected.
>>>
>>>
>>>
>>>
>>> g.. OLE: Save As PNG /
GIF callable from automation
>>>
>>> Example script:
>>>
>>> AB = new
ActiveXObject("Broker.Application");
>>>
AB.ActiveWindow.ExportImage("Test.png");
>>>
>>> h.. Plugin is not called
when GetExtraData is used for symbol that
>> has "use only local database"
flag turned on, and NULL is returned
>> instead of an error
>>>
>>>
>>>
>>> i.. Protected against
changing application's current working
>> directory by printing to file
>>>
>>>
>>>
>>> j.. Toolbar does not get
wrapped when main frame window is resized
>>>
>>>
>>>
>>> k.. OLE: Analysis object
has new method MoveWindow( x, y, width,
>> height) that allows to control position
and size of automatic analysis
>> window
>>>
>>> AB = new
ActiveXObject("Broker.Application");
>>> AB.Analysis.MoveWindow(
10, 10, 200, 200 );
>>>
>>>
>>> It has some restrictions
on size: specified size can not besmaller
>> than 10x10 pixels and can not be bigger
than entire screen dimensions.
>>> Also when "No
minimum size for resizing dialogs" box in UNCHECKED
>> in Tools->Prefs->Misc it won't
shink AA window below default size
>> necessary to fully display all controls.
>>>
>>>
>>>
>>> l.. ASCII importer: added
ability to import tick data from text files
>>>
>>> ASCII importer now allows
tick data files to be imported.
>>>
>>> Tick data files consist
of several records having the same
>> timestamp.This makes it impossible to use
normal import mode which
>> assumes different (unique) timestampsfor
each data row (when same
>> timestamp is found then new data
overwrites old).
>>>
>>>
>>> To turn on TICK mode you
need to add manually
>>>
>>> $TICKMODE 1
>>>
>>> line to ASCII importer
definition file.
>>>
>>>
>>> $TICKMODE is a special
mode of importer that allows to import
>> quotes that haveduplicate time stamps.
>>>
>>> It makes two assumptions:
>>> a) input data should come
in the ascending time order (i.e. OLDER
>> records first, LATEST records last)
>>> b) input data should
consist of entire tick history because
>> importer will DELETE any existing quotes
(to avoid creating multiple
>> copies of the same ticks).
>>>
>>> Once again: Turning on
>>> $TICKMODE 1
>>> will DELETE ANY QUOTES
that already exist in the database and then
>> will import all ticks from input data
file.
>>> You have been warned.
>>>
>>>
>>> For example data files
like this:
>>>
>>>
>>
MOL,0,20050606,162959,16400.0000,16400.0000,16400.0000,16400.0000,2MOL,0,20050606,162959,16400.0000,16400.0000,16400.0000,16400.0000,11MOL,0,20050606,162959,16400.0000,16400.0000,16400.0000,16400.0000,40
>>>
>>>
>>> Can be imported using the
following definition file:
>>>
>>>
>>> $FORMAT Ticker, Skip,
Date_YMD, Time, Open, High, Low, Close, Volume
>>> $SKIPLINES 1
>>> $SEPARATOR ,
>>> $CONT 1
>>> $GROUP 255
>>> $AUTOADD 1
>>> $DEBUG 1
>>> $TICKMODE 1
>>>
>>>
>>> Sometimes it happens that
input files have invalid timestamps
>> (seconds > 59).
>>>
>>> For example:
>>>
>>>
MOL,0,20050606,162970,16400.0000,16400.0000,16400.0000,16400.0000,2
>>>
>>> Please take a closer look
at first line shown in this example it
>> has time:16:29:70 (you see 70 seconds !)
>>>
>>> So I had to add a special
flag to the importer that works around
>> such data errors.
>>>
>>> It is called
$ALLOW99SECONDS 1 and will convert all records with
>> invalid seconds (i.e greater than 59)to
59s.
>>> So record stamped
16:29:70 will be treated as 16:29:59
>>>
>>> Now for tick mode to work
with such incorrect records you would
>> need to add two lines to ASCII importer
definition:
>>>
>>> $TICKMODE 1
>>> $ALLOW99SECONDS 1
>>>
>>>
>>>
>>> HOW TO REPORT BUGS
>>>
>>> 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
>>>
>>
>>
>>
>>
>>
>>
>>
>> Please note that this group is for
discussion between users only.
>>
>> To get support from AmiBroker please send
an e-mail directly to
>> SUPPORT {at} amibroker.com
>>
>> For other support material please check
also:
>> http://www.amibroker.com/support.html
>>
>>
>> Yahoo! Groups Links
>>
>>
>>
>>
>>
>>
>
>
>
>
> Please note that this group is for discussion
between users only.
>
> To get support from AmiBroker please send an
e-mail directly to
> SUPPORT {at} amibroker.com
>
> For other support material please check also:
> http://www.amibroker.com/support.html
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For other support material please check also:
http://www.amibroker.com/support.html
SPONSORED LINKS
YAHOO! GROUPS LINKS