amibroker

HomeDevLog

AmiBroker 6.09.1 Release Candidate

Stability: Rank 4 - Release Candidate, pretty stable, should work fine in most environments

This is a Release Candidate version. Make a backup first

A new RC version (6.09.1) of AmiBroker has just been released.

32-bit version:
http://www.amibroker.com/members/bin/AmiBroker6091.exe
(9 509 032 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6091x64.exe
(10 188 104 bytes)

If you can not log in into members' area please get your new password by filling the form at: http://www.amibroker.com/login.html

IMPORTANT: Unauthorized copying and/or distribution of materials found on members' only page is STRICTLY PROHIBITED and will result in IMMEDIATE termination of license.

UPGRADE POLICY
This version is a free upgrade only for users who registered AmiBroker after December 15, 2013. Users who registered earlier, would need to purchase license upgrade. To find out the version you currently have use Account Information page at http://www.amibroker.com/members/info.php

NOTE: This version works both as fresh first-time install and as in-place upgrade. Previous installation (if any) is detected and setup switches into 'upgrade' mode. Don’t worry, your charts, formulas, etc won’t be affected by the upgrade.

HOW TO USE NEW FEATURES
This version contains a brand new AFL visual debugger. Detailed description of how to use the debugger is provided here: http://www.amibroker.com/guide/h_debugger.html

CHANGES FOR VERSION 6.09.1 (as compared to 6.08.0)

  1. Analysis Settings: Tab order was incorrect in Settings/Monte Carlo in 6.09.0 causing radio button group to behave incorrectly. Fixed in 6.09.1.
  2. AFL Editor: an error message box displayed when @link file was not found caused main frame to get focus. Fixed.
  3. AFL Editor: auto-complete and parameter tooltips poped up when adding/editing Doxygen/JavaDoc comment sections. Fixed.
  4. AFL: new function fgetcwd - get current working directory
  5. Analysis: Monte Carlo - semi logarithmic scale can be now used for Equity, Final Equity and $ Drawdown distribution charts (see Settings)
  6. Analysis: Monte Carlo simulation has now a few mode "Simulate usign equity changes". This uses bar-per-bar percent portfolio equity changes to generate permutations instead of trade list.
  7. Documentation (help files) have been updated
  8. UI: Enlarged crash recovery window because people send us screenshots instead of clicking "Send report" button. Please click "SEND REPORT" instead of sending screenshots. Screenshots unfortunatelly do not contain all information, so now at least some more
  9. UI: On Windows Vista and higher all tree views now use double buffering to avoid flicker
  10. UI: XY charts and Monte Carlo charts axes use M suffix for numbers bigger than one million

CHANGES FOR VERSION 6.08.0 (as compared to 6.07.0)

  1. AFL Editor: Implemented clickable JavaDoc/Doxygen-style links in doc comments
  2. AFL: Unary minus and NOT operator could cause crash when applied to result of undefined function or variable of non-numeric type. Fixed.
  3. 64-bit stack walker does not use Microsoft symbol server anymore so it can init a lot faster. Also initialization of stack walker is moved to startup sequence because doing it after exception is risky and unreliable
  4. 64-bit: access violations during Analysis run do not result in 'application not responding' freeze. Instead bug report is displayed with proper call stack.
  5. After change in 6.02 exception dialog displayed first error in the formula even if exception was really caused not by first but last error. Fixed.
  6. Exception info could get mixed up when multiple threads generated them at the same time. Fixed.
  7. New Analysis: Auto-size column functionality re-displayed hidden columns. Fixed.
  8. UI: AmiBroker now prevents piling on "Bug recovery" dialogs when multiple exceptions are thrown from multiple threads. First dialog is displayed, other exceptions are logged into DebugView as long as "Bug recovery" is not dismissed.
  9. "Rename" and backup functions in several places could fail if new file name already existed. Fixed.
  10. Support for Windows 95 is dropped

CHANGES FOR VERSION 6.07.0 (as compared to 6.06.0)

  1. AFL: compression for array Static variables implemented to save memory and file size: StaticVarSet has additional parameter that controls compression
  2. AFL: printf/StrFormat check for %s, %c, %d, %x, %i, %u, %x, %p sequences that are not supported now and prints Error 62 when they are found.
  3. AFL: printf/StrFormat now implement a check for correct formatting string as sometimes users passed strings with % that is special marker for formatting string instead of %% to print actual percent sign
  4. AFL: Some variable period functions such as Ref/Sum/MA incorrectly accepted matrix as a 'period'. Fixed (proper error message is displayed now).
  5. AFL: StaticVarGet/StaticVarSet functions now support matrices including persistency (so matrices can be written to disk and loaded back between AmiBroker runs)
  6. AFL: VarSet/VarGet officially accept matrices (allow dynamic variables of matrix type). (FWIW they were accepted in previous versions but implementation was incomplete.)
  7. Charting: Candlestick wicks thickness is now user definable as % of candle width with a max. pixel width (Tools->Preferences, "Bars and Candles" tab). Also by default wick thickness is now 25%/5px max instead of constant 1 pixel.
  8. Charting: Cycles tool in weekly chart produced incorrect lines when it went past 2038. Fixed.
  9. Charting: Horizontal line tool level is now displayed with number of decimals as defined in Preferences (Misc tab, "decimal places in chart titles/tools"). Note that this setting is used when you draw a new line or modify old.
  10. Debugger: Added F5 key as keyboard shortcut for "Debug / Go"

CHANGES FOR VERSION 6.06.0 (as compared to 6.05.0)

  1. AFL Editor: Bookmarks implemented (Ctrl+F2 - toggle bookmark, F2 - go to next bookmark, Shift+F2 - go to previous bookmark
  2. AFL Editor: Find in Files - when file name contained braces () double click on it would not open it. Fixed.
  3. AFL Editor: Line comment puts double // comments on lines that appear after empty line. Fixed. Now empty lines are left untouched.
  4. AFL: extra parameter for DateTimeToStr function mode (mode = 0 - convert both date and time portion, 1 - only date, 2 - only time ) Note that mode 2 would give you empty string when applied on chart with daily or longer interval
  5. AFL: new function GfxFillSolidRect( x1, y1, x2, y2, color ) - it is fastest method to fill solid rectangle with single color (faster than GfxRectangle)
  6. AFL: new function SumSince - a fast sum of array elements since condition was true, works like Cum( array ) - ValueWhen( condition, Cum( array ) ) or Sum( array, BarsSince( condition ), but much faster
  7. AFL: Variable period Sum() performance improved significantly when period changes +/-1 on bar by bar basis
  8. Categories dialog: added ability to re-arrange the order of markets/groups/sectors/industries and watch lists using "Move Up" / "Move down" buttons
  9. New Analysis: Added an option "Auto-size columns to fit content" - OFF by default. When turned on, column widths are adjusted to fit the content after analysis is complete. Note that this means that any widths specified in width parameter in AddColumn will be ignored if this option is ON.
  10. New Analysis: when "Wait for backfill" was turned ON and some symbols in the "Apply to" list were wrong (non-existing) then Analysis attempted to run code for symbol without quotes causing trouble. Fixed.

CHANGES FOR VERSION 6.05.0 (as compared to 6.04.0)

  1. AFL Editor Find in Files implemented - on the output list you can double click on line to open the file in the editor
  2. AFL Editor/Debugger: Code Check and Profile stopped working when it was run after debugging session. Fixed.
  3. AFL: Null is accepted by MxFromString now
  4. AFL: performance of printf() for large volume output (>60000 characters) improved ~60 times.
  5. Charts: reduced tearing when resizing the chart window
  6. Debugger now can use either base time interval or current chart interval (Tools->Preferences, Debugger tab, "Bar interval" setting)
  7. Debugger: implemented Output window (for printf() output during debugging)
  8. Removed old-style legacy AFL editor from the code, removed "use new editor" checkbox from the preferences. A new editor is used always now.
  9. UI: Unfold triangles in tree views and checkboxes in Layers list were hard to click on HighDPI screens because icons were too small. Fixed.
  10. Watch window: now expressions with 2D subscripts to access elements of matrix matrix[ x ][ y ] are supported

CHANGES FOR VERSION 6.04.0 (as compared to 6.03.0)

  1. AFL Editor & Watch Window: the contents of matrices is now displayed in value tooltips and watch window
  2. Debugger state (watch variables/expressions and breakpoint locations) is now saved between AFL editor sessions (formula-wise so each formula has its own "debug state"). The data are saved in XML file with .dbg extension
  3. Debugger: MDI mode implemented. In 6.0.3 AFL Editor did not support 'MDI mode' (even crashed), now this functionality is back. Also Watch window is available in MDI mode and debugger is working in MDI mode too.
  4. Preferences: added new page with Debugger settings.
  5. Preferences: 'Editor' tab moved so 'AFL', 'Editor', and 'Debugger' tabs are next to each other, also 'Alerts' and 'Currencies' tabs moved before 'Miscellaneous'
  6. Watch window: a new tab "Arrays" shows exploration-like array output for detailed examination of array contents (first 20 arrays from watch window are reported)
  7. Watch window: implemented array item change highlighting and auto-scrolling so first changed item is always visible in the 'Arrays' tab
  8. Watch window: implemented expression evaluator, so you can not only display variables, but also expressions involving variables such as (high+low)/2 or individual array elements such as myvariable[ i ] where i is dynamic loop counter
  9. Watch window: implemented value change highlighting: changed values are displayed with light yellow background, additionally numeric (scalar) values are displayed in green when they increased or red if they are decreased
  10. Watch window: pressing DELETE key while editing variable name caused deletion of variable from watch. Fixed.
  11. Watch window: variables can now be drag-dropped from AFL editor window

CHANGES FOR VERSION 6.03.0 (as compared to 6.02.0)

  1. AFL Editor: Implemented fully integrated Visual AFL Debugger. Note: this is work in progress and more things are to come
  2. Debugger: Implemented breakpoints (including those set before compilation as well as adding/removing breakpoints during debugging)
  3. Debugger: Implemented single-stepping Step Into, Step Over
  4. Debugger: Implemented variable value inspection tooltips (hover mouse over variable to see its value)
  5. Debugger: Implemented Watch window with variable value display automatically updating when debugger single-steps or reaches breakpoint
  6. AFL: Sum(array,N) outputs NULL values for indices starting from 0 upto index N-1 instead of N
    Renaming of PersistVars.temp to PersistVars.bin failed on some versions of OS. Fixed.
  7. RT Quote window: drag-drop list view shows small arrow marker for the drop point now.
  8. RT Quote window: when moving items using drag-drop, moved items image was flickering. Fixed
  9. UI: Chart zoom via Ctrl+mouse wheel now works so it attempts to current mouse position as a "center" point of zoom when possible. (Previously it always worked so right border was the 'center').
  10. When intraday data were used timestamp of 00:00:00 was not displayed in data tooltip (empty field was shown). Fixed.

CHANGES FOR VERSION 6.02.0 (as compared to 6.01.0)

  1. AFL Editor: Implemented Line comment/uncomment feature (Edit->Line Comment, Ctrl+Q) to automatically add/remove // line comments from single or multiple lines
  2. AFL: If any matrix cell has Null value then matrix product operator @ produces Null respective row/column of the result matrix.
  3. AFL: if user called (a) GetPerfomanceCounter( 1 ) then (b) GetPerformanceCounter( 0 ) then subsequent call to GetPerformanceCounter(0) returned cumulated time not from call (a) but from system boot. Fixed.
  4. AFL: matrix identifier can now be used in if-else statement. Such condition checks whenever very first element of matrix [0][0] is NOT NULL. This is useful for checking output of functions like MxInverse/MxSolve that would return NULL in all cells if matrix is singular
  5. AFL: MxSolve/MxInverse now return a matrix filled with Nulls as a result if source matrix can not be inverted and produce warning level 2 instead of an error.
  6. AFL: On Windows Vista and higher static variables use slim read-write (SRW) lock instead of critical section. This gives 5% performance increase in multithreading scenarios.
  7. AFL: StaticVarAdd( "name", value, keepAll = True, persistent = False ) - an atomic addition (interlocked read-add-write) operation for static variables
  8. AFL: Study() returned NULL array when line's start date was greater than end date. Fixed (now it works for lines drawn from right to left too).
  9. Docs: Example polynomial fit formula shows how to gracefully handle singular matrix and overflow/not-a-numbers in polynomial calcs
  10. Persistent static variables are now saved to PersistVars.temp and once write is successful the file is renamed to PersistVars.bin. This is to prevent data loss when writing very large sets of persistent variables.
  11. When more than one error is detected in single line of the formula then the first error message is displayed instead of last one in chart/commentary/analysis.

CHANGES FOR VERSION 6.01.0 (as compared to 6.00.2)

  1. AFL: MxDet( mx, method = 0 ) - calculates determinant of the matrix
  2. AFL: MxFromString() - creates a new matrix out of string in Mathematica/Wolfram list-style: "{ { 1, 2, 3 }, { 4, 5, 6 } }" or Matlab/Maple style "[ [ 1, 2, 3 ], [ 4, 5, 6 ] ]" or GNU Octave comma-semicolon style [ 1, 2, 3; 4, 5, 6 ]
  3. AFL: MxGetBlock( matrix, startrow, endrow, startcol, endcol, asArray = False )
  4. AFL: MxInverse( mx ) - calculates inverse of the matrix
  5. AFL: MxSetBlock( matrix, startrow, endrow, startcol, endcol, values = 0 )
  6. AFL: MxSolve( A, B ) - solves linear equation system A@X = B
  7. AFL: MxSort( mx, dim = -1, ascening = True ) - sorts the matrix
  8. AFL: MxSortRows( mx, ascending = True, col1 = 0, col2 = -1, col3 = -1 )
  9. AFL: MxToString - creates string out of matrix variable in the Wolfram list style like this (for 3x3 matrix): { { x00, x01, x02 }, { x10, x11, x12 }, { x20, x21, x22 } }

KNOWN ISSUES:

  1. None

GETTING STARTED WITH DEBUGGER

To use debugger, open your formula in the Formula Editor, place few breakpoints (red circle/F9 key), add some variable names to watch (open watch window using Window->Watch menu, add variable names by double clicking on the end of the list). Then start debugging (Debug->Go), once breakpoint is hit, you can hover the mouse over the variables to see their value, single step (F10/F11) and examine values in the watch window.

For more details, instructions and examples how to use new features see the 6.09.0 RC READ ME

Detailed description of the debugger is available here:
http://www.amibroker.com/guide/h_debugger.html

AmiBroker 6.08.0 BETA released

Stability: Rank 3 - Regular BETA, pretty stable, should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.08.0) of AmiBroker has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6080beta.exe
(2 372 160 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6080x64.exe
(10 120 848 bytes)

If you can not log in into members' area please get your new password by filling the form at: http://www.amibroker.com/login.html

IMPORTANT: Unauthorized copying and/or distribution of materials found on members' only page is STRICTLY PROHIBITED and will result in IMMEDIATE termination of license.

UPGRADE POLICY
This version is a free upgrade only for users who registered AmiBroker after December 15, 2013. Users who registered earlier, would need to purchase license upgrade. To find out the version you currently have use Account Information page at http://www.amibroker.com/members/info.php

Remember to BACKUP YOUR FILES FIRST !
Note that this version can only be installed onto previous full installation of version 6.00 or higher from http://www.amibroker.com/download.html

HOW TO USE NEW FEATURES
This version contains a brand new AFL visual debugger. Detailed description of how to use the debugger is provided here: http://www.amibroker.com/guide/h_debugger.html

CHANGES FOR VERSION 6.08.0 (as compared to 6.07.0)

  1. AFL Editor: Implemented clickable JavaDoc/Doxygen-style links in doc comments
  2. AFL: Unary minus and NOT operator could cause crash when applied to result of undefined function or variable of non-numeric type. Fixed.
  3. 64-bit stack walker does not use Microsoft symbol server anymore so it can init a lot faster. Also initialization of stack walker is moved to startup sequence because doing it after exception is risky and unreliable
  4. 64-bit: access violations during Analysis run do not result in 'application not responding' freeze. Instead bug report is displayed with proper call stack.
  5. After change in 6.02 exception dialog displayed first error in the formula even if exception was really caused not by first but last error. Fixed.
  6. Exception info could get mixed up when multiple threads generated them at the same time. Fixed.
  7. New Analysis: Auto-size column functionality re-displayed hidden columns. Fixed.
  8. UI: AmiBroker now prevents piling on "Bug recovery" dialogs when multiple exceptions are thrown from multiple threads. First dialog is displayed, other exceptions are logged into DebugView as long as "Bug recovery" is not dismissed.
  9. "Rename" and backup functions in several places could fail if new file name already existed. Fixed.
  10. Support for Windows 95 is dropped

CHANGES FOR VERSION 6.07.0 (as compared to 6.06.0)

  1. AFL: compression for array Static variables implemented to save memory and file size: StaticVarSet has additional parameter that controls compression
  2. AFL: printf/StrFormat check for %s, %c, %d, %x, %i, %u, %x, %p sequences that are not supported now and prints Error 62 when they are found.
  3. AFL: printf/StrFormat now implement a check for correct formatting string as sometimes users passed strings with % that is special marker for formatting string instead of %% to print actual percent sign
  4. AFL: Some variable period functions such as Ref/Sum/MA incorrectly accepted matrix as a 'period'. Fixed (proper error message is displayed now).
  5. AFL: StaticVarGet/StaticVarSet functions now support matrices including persistency (so matrices can be written to disk and loaded back between AmiBroker runs)
  6. AFL: VarSet/VarGet officially accept matrices (allow dynamic variables of matrix type). (FWIW they were accepted in previous versions but implementation was incomplete.)
  7. Charting: Candlestick wicks thickness is now user definable as % of candle width with a max. pixel width (Tools->Preferences, "Bars and Candles" tab). Also by default wick thickness is now 25%/5px max instead of constant 1 pixel.
  8. Charting: Cycles tool in weekly chart produced incorrect lines when it went past 2038. Fixed.
  9. Charting: Horizontal line tool level is now displayed with number of decimals as defined in Preferences (Misc tab, "decimal places in chart titles/tools"). Note that this setting is used when you draw a new line or modify old.
  10. Debugger: Added F5 key as keyboard shortcut for "Debug / Go"

CHANGES FOR VERSION 6.06.0 (as compared to 6.05.0)

  1. AFL Editor: Bookmarks implemented (Ctrl+F2 - toggle bookmark, F2 - go to next bookmark, Shift+F2 - go to previous bookmark
  2. AFL Editor: Find in Files - when file name contained braces () double click on it would not open it. Fixed.
  3. AFL Editor: Line comment puts double // comments on lines that appear after empty line. Fixed. Now empty lines are left untouched.
  4. AFL: extra parameter for DateTimeToStr function mode (mode = 0 - convert both date and time portion, 1 - only date, 2 - only time ) Note that mode 2 would give you empty string when applied on chart with daily or longer interval
  5. AFL: new function GfxFillSolidRect( x1, y1, x2, y2, color ) - it is fastest method to fill solid rectangle with single color (faster than GfxRectangle)
  6. AFL: new function SumSince - a fast sum of array elements since condition was true, works like Cum( array ) - ValueWhen( condition, Cum( array ) ) or Sum( array, BarsSince( condition ), but much faster
  7. AFL: Variable period Sum() performance improved significantly when period changes +/-1 on bar by bar basis
  8. Categories dialog: added ability to re-arrange the order of markets/groups/sectors/industries and watch lists using "Move Up" / "Move down" buttons
  9. New Analysis: Added an option "Auto-size columns to fit content" - OFF by default. When turned on, column widths are adjusted to fit the content after analysis is complete. Note that this means that any widths specified in width parameter in AddColumn will be ignored if this option is ON.
  10. New Analysis: when "Wait for backfill" was turned ON and some symbols in the "Apply to" list were wrong (non-existing) then Analysis attempted to run code for symbol without quotes causing trouble. Fixed.

CHANGES FOR VERSION 6.05.0 (as compared to 6.04.0)

  1. AFL Editor Find in Files implemented - on the output list you can double click on line to open the file in the editor
  2. AFL Editor/Debugger: Code Check and Profile stopped working when it was run after debugging session. Fixed.
  3. AFL: Null is accepted by MxFromString now
  4. AFL: performance of printf() for large volume output (>60000 characters) improved ~60 times.
  5. Charts: reduced tearing when resizing the chart window
  6. Debugger now can use either base time interval or current chart interval (Tools->Preferences, Debugger tab, "Bar interval" setting)
  7. Debugger: implemented Output window (for printf() output during debugging)
  8. Removed old-style legacy AFL editor from the code, removed "use new editor" checkbox from the preferences. A new editor is used always now.
  9. UI: Unfold triangles in tree views and checkboxes in Layers list were hard to click on HighDPI screens because icons were too small. Fixed.
  10. Watch window: now expressions with 2D subscripts to access elements of matrix matrix[ x ][ y ] are supported

CHANGES FOR VERSION 6.04.0 (as compared to 6.03.0)

  1. AFL Editor & Watch Window: the contents of matrices is now displayed in value tooltips and watch window
  2. Debugger state (watch variables/expressions and breakpoint locations) is now saved between AFL editor sessions (formula-wise so each formula has its own "debug state"). The data are saved in XML file with .dbg extension
  3. Debugger: MDI mode implemented. In 6.0.3 AFL Editor did not support 'MDI mode' (even crashed), now this functionality is back. Also Watch window is available in MDI mode and debugger is working in MDI mode too.
  4. Preferences: added new page with Debugger settings.
  5. Preferences: 'Editor' tab moved so 'AFL', 'Editor', and 'Debugger' tabs are next to each other, also 'Alerts' and 'Currencies' tabs moved before 'Miscellaneous'
  6. Watch window: a new tab "Arrays" shows exploration-like array output for detailed examination of array contents (first 20 arrays from watch window are reported)
  7. Watch window: implemented array item change highlighting and auto-scrolling so first changed item is always visible in the 'Arrays' tab
  8. Watch window: implemented expression evaluator, so you can not only display variables, but also expressions involving variables such as (high+low)/2 or individual array elements such as myvariable[ i ] where i is dynamic loop counter
  9. Watch window: implemented value change highlighting: changed values are displayed with light yellow background, additionally numeric (scalar) values are displayed in green when they increased or red if they are decreased
  10. Watch window: pressing DELETE key while editing variable name caused deletion of variable from watch. Fixed.
  11. Watch window: variables can now be drag-dropped from AFL editor window

CHANGES FOR VERSION 6.03.0 (as compared to 6.02.0)

  1. AFL Editor: Implemented fully integrated Visual AFL Debugger. Note: this is work in progress and more things are to come
  2. Debugger: Implemented breakpoints (including those set before compilation as well as adding/removing breakpoints during debugging)
  3. Debugger: Implemented single-stepping Step Into, Step Over
  4. Debugger: Implemented variable value inspection tooltips (hover mouse over variable to see its value)
  5. Debugger: Implemented Watch window with variable value display automatically updating when debugger single-steps or reaches breakpoint
  6. AFL: Sum(array,N) outputs NULL values for indices starting from 0 upto index N-1 instead of N
    Renaming of PersistVars.temp to PersistVars.bin failed on some versions of OS. Fixed.
  7. RT Quote window: drag-drop list view shows small arrow marker for the drop point now.
  8. RT Quote window: when moving items using drag-drop, moved items image was flickering. Fixed
  9. UI: Chart zoom via Ctrl+mouse wheel now works so it attempts to current mouse position as a "center" point of zoom when possible. (Previously it always worked so right border was the 'center').
  10. When intraday data were used timestamp of 00:00:00 was not displayed in data tooltip (empty field was shown). Fixed.

CHANGES FOR VERSION 6.02.0 (as compared to 6.01.0)

  1. AFL Editor: Implemented Line comment/uncomment feature (Edit->Line Comment, Ctrl+Q) to automatically add/remove // line comments from single or multiple lines
  2. AFL: If any matrix cell has Null value then matrix product operator @ produces Null respective row/column of the result matrix.
  3. AFL: if user called (a) GetPerfomanceCounter( 1 ) then (b) GetPerformanceCounter( 0 ) then subsequent call to GetPerformanceCounter(0) returned cumulated time not from call (a) but from system boot. Fixed.
  4. AFL: matrix identifier can now be used in if-else statement. Such condition checks whenever very first element of matrix [0][0] is NOT NULL. This is useful for checking output of functions like MxInverse/MxSolve that would return NULL in all cells if matrix is singular
  5. AFL: MxSolve/MxInverse now return a matrix filled with Nulls as a result if source matrix can not be inverted and produce warning level 2 instead of an error.
  6. AFL: On Windows Vista and higher static variables use slim read-write (SRW) lock instead of critical section. This gives 5% performance increase in multithreading scenarios.
  7. AFL: StaticVarAdd( "name", value, keepAll = True, persistent = False ) - an atomic addition (interlocked read-add-write) operation for static variables
  8. AFL: Study() returned NULL array when line's start date was greater than end date. Fixed (now it works for lines drawn from right to left too).
  9. Docs: Example polynomial fit formula shows how to gracefully handle singular matrix and overflow/not-a-numbers in polynomial calcs
  10. Persistent static variables are now saved to PersistVars.temp and once write is successful the file is renamed to PersistVars.bin. This is to prevent data loss when writing very large sets of persistent variables.
  11. When more than one error is detected in single line of the formula then the first error message is displayed instead of last one in chart/commentary/analysis.

CHANGES FOR VERSION 6.01.0 (as compared to 6.00.2)

  1. AFL: MxDet( mx, method = 0 ) - calculates determinant of the matrix
  2. AFL: MxFromString() - creates a new matrix out of string in Mathematica/Wolfram list-style: "{ { 1, 2, 3 }, { 4, 5, 6 } }" or Matlab/Maple style "[ [ 1, 2, 3 ], [ 4, 5, 6 ] ]" or GNU Octave comma-semicolon style [ 1, 2, 3; 4, 5, 6 ]
  3. AFL: MxGetBlock( matrix, startrow, endrow, startcol, endcol, asArray = False )
  4. AFL: MxInverse( mx ) - calculates inverse of the matrix
  5. AFL: MxSetBlock( matrix, startrow, endrow, startcol, endcol, values = 0 )
  6. AFL: MxSolve( A, B ) - solves linear equation system A@X = B
  7. AFL: MxSort( mx, dim = -1, ascening = True ) - sorts the matrix
  8. AFL: MxSortRows( mx, ascending = True, col1 = 0, col2 = -1, col3 = -1 )
  9. AFL: MxToString - creates string out of matrix variable in the Wolfram list style like this (for 3x3 matrix): { { x00, x01, x02 }, { x10, x11, x12 }, { x20, x21, x22 } }

KNOWN ISSUES:

  1. None

GETTING STARTED WITH DEBUGGER

To use debugger, open your formula in the Formula Editor, place few breakpoints (red circle/F9 key), add some variable names to watch (open watch window using Window->Watch menu, add variable names by double clicking on the end of the list). Then start debugging (Debug->Go), once breakpoint is hit, you can hover the mouse over the variables to see their value, single step (F10/F11) and examine values in the watch window.

For more details, instructions and examples how to use new features see the 6.08.0 BETA READ ME

Detailed description of the debugger is available here:
http://www.amibroker.com/guide/h_debugger.html

AmiBroker 6.07.0 BETA released

Stability: Rank 3 - Regular BETA, pretty stable, should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.07.0) of AmiBroker has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6070beta.exe
(2 370 672 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6070x64.exe
(10 117 192 bytes)

If you can not log in into members' area please get your new password by filling the form at: http://www.amibroker.com/login.html

IMPORTANT: Unauthorized copying and/or distribution of materials found on members' only page is STRICTLY PROHIBITED and will result in IMMEDIATE termination of license.

Remember to BACKUP YOUR FILES FIRST !
Note that this version can only be installed onto previous full installation of version 6.00 or higher from http://www.amibroker.com/download.html

HOW TO USE NEW FEATURES
This version contains a brand new AFL visual debugger. Detailed description of how to use the debugger is provided here: http://www.amibroker.com/guide/h_debugger.html

CHANGES FOR VERSION 6.07.0 (as compared to 6.06.0)

  1. AFL: compression for array Static variables implemented to save memory and file size: StaticVarSet has additional parameter that controls compression
  2. AFL: printf/StrFormat check for %s, %c, %d, %x, %i, %u, %x, %p sequences that are not supported now and prints Error 62 when they are found.
  3. AFL: printf/StrFormat now implement a check for correct formatting string as sometimes users passed strings with % that is special marker for formatting string instead of %% to print actual percent sign
  4. AFL: Some variable period functions such as Ref/Sum/MA incorrectly accepted matrix as a 'period'. Fixed (proper error message is displayed now).
  5. AFL: StaticVarGet/StaticVarSet functions now support matrices including persistency (so matrices can be written to disk and loaded back between AmiBroker runs)
  6. AFL: VarSet/VarGet officially accept matrices (allow dynamic variables of matrix type). (FWIW they were accepted in previous versions but implementation was incomplete.)
  7. Charting: Candlestick wicks thickness is now user definable as % of candle width with a max. pixel width (Tools->Preferences, "Bars and Candles" tab). Also by default wick thickness is now 25%/5px max instead of constant 1 pixel.
  8. Charting: Cycles tool in weekly chart produced incorrect lines when it went past 2038. Fixed.
  9. Charting: Horizontal line tool level is now displayed with number of decimals as defined in Preferences (Misc tab, "decimal places in chart titles/tools"). Note that this setting is used when you draw a new line or modify old.
  10. Debugger: Added F5 key as keyboard shortcut for "Debug / Go"

CHANGES FOR VERSION 6.06.0 (as compared to 6.05.0)

  1. AFL Editor: Bookmarks implemented (Ctrl+F2 - toggle bookmark, F2 - go to next bookmark, Shift+F2 - go to previous bookmark
  2. AFL Editor: Find in Files - when file name contained braces () double click on it would not open it. Fixed.
  3. AFL Editor: Line comment puts double // comments on lines that appear after empty line. Fixed. Now empty lines are left untouched.
  4. AFL: extra parameter for DateTimeToStr function mode (mode = 0 - convert both date and time portion, 1 - only date, 2 - only time ) Note that mode 2 would give you empty string when applied on chart with daily or longer interval
  5. AFL: new function GfxFillSolidRect( x1, y1, x2, y2, color ) - it is fastest method to fill solid rectangle with single color (faster than GfxRectangle)
  6. AFL: new function SumSince - a fast sum of array elements since condition was true, works like Cum( array ) - ValueWhen( condition, Cum( array ) ) or Sum( array, BarsSince( condition ), but much faster
  7. AFL: Variable period Sum() performance improved significantly when period changes +/-1 on bar by bar basis
  8. Categories dialog: added ability to re-arrange the order of markets/groups/sectors/industries and watch lists using "Move Up" / "Move down" buttons
  9. New Analysis: Added an option "Auto-size columns to fit content" - OFF by default. When turned on, column widths are adjusted to fit the content after analysis is complete. Note that this means that any widths specified in width parameter in AddColumn will be ignored if this option is ON.
  10. New Analysis: when "Wait for backfill" was turned ON and some symbols in the "Apply to" list were wrong (non-existing) then Analysis attempted to run code for symbol without quotes causing trouble. Fixed.

CHANGES FOR VERSION 6.05.0 (as compared to 6.04.0)

  1. AFL Editor Find in Files implemented - on the output list you can double click on line to open the file in the editor
  2. AFL Editor/Debugger: Code Check and Profile stopped working when it was run after debugging session. Fixed.
  3. AFL: Null is accepted by MxFromString now
  4. AFL: performance of printf() for large volume output (>60000 characters) improved ~60 times.
  5. Charts: reduced tearing when resizing the chart window
  6. Debugger now can use either base time interval or current chart interval (Tools->Preferences, Debugger tab, "Bar interval" setting)
  7. Debugger: implemented Output window (for printf() output during debugging)
  8. Removed old-style legacy AFL editor from the code, removed "use new editor" checkbox from the preferences. A new editor is used always now.
  9. UI: Unfold triangles in tree views and checkboxes in Layers list were hard to click on HighDPI screens because icons were too small. Fixed.
  10. Watch window: now expressions with 2D subscripts to access elements of matrix matrix[ x ][ y ] are supported

CHANGES FOR VERSION 6.04.0 (as compared to 6.03.0)

  1. AFL Editor & Watch Window: the contents of matrices is now displayed in value tooltips and watch window
  2. Debugger state (watch variables/expressions and breakpoint locations) is now saved between AFL editor sessions (formula-wise so each formula has its own "debug state"). The data are saved in XML file with .dbg extension
  3. Debugger: MDI mode implemented. In 6.0.3 AFL Editor did not support 'MDI mode' (even crashed), now this functionality is back. Also Watch window is available in MDI mode and debugger is working in MDI mode too.
  4. Preferences: added new page with Debugger settings.
  5. Preferences: 'Editor' tab moved so 'AFL', 'Editor', and 'Debugger' tabs are next to each other, also 'Alerts' and 'Currencies' tabs moved before 'Miscellaneous'
  6. Watch window: a new tab "Arrays" shows exploration-like array output for detailed examination of array contents (first 20 arrays from watch window are reported)
  7. Watch window: implemented array item change highlighting and auto-scrolling so first changed item is always visible in the 'Arrays' tab
  8. Watch window: implemented expression evaluator, so you can not only display variables, but also expressions involving variables such as (high+low)/2 or individual array elements such as myvariable[ i ] where i is dynamic loop counter
  9. Watch window: implemented value change highlighting: changed values are displayed with light yellow background, additionally numeric (scalar) values are displayed in green when they increased or red if they are decreased
  10. Watch window: pressing DELETE key while editing variable name caused deletion of variable from watch. Fixed.
  11. Watch window: variables can now be drag-dropped from AFL editor window

CHANGES FOR VERSION 6.03.0 (as compared to 6.02.0)

  1. AFL Editor: Implemented fully integrated Visual AFL Debugger. Note: this is work in progress and more things are to come
  2. Debugger: Implemented breakpoints (including those set before compilation as well as adding/removing breakpoints during debugging)
  3. Debugger: Implemented single-stepping Step Into, Step Over
  4. Debugger: Implemented variable value inspection tooltips (hover mouse over variable to see its value)
  5. Debugger: Implemented Watch window with variable value display automatically updating when debugger single-steps or reaches breakpoint
  6. AFL: Sum(array,N) outputs NULL values for indices starting from 0 upto index N-1 instead of N
    Renaming of PersistVars.temp to PersistVars.bin failed on some versions of OS. Fixed.
  7. RT Quote window: drag-drop list view shows small arrow marker for the drop point now.
  8. RT Quote window: when moving items using drag-drop, moved items image was flickering. Fixed
  9. UI: Chart zoom via Ctrl+mouse wheel now works so it attempts to current mouse position as a "center" point of zoom when possible. (Previously it always worked so right border was the 'center').
  10. When intraday data were used timestamp of 00:00:00 was not displayed in data tooltip (empty field was shown). Fixed.

CHANGES FOR VERSION 6.02.0 (as compared to 6.01.0)

  1. AFL Editor: Implemented Line comment/uncomment feature (Edit->Line Comment, Ctrl+Q) to automatically add/remove // line comments from single or multiple lines
  2. AFL: If any matrix cell has Null value then matrix product operator @ produces Null respective row/column of the result matrix.
  3. AFL: if user called (a) GetPerfomanceCounter( 1 ) then (b) GetPerformanceCounter( 0 ) then subsequent call to GetPerformanceCounter(0) returned cumulated time not from call (a) but from system boot. Fixed.
  4. AFL: matrix identifier can now be used in if-else statement. Such condition checks whenever very first element of matrix [0][0] is NOT NULL. This is useful for checking output of functions like MxInverse/MxSolve that would return NULL in all cells if matrix is singular
  5. AFL: MxSolve/MxInverse now return a matrix filled with Nulls as a result if source matrix can not be inverted and produce warning level 2 instead of an error.
  6. AFL: On Windows Vista and higher static variables use slim read-write (SRW) lock instead of critical section. This gives 5% performance increase in multithreading scenarios.
  7. AFL: StaticVarAdd( "name", value, keepAll = True, persistent = False ) - an atomic addition (interlocked read-add-write) operation for static variables
  8. AFL: Study() returned NULL array when line's start date was greater than end date. Fixed (now it works for lines drawn from right to left too).
  9. Docs: Example polynomial fit formula shows how to gracefully handle singular matrix and overflow/not-a-numbers in polynomial calcs
  10. Persistent static variables are now saved to PersistVars.temp and once write is successful the file is renamed to PersistVars.bin. This is to prevent data loss when writing very large sets of persistent variables.
  11. When more than one error is detected in single line of the formula then the first error message is displayed instead of last one in chart/commentary/analysis.

CHANGES FOR VERSION 6.01.0 (as compared to 6.00.2)

  1. AFL: MxDet( mx, method = 0 ) - calculates determinant of the matrix
  2. AFL: MxFromString() - creates a new matrix out of string in Mathematica/Wolfram list-style: "{ { 1, 2, 3 }, { 4, 5, 6 } }" or Matlab/Maple style "[ [ 1, 2, 3 ], [ 4, 5, 6 ] ]" or GNU Octave comma-semicolon style [ 1, 2, 3; 4, 5, 6 ]
  3. AFL: MxGetBlock( matrix, startrow, endrow, startcol, endcol, asArray = False )
  4. AFL: MxInverse( mx ) - calculates inverse of the matrix
  5. AFL: MxSetBlock( matrix, startrow, endrow, startcol, endcol, values = 0 )
  6. AFL: MxSolve( A, B ) - solves linear equation system A@X = B
  7. AFL: MxSort( mx, dim = -1, ascening = True ) - sorts the matrix
  8. AFL: MxSortRows( mx, ascending = True, col1 = 0, col2 = -1, col3 = -1 )
  9. AFL: MxToString - creates string out of matrix variable in the Wolfram list style like this (for 3x3 matrix): { { x00, x01, x02 }, { x10, x11, x12 }, { x20, x21, x22 } }

KNOWN ISSUES:

  1. None

GETTING STARTED WITH DEBUGGER

To use debugger, open your formula in the Formula Editor, place few breakpoints (red circle/F9 key), add some variable names to watch (open watch window using Window->Watch menu, add variable names by double clicking on the end of the list). Then start debugging (Debug->Go), once breakpoint is hit, you can hover the mouse over the variables to see their value, single step (F10/F11) and examine values in the watch window.

For more details, instructions and examples how to use new features see the 6.06.0 BETA READ ME

Detailed description of the debugger is available here:
http://www.amibroker.com/guide/h_debugger.html