A new BETA version (6.49.1) of AmiBroker is available now.
(10 437 808bytes)
(11 089 448 bytes)
The highlights of this new release are:
- AFL language new features & improvements
- AFL editor improvements
- UI improvements
For the details see ReadMe.html and ReleaseNotes.html inside AmiBroker folder.
This version is a free upgrade only for users who registered AmiBroker after September 19, 2021 . Users who registered earlier, would need to purchase license upgrade. To find out the version you currently have use Account Information page at https://www.amibroker.com/members/info.php
CHANGES FOR VERSION 6.49.1 (as compared to 6.49.0)
- AFL: formatDateTimeISO was working as formatDateISON (no separators). Fixed so now it includes separators.
- AFL: new function trunc() that truncates fractional part, works identically as int(). int() is now marked as obsolete and will be removed in some future. All instances of int() should be replaced by trunc() in new code.
- AFL: in 6.49.0 int() function wasn't doing anything (no-op), regression fixed.
- UI: in 6.49.0 the interpretation window crashed, regression fixed.
CHANGES FOR VERSION 6.49.0 (as compared to 6.43.1)
- Account: Summary page (grid) in dark mode displays read-only items in lighter shade of gray for better readability
- AFL Editor: Added simple detector of pasting ChatGPT-generated code. Displays a notice that ChatGPT is not able in most cases to produce valid code. Due to stochastic nature of how ChatGPT produces code it might not detect all cases.
- AFL Editor: Fold margin width now scales with font selected / DPI instead of being fixed
- AFL Editor: UI, in auto-complete dropdown "Fals" was displayed instead of "False". Typo fixed.
- AFL Editor: watch window displays arrays with less than 5 elements entirely without ... (elipssis)
- AFL Editor: when symbol has no quotes, the AFL editor will now create synthetic data to allow verify syntax and debugging anyway. Artificial data created is just 1 bar (future), it allows code checking in this edge case
- AFL: added support for C++ -style raw strings
- AFL: AddToComposite requests are now served by idle message queue (gives slight speed up and allows syncing with post process normalization)
- AFL: atcFlagNormalize performs normalization by dividing OHLCV fields by the field given as argument (either "I", "1" or "2") after scan is completed
- AFL: Crash could occur if type of second or subsequent argument for function call was invalid, due to uninitialized memory. Fixed.
- AFL: experimental - added support for maps (dictionaries of key-value pairs, aka associative arrays), note that all map variables (unlike other types) are really references, so when you pass it to a function you are passing reference and original object - will be documented in subsequent post in this thread
- AFL: Matrix( rows, cols, init_val = Null, increment = 0 ) has now new parameter 'increment' that allows to create a matrix with monotonically increasing elements
- AFL: micro-allocator block size bumped to 64 bytes in both 32bit and 64bit versions for better alignment with cache line size and better performance
- AFL: new Error 74 - AmiBroker now reports invalid non-ASCII characters being used in the formula code. Non-ASCII codes (>127) are only allowed in strings and comments.
- AFL: Nz() function now accepts scalars and arrays in ValueIfNull argument (previously only scalar was accepted)
- AFL: SafeDivide - added support for 3rd argument (resultIfZeroDiv) to be array in case when 1st and 2nd args are arrays
- AFL: Static variable declaration now allows custom initial value. The initial value expression is evaluated and assigned to static variable only if static variable wasn't present before. If initial value is not given, static variable is automatically inti
- AFL: StaticVarInfo now adds support for "count" field that allows to count variables based on wildcard mach. StaticVarInfo( "prefix*", "count")
- AFL: stricter checking for format string passed to printf() / StrFormat and against types of arguments passed
- AFL: SumSince has new optional argument incFirst - SumSince( Condition, Array, incFirst = False ) that decides whenever first bar value when condition is true is included in sum or not
- AFL: using PlaySound somehow slowed down other worker threads. Fixed by explicit termination of playback of previous sound.
- Charts: flyout buttons for closing/rearranging chart panes now scale properly with changes in screen DPI
- Indicator maintenance wizard automatically creates timestamped backup file (broker.newcharts.imYYYYmmddHHMMSS.bak) from broker.newcharts so in case of failure original broker.newcharts can be easily restored
- New Analysis: add a notice / info in the backtest report when equity gained more from interest than from trades alone - indicating that results are based primarily on cash sitting idle than trading system
- QuickGFX: fixed crash with styleCloud when cloud was totally outside visible area (above top or beyond bottom of chart)
- TDL #3818 revisited. There were more cases when worker thread attempted to read string from resources sometimes resource handle was set incorrectly, this caused COleException / unknown error. Fixed by replacing faulty MS CString::LoadString implementation
- Tools: Indicator maintenance - added check for valid parent (property sheet)
- UI: Edit->Delete range now supports multiple selection in the Symbol pane, so it can delete range of quotations from multiple symbols at once
- UI: In XAML markup, units such as pt, in, cm and mm now scale properly to HiDPI
- UI: Modal dialog boxes that aren't dismissed first flash but on next wrong click they move to mouse position
- UI: Property Grid (Symbol Information/Account summary) expand buttons scale properly to HighDPI displays
- UI: Start page uses system icon font and updated design with scalable vector icons
- UI: Symbol->Organize Assignments full name column was not always refreshed initially (required click on radio button). Fixed
- UI: XAML markup checkboxes now properly scale to HiDPI
This is continuation of the discussion from AmiBroker 6.43.1 BETA released