http:\/\/www.amibroker.com\/download.html<\/a><\/strong><\/p>\nFEATURE HIGHLIGHTS 6.39<\/strong><\/p>\n6.39 provides 30 new features and enhancements<\/p>\n
\n- AFL editor enhancements\n
- new AFL functions\n
- support for gzip and deflate compression in Internet functions\n
- in-place matrix copy\n
- backtester enhancements\n
- improved text tool with per-study selectable font size\n
- new 8-digit ICB structure\n
- plugin interface backward compatibility with changing function signatures\n
- improved performance\n
- more runtime checks to prevent user errors and other fixes\n<\/ul>\n
CHANGES FOR VERSION 6.39.1<\/strong> (as compared to 6.39.0)<\/p>\n\n- 64-bit uses a bit faster float versions powf and modf instead of double pow\/mod for ^ and % operators (non integers)\n
- Analysis\/Settings: added 3 checks and warnings to prevent users from entering combination of MinPosValue\/MaxPosValue\/AllowPosShrinking\/RoundLotSize that are likely to prevent all trades from being taken at all\n
- array ^ (exponentation) operator made 50-100x faster in special cases of small INTEGER, scalar exponents of 2, 3, 4 and 5 by using multiplication instead of calls to C runtime powf()\n
- calling GuiSetText from AFL formula caused notifyEditChange notification to be sent. If user formula responded to notification with another GuiSetText this could create loops. Now notifications are silenced if changes come from user code\n
- When one pane had Gui controls and the other pane on another chart sheet was completely blank, then GUI controls from populated tab remained displayed after switching to completely blank sheet. Fixed\n<\/ol>\n
CHANGES FOR VERSION 6.39.0<\/strong> (as compared to 6.38.0)<\/p>\n\n- 64-bit: AmiBroker, AmiQuote, AFL Code Wizard migrated to newest VC++ 2019 for even better performance\n
- AFL Editor: @link commands are executed at mouse up (instead of previous mouse down) to prevent unwanted text selection when message boxes are dismissed\n
- AFL Editor: call tips (parameter information tooltips) now provide extra description about the function and its parameters (as of v6.39 only 20 functions have this extra info)\n
- AFL Editor: debugging session is automatically terminated with appropriate notice when user attempts to edit the code during debugging (this saves mouse clicks that were needed to stop debug session in order to edit)\n
- AFL Editor: previously when no text was selected and Prettify Code was choosen, the message box caused main frame to get focus instead of focus staying in AFL frame. Fixed\n
- AFL Editor: when an runtime error is detected debugging session the message bar shows now number of detected errors (as it did previously during normal \"verify\"\n
- AFL Editor: when dark mode list views are used watch window default text color was black making it hardly visible, changed to white\n
- AFL\/CBT: AmiBroker now displays an error when user passes incorrect bar number to ProcessTradeSignals() instead of silently skipping wrong arguments\n
- AFL: added protection against assigning wrong types to some built-in variables such as *Price arrays. If wrong type is assigned the error 71 Type mismatch in assignment is displayed\n
- AFL: ADX() function vectorized in 64-bit version (2x faster than before)\n
- AFL: backtester crashed when user incorrectly assigned string value to BuyPrice\/ShortPrice\/CoverPrice arrays. Fixed.\n
- AFL: Error(\"text\", stop=False) function - added extra parameter to stop execution regardless of \"stop execution at first error\" preference setting\n
- AFL: FindIndex( array, value, start_from = 0, dir = 1 )\n
- AFL: If warning level >= 3, InternetOpenURL() function now displays a warning 507 if OS generated exception when accessing remote resource, the same way as InternetPostRequest\n
- AFL: increased calculated bar requirements for Wilders() function for better conformance with QuickAFL\n
- AFL: Last OS error code is set by Internet* functions regardless of warning level so you can always retrieve it using GetLastOSError()\n
- AFL: MA( C, BarCount ), StDev( C, BarCount ) return non-Null value\n
- AFL: new field added to SetOption\/GetOpion function calls \"MaxPosValue\" (per backtest setting)\n
- AFL: new function InternetSetHeaders( \"headers\" ) - set custom HTTP headers for subsequent web requests\n
- AFL: new function InternetSetOption( option, value ) - set HTTP option for internet session\n
- AFL: new function MxCopy - for copying rectangular blocks from one matrix to the other (copy portions of one matrix to the other matrix)\n
- AFL: new function: _exit() - that gracefully ends AFL execution at the point of the call\n
- AFL: new function: InternetGetStatusCode function - returns HTTP status code of last InternetOpenURL or InternetPostRequest call\n
- Analysis\/Backtest: added \"Max. position value\" option in the settings allowing to specify maximum dollar value of position. Zero (0) means no maximum. Positions larger will be shinked (if shrinking is enabled) or won't be entered at all (if shrinking is d\n
- Charts\/Preferences: added Text Tool font setting independent from Axis font (Preferences->Miscellaneous page)\n
- Charts: Text Box tool supports user-selectable font size now (selectable in Study Properties window)\n
- Database: new 8-digit ICB structure implemented: https:\/\/www.ftserussell.com\/data\/industry-classification-benchmark-icb\n
- Got rid of obsolete \"Request data on save\" setting that wasn't performing as expected\n
- Plugin interface: added compatibility layer allowing old plugins to safely call functions even when they have modified signature (added new default parameters). When plugin calls function with less than expected number of arguments, missing some of default\n
- When variable was passed to user function by reference, ++ operator inside had no effect on referenced variable (outside of function). Fixed.\n<\/ol>\n
CHANGES FOR VERSION 6.38.0<\/strong> (as compared to 6.35.1)<\/p>\n\n- 64-bit version uses updated VC2017\/2019 runtime\n
- 64-bit version could produce \"Invalid parameter\" exception from CRT after backtesting when symbols under test had forbidden characters in them like \"%\". Fixed\n
- 64-bit version: address space layout randomization disabled by \/DYNAMICBASE:NO linker option to facilite easier crash location finding\n
- AFL: assignment new matrix value to a variable already holding matrix value did not immediately free memory (at the time of assignment). This memory was only freed at the end of the formula. Now it is freed earlier (at assignment) to lower memory usage.\n
- AFL: GetFnData(\"lastsplitdate\") returns empty val instead of zero if last split date is not set\n
- AFL: GfxDrawImage with PNG file could fail if very same file was accessed simultaneously from multiple threads due to \"no-sharing\" mode that 3rd party XTP lib used. Fixed by using shareDenyWrite\n
- AFL: new function Chr( code ) returns string representing single character of given ascii code\n
- AFL: new function GetObject( path, class ) providing functionality equivalent to JScript GetObject and VBScript GetObject\n
- AFL: new function GuiSendKeyEvents(\"ED\") - register given characters to be sent as Gui event when keyboard key is pressed. GuiGetEvent will return code == notifyKeyDown and id of given character, for example id == 'D' for D letter\n
- AFL: StaticVarAdd when scalar value was added to already existing static var array sometimes random value would appear. Fixed.\n
- AFL: when file creation or modication date was exact midnight fgetstatus() returned datetime indicating \"eod mark\" (date without time), now it gives 00:00:00\n
- Analysis: Maximum number of threads per single Analysis window has been increased to 64 (from 32)\n
- Backtester: generation of Buy&Hold stats was not working when \"Allow position shrinking\" was turned OFF by the user and commission > 0. Fixed\n
- Chart: Data window can now display upto 40 values per single chart pane\n
- Chart: Horizontal line snap to open price (keypress O) or close price (keypress C) was snapping to H-L instead. Fixed\n
- Charts: Snap to price - the meaning of threshold is changed - instead of % of price it now means % of chart height. So 5% will snap within +\/-5 of chart height. This allows it to work universally across different securities (stocks\/forex) and different zo\n
- IQFeed: improved IQFeed plugin (better support for long EOD histories in mixed mode)
\n New Analysis: the name of column \"contracts\/shares\" changes each time you change futures mode to prevent confusion among newbies<\/p>\n - Plugins: when AFL plugin crashes (throws structured exception) the editor and indicator windows will display call stack for easier debugging of 3rd party plugins\n
- UI: Dialog boxes are moved back main display screen if multi-monitor configuration was changed and multi-monitor setup is not rectangular (for example monitors of different sizes)\n
- UI: Listview sorting by (single) date column is now 10+ times faster\n
- UI: Listview uses non optimized parsing for str to date conversion for date formats that include names of the months instead of numbers (avoids problems with different names of months in different languages)\n
- UI: Main window and AFL Editor frame is moved back to (0,0) if multi-monitor configuration was changed and multi-monitor setup is not rectangular (for example monitors of different sizes), so saved position falls outside currently available working area\n
- UI: MDI Close\/Minimize\/Restore buttons are now HighDPI aware\n
- UI: MDI Tab client window buttons are now HighDPI aware\n
- UI: Minimized flicker during docking panes resize by disabling Windows copy bits\n
- UI: Toolbar split-popup buttons are now HighDPI aware\n
- x64 eSignal: reverted to more compatible version compiled with VC2005\n<\/ol>\n
CHANGES FOR VERSION 6.35.0<\/strong> (as compared to 6.31.0)<\/p>\n\n- AFL: new function inverf(x) - inverse of erf function\n
- AFL Editor: added function navigation combo box in the toolbar - detects user defined functions and allows to quicky navigate to function definition\n
- AFL: GetOption(\"PadAndAlignToReference\") allows to query Pad and align setting status (note that this is read-only field, so it will not work with SetOption)\n
- AFL: new function erf(x) - computes Error function https:\/\/en.wikipedia.org\/wiki\/Error_function\n
- AFL: parser warns if empty body is used in 'for' statement, like this: for( i = 0; i < 10; i++) ; \/\/ extra semicolon at the end - empty body Warning 510\n\n
- AFL: parser warns if empty body is used in 'while' statement, like this: while( condition ) ; \/\/ extra semicolon at the end - empty body Warning 510\n
- AFL: SafeDivide( x, y, valueifzerodiv )- safe division that handles division by zero using special handling (replace result with user-defined value)\n
- Batch: added optional parameter to Data Import ASCII command to allow specify format definition file\n
- Batch: added optional parameter to Execute and Wait command to specify current working directory for command\n
- Batch: added optional parameter to Export to File \/ Export walk-forward to file to specify column separator in CSV files
\n -optional parameter defines the column SEPARATOR used for export. Only single character is used. When it is not supplied, comma is used.<\/p>\n - Batch: Clipboard Cut\/Copy\/Paste implemented in batch editor\n
- Batch: Edit->Delete (from main menu) and Edit-Delete All implemented for completeness\n
- Batch: list view uses virtual mode now (owner data)\n
- UI: All owner-draw list views (NOT in dialogs) now feature customizable theme (currently available \"system (light) theme\" and \"black theme\") - go to Tools->Customize, \"Appearance\" tab, \"Dark mode for listviews\" checkbox\n
- UI: Analysis and RT quote window use now exactly the same RGB values for up\/down (green\/red) colors for consistency\n
- UI: Custom virtual listview (owner data) supports per-item data now\n
- UI: Found workaround to avoid terrible flicker and bad rendering of list view controls during fast page up\/down and side scrolls (even though they are double buffered by Windows and in theory should be smooth).\n
- UI: Identified even more bottlenecks in Windows OS that caused even owner data and owner draw Listview performance to suffer with large number of columns. OS code circumvented. Listview redraw speeds increased more than 5x compared to previous speedy implementation\n
- UI: Implemented resizing of Listview column customization dialog\n<\/ol>\n
CHANGES FOR VERSION 6.31.0<\/strong> (as compared to 6.30.0)<\/p>\n\n- AFL: Access violation in PercentRank when period is wrong. Now error 52 is displayed instead.\n
- AFL: InternetPostRequest now silently (or with warning 507 under debugger) returns NULL handle instead of error when remote server responds with HTTP Status 50x\n
- Analysis: manual column re-sorting could be bit off if scientific output format (xxxEyyy) was used with different exponents. Fixed.\n
- ASCII importer now handles LastSplitRatio of X:Y where X and Y are 1...32767 (previously only 1..127)\n
- Batch: add \"add results to watchlist\" action \/ WatchlistAddResults\n
- Batch: add \"clear watchlist\" action \/ WatchlistClear\n
- Batch: add \"comment\" action\n
- Core\/DB: fixed access violation when all data were removed while QuickData was turned on\n
- DebugView: eliminated some internal messages from DebugView output (from release version)\n
- InternetPostRequest - even if URL started with https, previous version wanted to connect to port 80, instead of 443. Fixed.\n
- UI\/Listview: since 6.28 exception could occur if single cell text length exceeded 1024 characters. Fixed.\n
- When database is empty, ticker box displays grayed text instead of blank or reminiscent of previous database symbol\n<\/ol>\n
KNOWN ISSUES:<\/strong><\/p>\n\n- None\n<\/ol>\n
For more details, instructions and examples how to use new features see the 6.39.1 BETA READ ME<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"Stability: – regular BETA should work fine in most environments This is a BETA version. Make a backup first A new RC version (6.39.1) of AmiBroker has been released. 32-bit version: http:\/\/www.amibroker.com\/members\/download.php?AmiBroker6391.exe (10 316 744 bytes) 64-bit version: http:\/\/www.amibroker.com\/members\/download.php?AmiBroker6391x64.exe (10 924 560 bytes) If you can not log in into members’ area please get your […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[10,9],"tags":[],"_links":{"self":[{"href":"http:\/\/www.amibroker.com\/wordpress\/devlog\/wp-json\/wp\/v2\/posts\/1364"}],"collection":[{"href":"http:\/\/www.amibroker.com\/wordpress\/devlog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.amibroker.com\/wordpress\/devlog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.amibroker.com\/wordpress\/devlog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.amibroker.com\/wordpress\/devlog\/wp-json\/wp\/v2\/comments?post=1364"}],"version-history":[{"count":0,"href":"http:\/\/www.amibroker.com\/wordpress\/devlog\/wp-json\/wp\/v2\/posts\/1364\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.amibroker.com\/wordpress\/devlog\/wp-json\/wp\/v2\/media?parent=1364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.amibroker.com\/wordpress\/devlog\/wp-json\/wp\/v2\/categories?post=1364"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.amibroker.com\/wordpress\/devlog\/wp-json\/wp\/v2\/tags?post=1364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}