amibroker

HomeDevLog

AmiBroker 6.27.1 BETA released

Stability: Rank 3 - regular BETA should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.27.1) of AmiBroker, with lots of new AFL functionality has been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6271beta.exe
(2 271 480 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6271x64.exe
(10 623 744 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 October 31, 2015. 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.20 or higher from http://www.amibroker.com/download.html

FEATURE HIGHLIGHT 6.27

6.27 is focused on improvements of features introduced earlier. See CHANGE LOG for details.

FEATURE HIGHLIGHT 6.26

This version brings static variable declaration, new Voice functions, clickable links in Analysis result list, comment folding in the editor, new mouse hover notifications in GUI controls (notifyMouseEnter / notifyMouseLeave), and many many more - make sure to check CHANGE LOG below.

FEATURE HIGHLIGHT 6.25

This version brings new Gui controls (toggle button, checkbox, radio button), new AFL functions, passing variables by reference, Auto-optimization framework, HTML5 compatibility in Web Research and many more.

FEATURE HIGHLIGHT 6.22

This version is experimental because we are migrating 64-bit version to brand new compiler (VC++ 2017). Such migrations pretty often brings some compatibility risks therefore backup is highly recommended (although you can always go back by just installing previous version). We needed to migrate not only the program itself but many internal libraries taking care not to break backward compatibility.

Note that migration does NOT affect 32-bit version. It is still compiled with old compiler.

Why do we migrate to new compiler with 64-bit version?

  1. New compiler supports new CPU instructions (SSE3/AVX) that we can use to offer better performance
  2. According to our tests new compiler support produces faster code by itself (better optimizations, auto-vectorization, etc)
  3. New compiler is better with error checking (less bugs to slip through)
  4. We don't need to care about compatibility with pre-Vista systems in 64-bits version and all 64-bit capable CPUs are "modern" enough.

Why do we stay with old compiler in 32-bit version?

  1. New compiler does not produce code compatible with older operating systems (XP or earlier). Old compiler offers 100% compatibility with all Windows versions
  2. New compiler requires modern CPUs

Exact performance improvement is function dependent and hardware dependent. Many functions are faster by 30-50% but in some cases such as Min()/Max() functions as large as 8x speed up can be observed in 64-bit version.

FEATURE HIGHLIGHT 6.21
This version features preliminary support for native chart GUI (buttons and edits at the moment). Please be reasonable with Gui* functions and be aware of Windows limits. As all controls in Windows (buttons, edit boxes, etc) are actual Window objects they are subject to Windows limitation. And there is a limit of 10000 windows PER PROCESS. So don't try to create thousands of buttons (like a button for every bar of data) because first you will see huge performance decrease and next you will hit the limit and run into problems (crash), see https://blogs.msdn.microsoft.com/oldnewthing/20070718-00/?p=25963.

Best practice is to keep the number under 100-200. If you need more consider using low-level graphics instead.

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

Here is a sample formula that shows basic usage of Gui* functions:

GuiButton"Custom button"1104010030);

GuiButton"Dynamic "+Date(), 21204015030);
GuiButton"System button"33204010030);
GuiEdit5450401002031 );

GuiSetColors132colorRedcolorBlackcolorRedcolorWhitecolorBluecolorYellow
colorRedcolorBlackcolorYellow );

GuiSetColors33); // default (system) look

editText GuiGetText);

Title "Text entered: " editText "\nLast event: " GuiGetEvent0);

id GuiGetEvent0);
event GuiGetEvent0);

if( 
id == && event == GuiSetText("Button clicked",5);

CHANGES FOR VERSION 6.27.0 (as compared to 6.26.0)

  1. AFL edit: preprocessor command (#include/#include_once/#pragma) are highlighted with different color to give visual clue that preprocessor command is NOT regular code
  2. AFL: #pragma enable_static_decl accepts prefix given in quotation marks (as regular string).
  3. AFL: due to changes in 6.25 BETA TimeFrameSet applied on 1-tick base interval could result in division by zero exception. Fixed.
  4. AFL: Error 66 has new meaning now. It is issued to prevent attempts to mix static declarations with old style access. Error 66. Variables with '---' prefix are inaccesible via StaticVarGet/Set/Remove in this formula. This prefix is reserved by #pragma ena
  5. AFL: Removed Error 66: invalid identifier from VarSet/VarGet. Instead of issuing error message, VarGet/VarSet automatically sanitizes invalid identifiers by replacing all characters other than digits and A-Z, a-z letters by underscore
  6. AFL: runtime tokens {chartid}, {symbol}, {interval} are now supported in #pragma enable_static_decl
  7. AFL: SetFormulaName - displays error 67 if user tries to use file-system forbidden characters for formula name
  8. AFL: StaticVarRemove() when called with EMPTY string: StaticVarRemove("") nullifies all static variables declared with static keyword within given formula
  9. AFL: when declared static variable is assigned the NULL value, it will be removed from memory when formula finishes
  10. ASCII importer: importer logged "ran of industry space" even if it didn't. Fixed.
  11. CBT: If user called ApplyStop AND calls EnterTrade from low-level backtest and did not switch backtestRegular mode to raw mode (which should be done), backtester would automatically turn on 2nd phase stops handling to prevent crash
  12. Charts: a crash could occur if user had lots of drawn trendlines on multiple panes and some of them had start date BEFORE first available bar and RT stream was frequently updating. Fixed.
  13. Make #pragma enable_static_decl is now private functionality. This means that it will work just fine but we don't provide any help/support except of what is written in readme/manual
  14. New Analysis: you can now copy dates between "From" and "To" date pickers (right click menu or Ctrl+C/Ctrl+V)
  15. UI: Bar replay From-to controls support copy-paste (right click or Ctrl+C/Ctrl+V)
  16. UI:added preprocessor color picker in Tools->Preferences, "Editor"
  17. 6.27.1 fix: In 6.27.0 VarSet did not work properly. Fixed.
  18. 6.27.1 fix: Backtest: since 6.25 crash could occur if “detailed log” was enabled and trade was not entered due to unsufficent funds because format string was not matching arguments. Fixed.

CHANGES FOR VERSION 6.26.0 (as compared to 6.25.0)

  1. AFL: new static keyword: declare identifier as static variable - a little 'revolution' in static variable use, declare variable as static and use as 'regular' variable, no need to call functions
  2. AFL Editor: contrast of error location indicator on dark backgrounds increased
  3. AFL Editor: C-style comments /* ... */ are now foldable in the editor
  4. AFL Editor: new menu choices View->Fold Comments / Unfold Comments - allow to fold/unfold all multi-line comments (enclosed with /* .... */)
  5. AFL: added constants notifyClicked, notifySetFocus, notifyKillFocus, notifyHitReturn, notifyEditChange, notifySelChange, notifyMouseEnter, notifyMouseLeave
  6. AFL: Another protection against users shooting themselves in foot, VarSet/VarGet now displays error when you try to use characters different than A-Z, 0-9 and '_' in variable names
  7. AFL: Attempt to use single subscript on matrix variable now results in error message "Accessing Matrix elements requires two subscript operators"
  8. AFL: Due to the fact that Windows may send WM_MOUSEMOVE message even if mouse did not move, AmiBroker now has internal check that prevents ReqestMouseMoveRefresh from triggering if mouse position did not change
  9. AFL: GetLastOSError (for getting last error message from Windows)
  10. AFL: GuiButton and GuiToggle in native OS style use background color of the chart for small border instead of default grey
  11. AFL: GuiButton/GuiCHeckBox/GuiToggle/GuiRadio support now new events MouseEnter (64) and MouseLeave(128) which detect hovering without need for constant refreshes
  12. AFL: GuiCheckBox and GuiRadio now support custom colors of text and background
  13. AFL: In 6.25 Gui* keyboard navigation interferred with delete key and possibly other shortcuts due to the way how windows works. Implemented workaround so keys are only intercepted if child window (control) has focus.
  14. AFL: In 6.25 Gui* keyboard navigation was turned on by default, now it is off by default but can be turned on if you use SetOption("GuiEnableKeyboard", True )
  15. AFL: In 6.25 GuiGetCheck returned -1 on unchanged. Now it returns only 0 (unchecked) or 1 (checked)
  16. AFL: In case of Windows INET API error, Internet* functions now report Warning 507 instead of generic error 47. Warning 507 is Level-3 warning, i.e. editor-only, which means it will pop up in the formula editor, but won't break execution in runtime
  17. AFL: Now can use subscript operator [ ] on references to arrays and matrices
  18. AFL: Passing by reference does not create nested references in user-defined function calls
  19. AFL: VoiceSetRate( rate ) - sets SAPI voice (speech synthesis) rate. Rate of 0 (zero) is "normal", negative is slower, positive is faster (allowable range -10..+10)
  20. AFL: VoiceSetVolume( volume ) - sets SAPI voice (speech synthesis) volume (0..100)
  21. AFL: VoiceWaitUntilDone( timeout ) - waits until voice has finished speaking or specified timeout (1..100ms) has elapsed. Returns True if voice finished, False if the timeout elapsed
  22. broker.master file is saved to a new name and renamed later to avoid corruption when Windows decides to shutdown, restart or sleep during save
  23. Dev: 64-bit new compiler (VC2017) broke backward compatibility with singletons that UI lib uses causing infinite loop when High Contrast scheme was used. Workaround implemented.
  24. Misc: 64-bit: Restored correct manifest (from pre6.22) with compat records so Win 10 does not lie about version number and re-added 24-bit large PNG icon
  25. New Analysis: Added support for clickable links. If you put @link URL in any cell of Analysis result list it creates a clickable row. If you double click on the row while holding down ALT key it will open the link

CHANGES FOR VERSION 6.25.0 (as compared to 6.22.0)

  1. 64-bit: In 6.22 the array division could produce 1ulp (units at least place) rounding errors due to too excessive new VC++2017 compiler optimizations. Workaround implemented to avoid that.
  2. Added support for formatDateTimeISON (ISO format NO dashes: YYYYMMDD for end of day and YYYYMMDD HHMMSS for intraday)
  3. AFL Editor: added one-time message "In the Debug mode number of bars is limited to 200 bars. You can change it in Tools->Preferences, Debugger tab" because users don't read docs
  4. AFL: ApplyStop now has 8th argument: ActivationFloor that defines the amount of profit (in dollars or percents, according to stopmode) that must be exceeded before stop is activated
  5. AFL: Gui* - controls are created in the order of occurence in AFL formula (instead shuffled or reverse as in previous version)
  6. AFL: Gui* - keyboard navigation is now enabled (you can tab between controls and use arrows to navigate control groups such as radio boxes)
  7. AFL: IsNull() accepts matrix input and returns 0 (False), i.e. "variable is not null" if variable is of matrix type
  8. AFL: math functions such as sin(), sqrt(), etc can now be applied to matrices (element-wise operation) (previously such attempt resulted in access violation)
  9. AFL: New feature: Passing arguments as reference (allows modification of arguments passed - easy way to return multiple values), to pass by reference use & (address-of) operator before variable identifier
  10. AFL: new function GuiCheckBox - creates check box
  11. AFL: new function GuiGetCheck( id ) - gets 'checked' or "ON" state of toggle, checkbox and radio buttons
  12. AFL: new function GuiRadio - creates radio button
  13. AFL: new function GuiSetCheck( id, checked ) - sets 'checked' or 'ON' state of toggle, checkbox and radio buttons
  14. AFL: new function GuiSetFont( "fontface", size )
  15. AFL: new function GuiToggle - creates toggle button (like normal button but it toggles between "on" and "off" state with each click)
  16. AFL: SetOption("OptimizeSaveParams", True ); - turns on generation of AFL file that contains values of optimization parameters producing best result. The generated file has the same name as formula run but has .opt.afl extension
  17. AFL: When using TimeFrame functions, QuickAFL now uses ratio of requested_interval/current_interval multipled by 30 to better estimate required bars
  18. Analysis: Detailed log displays information about ignored ScaleIn/Outs because of insufficient funds or trade size constraints
  19. Analysis: Detailed log now displays all warnings about skipped/ignored signals in RED color so they are easier to spot
  20. Data: when performing X:Y split and X or Y exceeded 255 the factor was incorrectly displayed (negative) in the Symbol window. Fixed.
  21. formatDateTimeISO and formatDateTimeISON added to syntax highlighter definitions
  22. Scheduler: Repeat "Daily" mode repeated batch run every day even if some days were unchecked. Fixed.
  23. UI: Place Order dialog - allows typing stop distances smaller than 0.1 now
  24. UI: Prefs/Charting: Turning on "Collapse parameter sections" option causes all sections in Parameter window to be collapsed (NOT good idea for newbies as they wont see the controls !)
  25. Web Research: many HTML5 pages did not display properly because of the fact that web browser used old IE7 mode. Now browser uses IE11 mode at minimum for proper HTML5 rendering

CHANGES FOR VERSION 6.22.0 (as compared to 6.21.0)

  1. 64-bit: migrated all code to new compiler VC++2017 which seems to produce better code for x64 resulting in 30...50% speed improvements for many AFL functions. The only negative seems to be much bigger runtime libs
  2. 64-bit: AFL: Sum() function 2x faster
  3. 64-bit: AFL: Max() and Min() functions 8x faster
  4. 64-bit: AFL: Ref() funciton 2x faster
  5. 64-bit: AFL: MACD(), ROC(), StDev(), LinearReg() and many other functions faster by 30-50%
  6. AFL: GetExtraData does not trigger code check and profile warning about referencing future quotes if plugin implements new GetExtraDataEx function
  7. AFL: GuiEdit complained about 2nd parameter instead of 1st (being less than zero)

CHANGES FOR VERSION 6.21.0 (as compared to 6.20.1)

  1. AFL: decreased memory fragmentation when user changes type of variable from array to scalar and back thousands of times
  2. AFL: GuiButton( "Text", id, x, y, width , height , notifyflags ) - creates a button
  3. AFL: GuiEdit( id, x, y, width, height, notifyflags ); - creates an edit field
  4. AFL: GuiGetEvent( num, what = 0 )
  5. AFL: GuiGetText( id ) - get text from control
  6. AFL: GuiSetColors( idFrom, idTo, border , clrText = -1, clrBack = -1, clrBorder = -1, clrSelText = -1, clrSelBack = -1, clrSelBorder = -1, clrHoverText = -1, clrHoverBack = -1, clrHoverBorder = -1, clrDisText = -1, clrDisBack = -1, clrDisBorder = -1
  7. AFL: GuiSetText( "text", id ) - set text of the control
  8. AFL: RequestMouseMoveRefresh() - request formula execution / refresh when mouse is moved INSIDE given chart pane (so it only triggers for ONE window under the cursor)
  9. If Quote.exe is missing and AmiBroker can't do auto-update of quotes, a detailed information is displayed of where it expects Quote.exe file to be present
  10. Plugin loading changed: first AmiBroker attempts to load plugins for "Plugins" subfolder from where Broker.EXE file is located (new behavior) and if subfolder is NOT found, it then defaults to old behavior (using "Plugins" subfolder under current working

KNOWN ISSUES:

  1. None

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

AmiBroker 6.26.0 BETA released

Stability: Rank 3 - regular BETA should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.26.0) of AmiBroker, with lots of new AFL functionality has been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6260beta.exe
(2 265 960 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6260x64.exe
(10 619 152 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 September 26, 2015. 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.20 or higher from http://www.amibroker.com/download.html

FEATURE HIGHLIGHT 6.26

This version brings static variable declaration, new Voice functions, clickable links in Analysis result list, comment folding in the editor, new mouse hover notifications in GUI controls (notifyMouseEnter / notifyMouseLeave), and many many more - make sure to check CHANGE LOG below.

FEATURE HIGHLIGHT 6.25

This version brings new Gui controls (toggle button, checkbox, radio button), new AFL functions, passing variables by reference, Auto-optimization framework, HTML5 compatibility in Web Research and many more.

FEATURE HIGHLIGHT 6.22

This version is experimental because we are migrating 64-bit version to brand new compiler (VC++ 2017). Such migrations pretty often brings some compatibility risks therefore backup is highly recommended (although you can always go back by just installing previous version). We needed to migrate not only the program itself but many internal libraries taking care not to break backward compatibility.

Note that migration does NOT affect 32-bit version. It is still compiled with old compiler.

Why do we migrate to new compiler with 64-bit version?

  1. New compiler supports new CPU instructions (SSE3/AVX) that we can use to offer better performance
  2. According to our tests new compiler support produces faster code by itself (better optimizations, auto-vectorization, etc)
  3. New compiler is better with error checking (less bugs to slip through)
  4. We don't need to care about compatibility with pre-Vista systems in 64-bits version and all 64-bit capable CPUs are "modern" enough.

Why do we stay with old compiler in 32-bit version?

  1. New compiler does not produce code compatible with older operating systems (XP or earlier). Old compiler offers 100% compatibility with all Windows versions
  2. New compiler requires modern CPUs

Exact performance improvement is function dependent and hardware dependent. Many functions are faster by 30-50% but in some cases such as Min()/Max() functions as large as 8x speed up can be observed in 64-bit version.

FEATURE HIGHLIGHT 6.21
This version features preliminary support for native chart GUI (buttons and edits at the moment). Please be reasonable with Gui* functions and be aware of Windows limits. As all controls in Windows (buttons, edit boxes, etc) are actual Window objects they are subject to Windows limitation. And there is a limit of 10000 windows PER PROCESS. So don't try to create thousands of buttons (like a button for every bar of data) because first you will see huge performance decrease and next you will hit the limit and run into problems (crash), see https://blogs.msdn.microsoft.com/oldnewthing/20070718-00/?p=25963.

Best practice is to keep the number under 100-200. If you need more consider using low-level graphics instead.

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

Here is a sample formula that shows basic usage of Gui* functions:

GuiButton"Custom button"1104010030);

GuiButton"Dynamic "+Date(), 21204015030);
GuiButton"System button"33204010030);
GuiEdit5450401002031 );

GuiSetColors132colorRedcolorBlackcolorRedcolorWhitecolorBluecolorYellow
colorRedcolorBlackcolorYellow );

GuiSetColors33); // default (system) look

editText GuiGetText);

Title "Text entered: " editText "\nLast event: " GuiGetEvent0);

id GuiGetEvent0);
event GuiGetEvent0);

if( 
id == && event == GuiSetText("Button clicked",5);

CHANGES FOR VERSION 6.26.0 (as compared to 6.25.0)

  1. AFL: new static keyword: declare identifier as static variable - a little 'revolution' in static variable use, declare variable as static and use as 'regular' variable, no need to call functions
  2. AFL Editor: contrast of error location indicator on dark backgrounds increased
  3. AFL Editor: C-style comments /* ... */ are now foldable in the editor
  4. AFL Editor: new menu choices View->Fold Comments / Unfold Comments - allow to fold/unfold all multi-line comments (enclosed with /* .... */)
  5. AFL: added constants notifyClicked, notifySetFocus, notifyKillFocus, notifyHitReturn, notifyEditChange, notifySelChange, notifyMouseEnter, notifyMouseLeave
  6. AFL: Another protection against users shooting themselves in foot, VarSet/VarGet now displays error when you try to use characters different than A-Z, 0-9 and '_' in variable names
  7. AFL: Attempt to use single subscript on matrix variable now results in error message "Accessing Matrix elements requires two subscript operators"
  8. AFL: Due to the fact that Windows may send WM_MOUSEMOVE message even if mouse did not move, AmiBroker now has internal check that prevents ReqestMouseMoveRefresh from triggering if mouse position did not change
  9. AFL: GetLastOSError (for getting last error message from Windows)
  10. AFL: GuiButton and GuiToggle in native OS style use background color of the chart for small border instead of default grey
  11. AFL: GuiButton/GuiCHeckBox/GuiToggle/GuiRadio support now new events MouseEnter (64) and MouseLeave(128) which detect hovering without need for constant refreshes
  12. AFL: GuiCheckBox and GuiRadio now support custom colors of text and background
  13. AFL: In 6.25 Gui* keyboard navigation interferred with delete key and possibly other shortcuts due to the way how windows works. Implemented workaround so keys are only intercepted if child window (control) has focus.
  14. AFL: In 6.25 Gui* keyboard navigation was turned on by default, now it is off by default but can be turned on if you use SetOption("GuiEnableKeyboard", True )
  15. AFL: In 6.25 GuiGetCheck returned -1 on unchanged. Now it returns only 0 (unchecked) or 1 (checked)
  16. AFL: In case of Windows INET API error, Internet* functions now report Warning 507 instead of generic error 47. Warning 507 is Level-3 warning, i.e. editor-only, which means it will pop up in the formula editor, but won't break execution in runtime
  17. AFL: Now can use subscript operator [ ] on references to arrays and matrices
  18. AFL: Passing by reference does not create nested references in user-defined function calls
  19. AFL: VoiceSetRate( rate ) - sets SAPI voice (speech synthesis) rate. Rate of 0 (zero) is "normal", negative is slower, positive is faster (allowable range -10..+10)
  20. AFL: VoiceSetVolume( volume ) - sets SAPI voice (speech synthesis) volume (0..100)
  21. AFL: VoiceWaitUntilDone( timeout ) - waits until voice has finished speaking or specified timeout (1..100ms) has elapsed. Returns True if voice finished, False if the timeout elapsed
  22. broker.master file is saved to a new name and renamed later to avoid corruption when Windows decides to shutdown, restart or sleep during save
  23. Dev: 64-bit new compiler (VC2017) broke backward compatibility with singletons that UI lib uses causing infinite loop when High Contrast scheme was used. Workaround implemented.
  24. Misc: 64-bit: Restored correct manifest (from pre6.22) with compat records so Win 10 does not lie about version number and re-added 24-bit large PNG icon
  25. New Analysis: Added support for clickable links. If you put @link URL in any cell of Analysis result list it creates a clickable row. If you double click on the row while holding down ALT key it will open the link

CHANGES FOR VERSION 6.25.0 (as compared to 6.22.0)

  1. 64-bit: In 6.22 the array division could produce 1ulp (units at least place) rounding errors due to too excessive new VC++2017 compiler optimizations. Workaround implemented to avoid that.
  2. Added support for formatDateTimeISON (ISO format NO dashes: YYYYMMDD for end of day and YYYYMMDD HHMMSS for intraday)
  3. AFL Editor: added one-time message "In the Debug mode number of bars is limited to 200 bars. You can change it in Tools->Preferences, Debugger tab" because users don't read docs
  4. AFL: ApplyStop now has 8th argument: ActivationFloor that defines the amount of profit (in dollars or percents, according to stopmode) that must be exceeded before stop is activated
  5. AFL: Gui* - controls are created in the order of occurence in AFL formula (instead shuffled or reverse as in previous version)
  6. AFL: Gui* - keyboard navigation is now enabled (you can tab between controls and use arrows to navigate control groups such as radio boxes)
  7. AFL: IsNull() accepts matrix input and returns 0 (False), i.e. "variable is not null" if variable is of matrix type
  8. AFL: math functions such as sin(), sqrt(), etc can now be applied to matrices (element-wise operation) (previously such attempt resulted in access violation)
  9. AFL: New feature: Passing arguments as reference (allows modification of arguments passed - easy way to return multiple values), to pass by reference use & (address-of) operator before variable identifier
  10. AFL: new function GuiCheckBox - creates check box
  11. AFL: new function GuiGetCheck( id ) - gets 'checked' or "ON" state of toggle, checkbox and radio buttons
  12. AFL: new function GuiRadio - creates radio button
  13. AFL: new function GuiSetCheck( id, checked ) - sets 'checked' or 'ON' state of toggle, checkbox and radio buttons
  14. AFL: new function GuiSetFont( "fontface", size )
  15. AFL: new function GuiToggle - creates toggle button (like normal button but it toggles between "on" and "off" state with each click)
  16. AFL: SetOption("OptimizeSaveParams", True ); - turns on generation of AFL file that contains values of optimization parameters producing best result. The generated file has the same name as formula run but has .opt.afl extension
  17. AFL: When using TimeFrame functions, QuickAFL now uses ratio of requested_interval/current_interval multipled by 30 to better estimate required bars
  18. Analysis: Detailed log displays information about ignored ScaleIn/Outs because of insufficient funds or trade size constraints
  19. Analysis: Detailed log now displays all warnings about skipped/ignored signals in RED color so they are easier to spot
  20. Data: when performing X:Y split and X or Y exceeded 255 the factor was incorrectly displayed (negative) in the Symbol window. Fixed.
  21. formatDateTimeISO and formatDateTimeISON added to syntax highlighter definitions
  22. Scheduler: Repeat "Daily" mode repeated batch run every day even if some days were unchecked. Fixed.
  23. UI: Place Order dialog - allows typing stop distances smaller than 0.1 now
  24. UI: Prefs/Charting: Turning on "Collapse parameter sections" option causes all sections in Parameter window to be collapsed (NOT good idea for newbies as they wont see the controls !)
  25. Web Research: many HTML5 pages did not display properly because of the fact that web browser used old IE7 mode. Now browser uses IE11 mode at minimum for proper HTML5 rendering

CHANGES FOR VERSION 6.22.0 (as compared to 6.21.0)

  1. 64-bit: migrated all code to new compiler VC++2017 which seems to produce better code for x64 resulting in 30...50% speed improvements for many AFL functions. The only negative seems to be much bigger runtime libs
  2. 64-bit: AFL: Sum() function 2x faster
  3. 64-bit: AFL: Max() and Min() functions 8x faster
  4. 64-bit: AFL: Ref() funciton 2x faster
  5. 64-bit: AFL: MACD(), ROC(), StDev(), LinearReg() and many other functions faster by 30-50%
  6. AFL: GetExtraData does not trigger code check and profile warning about referencing future quotes if plugin implements new GetExtraDataEx function
  7. AFL: GuiEdit complained about 2nd parameter instead of 1st (being less than zero)

CHANGES FOR VERSION 6.21.0 (as compared to 6.20.1)

  1. AFL: decreased memory fragmentation when user changes type of variable from array to scalar and back thousands of times
  2. AFL: GuiButton( "Text", id, x, y, width , height , notifyflags ) - creates a button
  3. AFL: GuiEdit( id, x, y, width, height, notifyflags ); - creates an edit field
  4. AFL: GuiGetEvent( num, what = 0 )
  5. AFL: GuiGetText( id ) - get text from control
  6. AFL: GuiSetColors( idFrom, idTo, border , clrText = -1, clrBack = -1, clrBorder = -1, clrSelText = -1, clrSelBack = -1, clrSelBorder = -1, clrHoverText = -1, clrHoverBack = -1, clrHoverBorder = -1, clrDisText = -1, clrDisBack = -1, clrDisBorder = -1
  7. AFL: GuiSetText( "text", id ) - set text of the control
  8. AFL: RequestMouseMoveRefresh() - request formula execution / refresh when mouse is moved INSIDE given chart pane (so it only triggers for ONE window under the cursor)
  9. If Quote.exe is missing and AmiBroker can't do auto-update of quotes, a detailed information is displayed of where it expects Quote.exe file to be present
  10. Plugin loading changed: first AmiBroker attempts to load plugins for "Plugins" subfolder from where Broker.EXE file is located (new behavior) and if subfolder is NOT found, it then defaults to old behavior (using "Plugins" subfolder under current working

KNOWN ISSUES:

  1. None

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

AmiBroker 6.25.0 BETA released

Stability: Rank 3 - regular BETA should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.25.0) of AmiBroker, with lots of new AFL functionality has been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6250beta.exe
(2 259 152 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6250x64.exe
(10 690 248 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 July 24, 2015. 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.20 or higher from http://www.amibroker.com/download.html

FEATURE HIGHLIGHT 6.25

This version brings new Gui controls (toggle button, checkbox, radio button), new AFL functions, passing variables by reference, Auto-optimization framework, HTML5 compatibility in Web Research and many more.

FEATURE HIGHLIGHT 6.22

This version is experimental because we are migrating 64-bit version to brand new compiler (VC++ 2017). Such migrations pretty often brings some compatibility risks therefore backup is highly recommended (although you can always go back by just installing previous version). We needed to migrate not only the program itself but many internal libraries taking care not to break backward compatibility.

Note that migration does NOT affect 32-bit version. It is still compiled with old compiler.

Why do we migrate to new compiler with 64-bit version?

  1. New compiler supports new CPU instructions (SSE3/AVX) that we can use to offer better performance
  2. According to our tests new compiler support produces faster code by itself (better optimizations, auto-vectorization, etc)
  3. New compiler is better with error checking (less bugs to slip through)
  4. We don't need to care about compatibility with pre-Vista systems in 64-bits version and all 64-bit capable CPUs are "modern" enough.

Why do we stay with old compiler in 32-bit version?

  1. New compiler does not produce code compatible with older operating systems (XP or earlier). Old compiler offers 100% compatibility with all Windows versions
  2. New compiler requires modern CPUs

Exact performance improvement is function dependent and hardware dependent. Many functions are faster by 30-50% but in some cases such as Min()/Max() functions as large as 8x speed up can be observed in 64-bit version.

FEATURE HIGHLIGHT 6.21
This version features preliminary support for native chart GUI (buttons and edits at the moment). Please be reasonable with Gui* functions and be aware of Windows limits. As all controls in Windows (buttons, edit boxes, etc) are actual Window objects they are subject to Windows limitation. And there is a limit of 10000 windows PER PROCESS. So don't try to create thousands of buttons (like a button for every bar of data) because first you will see huge performance decrease and next you will hit the limit and run into problems (crash), see https://blogs.msdn.microsoft.com/oldnewthing/20070718-00/?p=25963.

Best practice is to keep the number under 100-200. If you need more consider using low-level graphics instead.

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

Here is a sample formula that shows basic usage of Gui* functions:

GuiButton"Custom button"1104010030);

GuiButton"Dynamic "+Date(), 21204015030);
GuiButton"System button"33204010030);
GuiEdit5450401002031 );

GuiSetColors132colorRedcolorBlackcolorRedcolorWhitecolorBluecolorYellow
colorRedcolorBlackcolorYellow );

GuiSetColors33); // default (system) look

editText GuiGetText);

Title "Text entered: " editText "\nLast event: " GuiGetEvent0);

id GuiGetEvent0);
event GuiGetEvent0);

if( 
id == && event == GuiSetText("Button clicked",5);

CHANGES FOR VERSION 6.25.0 (as compared to 6.22.0)

  1. 64-bit: In 6.22 the array division could produce 1ulp (units at least place) rounding errors due to too excessive new VC++2017 compiler optimizations. Workaround implemented to avoid that.
  2. Added support for formatDateTimeISON (ISO format NO dashes: YYYYMMDD for end of day and YYYYMMDD HHMMSS for intraday)
  3. AFL Editor: added one-time message "In the Debug mode number of bars is limited to 200 bars. You can change it in Tools->Preferences, Debugger tab" because users don't read docs
  4. AFL: ApplyStop now has 8th argument: ActivationFloor that defines the amount of profit (in dollars or percents, according to stopmode) that must be exceeded before stop is activated
  5. AFL: Gui* - controls are created in the order of occurence in AFL formula (instead shuffled or reverse as in previous version)
  6. AFL: Gui* - keyboard navigation is now enabled (you can tab between controls and use arrows to navigate control groups such as radio boxes)
  7. AFL: IsNull() accepts matrix input and returns 0 (False), i.e. "variable is not null" if variable is of matrix type
  8. AFL: math functions such as sin(), sqrt(), etc can now be applied to matrices (element-wise operation) (previously such attempt resulted in access violation)
  9. AFL: New feature: Passing arguments as reference (allows modification of arguments passed - easy way to return multiple values), to pass by reference use & (address-of) operator before variable identifier
  10. AFL: new function GuiCheckBox - creates check box
  11. AFL: new function GuiGetCheck( id ) - gets 'checked' or "ON" state of toggle, checkbox and radio buttons
  12. AFL: new function GuiRadio - creates radio button
  13. AFL: new function GuiSetCheck( id, checked ) - sets 'checked' or 'ON' state of toggle, checkbox and radio buttons
  14. AFL: new function GuiSetFont( "fontface", size )
  15. AFL: new function GuiToggle - creates toggle button (like normal button but it toggles between "on" and "off" state with each click)
  16. AFL: SetOption("OptimizeSaveParams", True ); - turns on generation of AFL file that contains values of optimization parameters producing best result. The generated file has the same name as formula run but has .opt.afl extension
  17. AFL: When using TimeFrame functions, QuickAFL now uses ratio of requested_interval/current_interval multipled by 30 to better estimate required bars
  18. Analysis: Detailed log displays information about ignored ScaleIn/Outs because of insufficient funds or trade size constraints
  19. Analysis: Detailed log now displays all warnings about skipped/ignored signals in RED color so they are easier to spot
  20. Data: when performing X:Y split and X or Y exceeded 255 the factor was incorrectly displayed (negative) in the Symbol window. Fixed.
  21. formatDateTimeISO and formatDateTimeISON added to syntax highlighter definitions
  22. Scheduler: Repeat "Daily" mode repeated batch run every day even if some days were unchecked. Fixed.
  23. UI: Place Order dialog - allows typing stop distances smaller than 0.1 now
  24. UI: Prefs/Charting: Turning on "Collapse parameter sections" option causes all sections in Parameter window to be collapsed (NOT good idea for newbies as they wont see the controls !)
  25. Web Research: many HTML5 pages did not display properly because of the fact that web browser used old IE7 mode. Now browser uses IE11 mode at minimum for proper HTML5 rendering

CHANGES FOR VERSION 6.22.0 (as compared to 6.21.0)

  1. 64-bit: migrated all code to new compiler VC++2017 which seems to produce better code for x64 resulting in 30...50% speed improvements for many AFL functions. The only negative seems to be much bigger runtime libs
  2. 64-bit: AFL: Sum() function 2x faster
  3. 64-bit: AFL: Max() and Min() functions 8x faster
  4. 64-bit: AFL: Ref() funciton 2x faster
  5. 64-bit: AFL: MACD(), ROC(), StDev(), LinearReg() and many other functions faster by 30-50%
  6. AFL: GetExtraData does not trigger code check and profile warning about referencing future quotes if plugin implements new GetExtraDataEx function
  7. AFL: GuiEdit complained about 2nd parameter instead of 1st (being less than zero)

CHANGES FOR VERSION 6.21.0 (as compared to 6.20.1)

  1. AFL: decreased memory fragmentation when user changes type of variable from array to scalar and back thousands of times
  2. AFL: GuiButton( "Text", id, x, y, width , height , notifyflags ) - creates a button
  3. AFL: GuiEdit( id, x, y, width, height, notifyflags ); - creates an edit field
  4. AFL: GuiGetEvent( num, what = 0 )
  5. AFL: GuiGetText( id ) - get text from control
  6. AFL: GuiSetColors( idFrom, idTo, border , clrText = -1, clrBack = -1, clrBorder = -1, clrSelText = -1, clrSelBack = -1, clrSelBorder = -1, clrHoverText = -1, clrHoverBack = -1, clrHoverBorder = -1, clrDisText = -1, clrDisBack = -1, clrDisBorder = -1
  7. AFL: GuiSetText( "text", id ) - set text of the control
  8. AFL: RequestMouseMoveRefresh() - request formula execution / refresh when mouse is moved INSIDE given chart pane (so it only triggers for ONE window under the cursor)
  9. If Quote.exe is missing and AmiBroker can't do auto-update of quotes, a detailed information is displayed of where it expects Quote.exe file to be present
  10. Plugin loading changed: first AmiBroker attempts to load plugins for "Plugins" subfolder from where Broker.EXE file is located (new behavior) and if subfolder is NOT found, it then defaults to old behavior (using "Plugins" subfolder under current working

KNOWN ISSUES:

  1. None

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

AmiBroker 6.22.0 BETA released

Stability: Rank 3 - regular BETA should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.22.0) of AmiBroker, with new x64 optimizations and preliminary native chart GUI support has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6220beta.exe
(2 255 312 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6220x64.exe
(10 643 696 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 April 30, 2015. 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.20 or higher from http://www.amibroker.com/download.html

FEATURE HIGHLIGHT 6.22

This version is experimental because we are migrating 64-bit version to brand new compiler (VC++ 2017). Such migrations pretty often brings some compatibility risks therefore backup is highly recommended (although you can always go back by just installing previous version). We needed to migrate not only the program itself but many internal libraries taking care not to break backward compatibility.

Note that migration does NOT affect 32-bit version. It is still compiled with old compiler.

Why do we migrate to new compiler with 64-bit version?

  1. New compiler supports new CPU instructions (SSE3/AVX) that we can use to offer better performance
  2. According to our tests new compiler support produces faster code by itself (better optimizations, auto-vectorization, etc)
  3. New compiler is better with error checking (less bugs to slip through)
  4. We don't need to care about compatibility with pre-Vista systems in 64-bits version and all 64-bit capable CPUs are "modern" enough.

Why do we stay with old compiler in 32-bit version?

  1. New compiler does not produce code compatible with older operating systems (XP or earlier). Old compiler offers 100% compatibility with all Windows versions
  2. New compiler requires modern CPUs

Exact performance improvement is function dependent and hardware dependent. Many functions are faster by 30-50% but in some cases such as Min()/Max() functions as large as 8x speed up can be observed in 64-bit version.

FEATURE HIGHLIGHT 6.21
This version features preliminary support for native chart GUI (buttons and edits at the moment). Please be reasonable with Gui* functions and be aware of Windows limits. As all controls in Windows (buttons, edit boxes, etc) are actual Window objects they are subject to Windows limitation. And there is a limit of 10000 windows PER PROCESS. So don't try to create thousands of buttons (like a button for every bar of data) because first you will see huge performance decrease and next you will hit the limit and run into problems (crash), see https://blogs.msdn.microsoft.com/oldnewthing/20070718-00/?p=25963.

Best practice is to keep the number under 100-200. If you need more consider using low-level graphics instead.

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

Here is a sample formula that shows basic usage of Gui* functions:

GuiButton"Custom button"1104010030);

GuiButton"Dynamic "+Date(), 21204015030);
GuiButton"System button"33204010030);
GuiEdit5450401002031 );

GuiSetColors132colorRedcolorBlackcolorRedcolorWhitecolorBluecolorYellow
colorRedcolorBlackcolorYellow );

GuiSetColors33); // default (system) look

editText GuiGetText);

Title "Text entered: " editText "\nLast event: " GuiGetEvent0);

id GuiGetEvent0);
event GuiGetEvent0);

if( 
id == && event == GuiSetText("Button clicked",5);

CHANGES FOR VERSION 6.22.0 (as compared to 6.21.0)

  1. 64-bit: migrated all code to new compiler VC++2017 which seems to produce better code for x64 resulting in 30...50% speed improvements for many AFL functions. The only negative seems to be much bigger runtime libs
  2. 64-bit: AFL: Sum() function 2x faster
  3. 64-bit: AFL: Max() and Min() functions 8x faster
  4. 64-bit: AFL: Ref() funciton 2x faster
  5. 64-bit: AFL: MACD(), ROC(), StDev(), LinearReg() and many other functions faster by 30-50%
  6. AFL: GetExtraData does not trigger code check and profile warning about referencing future quotes if plugin implements new GetExtraDataEx function
  7. AFL: GuiEdit complained about 2nd parameter instead of 1st (being less than zero)

CHANGES FOR VERSION 6.21.0 (as compared to 6.20.1)

  1. AFL: decreased memory fragmentation when user changes type of variable from array to scalar and back thousands of times
  2. AFL: GuiButton( "Text", id, x, y, width , height , notifyflags ) - creates a button
  3. AFL: GuiEdit( id, x, y, width, height, notifyflags ); - creates an edit field
  4. AFL: GuiGetEvent( num, what = 0 )
  5. AFL: GuiGetText( id ) - get text from control
  6. AFL: GuiSetColors( idFrom, idTo, border , clrText = -1, clrBack = -1, clrBorder = -1, clrSelText = -1, clrSelBack = -1, clrSelBorder = -1, clrHoverText = -1, clrHoverBack = -1, clrHoverBorder = -1, clrDisText = -1, clrDisBack = -1, clrDisBorder = -1
  7. AFL: GuiSetText( "text", id ) - set text of the control
  8. AFL: RequestMouseMoveRefresh() - request formula execution / refresh when mouse is moved INSIDE given chart pane (so it only triggers for ONE window under the cursor)
  9. If Quote.exe is missing and AmiBroker can't do auto-update of quotes, a detailed information is displayed of where it expects Quote.exe file to be present
  10. Plugin loading changed: first AmiBroker attempts to load plugins for "Plugins" subfolder from where Broker.EXE file is located (new behavior) and if subfolder is NOT found, it then defaults to old behavior (using "Plugins" subfolder under current working

KNOWN ISSUES:

  1. None

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

AmiBroker 6.21.0 BETA released

Stability: Rank 3 - regular BETA should work fine in most environments

This is a BETA version. Make a backup first

A new beta version (6.21.0) of AmiBroker, with preliminary native chart GUI support has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6210beta.exe
(2 254 240 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6210x64.exe
(10 590 392 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 March 28, 2015. 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.20 or higher from http://www.amibroker.com/download.html

FEATURE HIGHLIGHT
This version features preliminary support for native chart GUI (buttons and edits at the moment). Please be reasonable with Gui* functions and be aware of Windows limits. As all controls in Windows (buttons, edit boxes, etc) are actual Window objects they are subject to Windows limitation. And there is a limit of 10000 windows PER PROCESS. So don't try to create thousands of buttons (like a button for every bar of data) because first you will see huge performance decrease and next you will hit the limit and run into problems (crash), see https://blogs.msdn.microsoft.com/oldnewthing/20070718-00/?p=25963.

Best practice is to keep the number under 100-200. If you need more consider using low-level graphics instead.

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

Here is a sample formula that shows basic usage of Gui* functions:

GuiButton"Custom button"1104010030);

GuiButton"Dynamic "+Date(), 21204015030);
GuiButton"System button"33204010030);
GuiEdit5450401002031 );

GuiSetColors132colorRedcolorBlackcolorRedcolorWhitecolorBluecolorYellow
colorRedcolorBlackcolorYellow );

GuiSetColors33); // default (system) look

editText GuiGetText);

Title "Text entered: " editText "\nLast event: " GuiGetEvent0);

id GuiGetEvent0);
event GuiGetEvent0);

if( 
id == && event == GuiSetText("Button clicked",5);

CHANGES FOR VERSION 6.21.0 (as compared to 6.20.1)

  1. AFL: decreased memory fragmentation when user changes type of variable from array to scalar and back thousands of times
  2. AFL: GuiButton( "Text", id, x, y, width , height , notifyflags ) - creates a button
  3. AFL: GuiEdit( id, x, y, width, height, notifyflags ); - creates an edit field
  4. AFL: GuiGetEvent( num, what = 0 )
  5. AFL: GuiGetText( id ) - get text from control
  6. AFL: GuiSetColors( idFrom, idTo, border , clrText = -1, clrBack = -1, clrBorder = -1, clrSelText = -1, clrSelBack = -1, clrSelBorder = -1, clrHoverText = -1, clrHoverBack = -1, clrHoverBorder = -1, clrDisText = -1, clrDisBack = -1, clrDisBorder = -1
  7. AFL: GuiSetText( "text", id ) - set text of the control
  8. AFL: RequestMouseMoveRefresh() - request formula execution / refresh when mouse is moved INSIDE given chart pane (so it only triggers for ONE window under the cursor)
  9. If Quote.exe is missing and AmiBroker can't do auto-update of quotes, a detailed information is displayed of where it expects Quote.exe file to be present
  10. Plugin loading changed: first AmiBroker attempts to load plugins for "Plugins" subfolder from where Broker.EXE file is located (new behavior) and if subfolder is NOT found, it then defaults to old behavior (using "Plugins" subfolder under current working

KNOWN ISSUES:

  1. None

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

AmiBroker 6.20.0 BETA released

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

This is a BETA version. Make a backup first

A new beta version (6.20.0) of AmiBroker, the last one before official version, with plenty of new features and improvements has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6200beta.exe
(2 296 880 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6200x64.exe
(10 473 784 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 January 27, 2015. 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.

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

CHANGES FOR VERSION 6.20.0 (as compared to 6.19.0)

  1. AFL: new function GetExtraDataForeign - the same as GetExtraData but works with user-specified ticker instead of current one
  2. AFL: ShellExecute supports "runbatch" command. After running batch batch and analysis windows that were opened by batch are automatically closed
  3. Batch: new command DataPluginCmd - calls data plugin DataPluginCmd function (if it is exported from your data DLL) - allows custom actions to be peformed by the plugin from the batch (like maintenance)
  4. Batch: new command ExecuteAndWait - allows to execute external program and wait for its completion (allows among other things launching AmiQuote download and waiting until it is complete)
  5. New Analysis: changed forced refresh frequency of result list to every 250ms when analysis is in progress (since 6.16 when messaging system has changed it was refreshed "on idle")
  6. New Analysis: when user specified symbol with NO quotes at all as a reference symbol AND used "last N days" range AND used Exploration then it would lead to crash. Protection implemented against this scenario.
  7. OLE: AnalysisDoc.Export supports now extra (optional) parameter WhatToExport and it allows now to export not only result list but also walkforward tab Analysis.Export("file", 1 );
  8. UI: In 64 bit version File Dialog was not resizable due to differences in Microsoft runtime. Now it is made resizable.

CHANGES FOR VERSION 6.19.0 (as compared to 6.18.0)

  1. Batch Scheduler implemented (Tools->Scheduler) - integrated tool to schedule automated runs of your batches
  2. Batch: ExportWalkForward command added
  3. Batch: Pause command added
  4. AFL: GetOption supports all fields available in SetOption call
  5. AFL: new function: AddMultiTextColumn - adds a text column to the exploration where text displayed is choosen based on array value
  6. AFL: new function: MxSum - calculates sum of all elements of matrix (grand sum)
  7. AFL: StDev added support for variable period (faster and more accurate than formula-based solutions)
  8. AFL: Title now accepts {{VOLUME}} and {{FULLNAME}} special tokens that get replaced by current volume and full name of the symbol. Example Title = "{{VOLUME}}";
  9. AFL: updated text of Error 62 message to list newly supported sequence %s
  10. AFL: variable period Sum() now returns NULL if range is greater than current bar index (previously returned partial sum)
  11. Analysis: WalkForward settings including IS/OS dates are no longer global, they are now per-project and saved in APX file
  12. ASCII importer: added $RAWCLOSE2AUX1 and $RAWCLOSE2AUX2 commands that allow to put raw close into aux1/aux2 fields when using ADJCLOSE in 'close' field
  13. Changed wording to "Free upgrade period expired." (from "License expired")
  14. Date/Time fields in XML files now use ISO format always (not regional format), for better file exchangability accross regions
  15. Debugger: Watch window: added ability to display values of static variables in watch window - just append '$' (dollar) prefix before static variable name
  16. Default report chart dimensions (new instals) increased to 800x480px
  17. On HiDPI (>=150dpi) screens icons in menus were small, now they are bigger
  18. On HiDPI screens XYCharts and MonteCarlo charts could have axis labels partially truncated depending on choosen font size. Now it is fixed.
  19. UI: Performance Monitor shows now the number of static variables used and the amount of memory consumed by them (Tools->Performance Monitor)
  20. UI: Plugin data access time is now displayed with microsecond precision
  21. UI: Symbol and interval combo boxes in toolbar are made larger on HiDPI screens

CHANGES FOR VERSION 6.18.0 (as compared to 6.17.0)

  1. AFL: GetFnData/GetFnDataForeign added support for "PointValue" and "FullName" fields
  2. Batch processor: In 6.17.0 Export to file command was executed properly but never marked as completed. Fixed.
  3. Batch window checks if there is any other batch running and refuses to start when the other batch has not finished.
  4. Batch: Added command line parameter to exit AmiBroker after running batch file (/exit)
  5. Batch: Added command line parameter to run batch files: /runbatch "full path to batch file
  6. Batch: Load Database "path to workspace/database" - warning this function may be RISKY because it may interfere with other running operations !!
  7. Batch: new command: Save Database
  8. Batch: new command: Set log filename "filename"
  9. Batch: new command: Write text to log "text"
  10. OLE: added new method to AnalysisDoc object: Abort() - will abort any running Analysis scan/exploration/backtest
  11. UI: File->Database Setings displayed underestimated memory usage per symbol (32 bytes per quote instead of 40). Corrected.

CHANGES FOR VERSION 6.17.0 (as compared to 6.16.0)

  1. New Batch processor - allows to define sequences of scans/explorations/backtests/optimizations using different project files that are then run automatically. Detailed instructions on how to use Batch window are here http://www.amibroker.com/guide/h_batch.html
  2. AFL: Changed default number formatting string from "%g" to "%.7g" (so 7 significant digits are now displayed instead of 6)
  3. AFL: new function GetFnDataForeign( "field", "symbol" ) - the same as GetFnData but retrieves non-current symbol's data
  4. AFL: new function InternetClose( handle )
  5. AFL: new function InternetOpenURL( "url" )
  6. AFL: new function InternetReadString( handle ) - read a string (line) from internet resource
  7. AFL: printf/StrFormat/TRACEF support now "%s" (string specifier) and accept string arguments passed and made faster too
  8. Data: Gics.txt classification updated (thanks to PremiumData)
  9. OLE Automation: individual backtest is now supported via OLE automation
  10. OLE: Interval property of Document object is now writable so you can set chart interval from OLE
  11. Startup is made faster
  12. UI: AFL Editor MDI UI did not get immediate refresh after file name change when main window was in modal state due to the way how MFC works. Fixed.
  13. UI: File->Database Settings, default maximum "number of bars" increased to 1 million
  14. UI: New Analysis Settings submenu is now duplicated in main window Analysis->Options menu for easier access for beginners
  15. Watch window: added support for modulo (%) operator in watches

CHANGES FOR VERSION 6.16.0 (as compared to 6.15.0)

  1. New Analysis: implemented entirely new inter-thread communication method that does not strain main thread message queue. This gives tremendous improvement in responsivity of UI when Analysis is running
  2. New Analysis: removed forced message pumping when AFL finished as it was causing issues with proper MDI tab refreshes in Windows 10 while Analysis was running
  3. New Analysis: UI: added an option to keep using existing AFL file on opening APX project instead of asking the user what to do when differences are found between AFL file and content of APX project.
  4. AFL: changed the way how custom-backtest reports "stocknum". Previously Status("stocknum") was equal to zero on custom backtest phase and this may have caused parts that use if(Status("stocknum")==0) to be excecuted during custom backtest phase. Now custom backtest reports stocknum equal -1.
  5. AFL: DateTimeConvert supports now more formats, format = 6 - day, 7 - month, 8 - year, 9 - day of week, 10 - day of year, 11 - quarter (1..4)
  6. Charts: as apparently single pixel geometric pens are 8 times slower than DC pen, the optimization has been implemented that uses DC single pixel pen instead of geometric pen when bar width is 1, giving 8x faster 1-pixel bar charts
  7. Since 6.15 when $AUTOADD was set to 0 (zero), then symbols not existing in the database but present in the imported file were not logged into import.log as earlier. Fixed.
  8. UI: when AM/PM (12 hour format) was used in list views 12:00AM was interpreted as 12:00 (noon), instead of 00:00 (midnight). Fixed.
  9. When backtesting Short only strategy and using backtestRegular mode and using HoldMinBars > 1, a disabled stop could trigger if it was enabled in previous backtest run. Fixed.
  10. Support for Windows 98 and Millenium is dropped. If anybody needs that back please let us know (email to support)!

CHANGES FOR VERSION 6.15.0 (as compared to 6.14.0)

  1. AFL: DateTimeFormat( "formatstr", datetime ) - converts datetime to string according to user-specified format
  2. AFL: new function Kurtosis( ARRAY, range, population = True )
  3. AFL: new function Skewness( ARRAY, range, population = True )
  4. AFL: new modes added to DateTimeToStr() that use ISO regardless of regional settings mode = 3 (iso date and time YYYY-MM-DD HH:MM:SS) HH:MM:SS part is only included for non-EOD records, 4 (iso date only YYYY-MM-DD), 5 (iso time only HH:MM:SS)
  5. AFL: NumToStr could crash if format parameter was greater than 127. Fixed. Now an error message is displayed when format parameter is too large
  6. AFL: NumToStr now supports formatDateTimeISO
  7. AFL: StDev function added 3rd argument "Population = True", when Population is True it calculates population based stdev, otherwise sample based
  8. ASCII import: from version 6.11 importer always added new symbols even if $AUTOADD 0 was used. Fixed.
  9. UI: Charts window - an attempt to rename a file or directory to something that already exists is now prevented and results in error message box.
  10. UI: in 6.14 when New Analysis was switched to 'floating' mode, it could crash on attempt to run analysis. Fixed.
  11. UI: Quote editor - in single-symbol mode "ticker" field sometimes was not updated. Fixed.
  12. UI: Symbol->Quick Find menu command brings focus to Symbol's window search box. New installations use F3 key assignment for Quick Find. Old installations use old assignment (you can change F3 assignment in Tools->Customize->Keyboard)

CHANGES FOR VERSION 6.14.0 (as compared to 6.13.0)

  1. AFL: ParamDate() added support for format=2 to return datetime instead of datenum/string
  2. AFL: PercentRank function now accepts variable period (range)
  3. AFL: PriceVolDistribution crashed if startbar argument was negative. Fixed by implementing protection against negative bar indexes.
  4. AFL: PriceVolDistribution sometimes produced some random values in 6.13. Fixed.
  5. ASCII importer now supports microsecond resolution timestamps (HH:MM:SS.mmmuuu) where mmm - milliseconds 000..999, uuu - microseconds 000..999
  6. New Analysis: new feature a PAUSE button to temporarily pause/resume any running analysis. Note that already running threads are not interrupted, they are allowed to complete gracefully and then pause state is entered.
  7. UI: A warning message is displayed when user attempts to close AmiBroker while Analysis is in progress
  8. UI: QuoteEditor in some cases did not properly round fractional part of millisecond down to microsecond. Fixed
  9. UI: QuoteEditor: Edit fields for OHLC prices, Volume, OpenInt and Aux now check for proper entry as you type and display red background if entered string is not proper numer. Also those edit fields don't accept characters other than digits (0..9), decimal
  10. UI: Toolbar icons are set to "Large icons" mode automatically on HighDPI screens
  11. When broker.workspace file was corrupted or truncated, the file remained open which eventually prevented from writing it on close. Fixed.

CHANGES FOR VERSION 6.13.0 (as compared to 6.12.0)

  1. AFL Editor: calling SetForeign thousands of times followed by RestorePriceArrays() could cause exception during code verify when number of symbols exceeded cache size. Fixed.
  2. AFL Editor: changes made in 6.11 to the way how automatic names for new formulas are assigned have been removed and replaced by new method that is faster and more reliable.
  3. AFL Editor: if clipboard is locked by another application the editor would retry opening clipboard upto 8 times before giving up
  4. AFL Editor: when formula was open cursor was located at the end. Now it is located at the top.
  5. AFL: GfxSetCoordsMode( mode ) accepts now four different modes
  6. AFL: MA function made upto 2 times faster, StDev function made 20% faster, Correlation made 40% faster
  7. AFL: NormDist( x, mean = 0, sigma = 1, cumulative = True ) function. Implements hi-precision algorithm.
  8. AFL: PriceVolDistribution( priceH, priceL, vol, bins, absolute = False, startbar = 0, endbar = -1 )
  9. AFL: 64-bit version AFL Correlation() produced slightly different values (+/-0.00001 typ) than 32-bit version due to compiler differences. Now 64-bit version produces same values as produced by all 32-bit versions.
  10. Charting: new feature - Snap to Tick grid. Snap drawing tool end points to TickSize-spaced grid (if TickSize > 0 for given symbol)
  11. Plugin loading routine displays a message box when plugins with incorrect bitness are found
  12. Plugin loading routine writes detailed error message to the broker.log in case of problem of DLL loading (must enable plugin log to use this feature)
  13. When drawn study is being modified, Y distance shown in the status bar accounts for activated snap-to-price and/or snap-to-tick mode now.

CHANGES FOR VERSION 6.12.0 (as compared to 6.11.0)

  1. AFL: new function GfxDrawImage( "filename", x, y )
  2. AFL: new function CumProd( factor ) - cumulative product of array elements
  3. AFL: new function Prod( array, range ) - cumulative product of array elements over specified number of bars (range)
  4. AFL: new function ProdSince( condition, array ) - cumulative product of array elements since condition is met
  5. AFL: new function VoiceSelect( num ) - select SAPI (Speech API) voice to be used with Say() function, num is a numerical index of installed voices. By default Windows comes with just one voice, but one can add countless 3rd party voices
  6. AFL: new function VoiceCount( ) - returns number of available SAPI (Speech API) voices - to be used with Say() command
  7. AFL: StaticVarAdd with non-array input produced incorrect results. Fixed.
  8. UI: New Analysis: Alt+Enter shortcut added to bring up settings window
  9. UI: Quote Editor allows now immediate search for matching date - just type digits in format YYYYMMDD and list will automatically scroll and mark to quote that most closely matches entered date
  10. UI: Realtime quote window: a RMB context menu items are grayed when local data is used and an empty message is set to inform the user that he/she needs realtime data source to use this window
  11. UI: Symbol Information - date fields (like last split date, div date or delisting date) can now be cleared (select all and press DELETE) to set Empty/Null date
  12. UI: Symbols with COMMA (,) caused problems with multiple-selection operations. Now it is handled properly.

CHANGES FOR VERSION 6.11.0 (as compared to 6.10.0)

  1. AFL: added formatDateTimeISO for ISO formatting regardless of locale settings
  2. AFL: MxFromString was slow on very large matrices (>100000 cells) due to poor performance of strtod function from Microsoft C runtime. Now MxFromString does not use it and is even 1000 times faster on 100K+ cell matrices (5ms vs 5second)
  3. ASCII importer can now be even 20 times faster when importing NEW (non existing) data that were oddly sorted (like for example in reverse order - descending dates instead of ascending).
  4. ASCII importer is now twice as fast when updating already existing quotes thanks to using in-house code instead of msvcrt functions.
  5. Charting: Fibonacci maximum user-definable level increased to 9000% (from 1000%)
  6. Idle processing is forced now every 125 ms (instead of 250ms) in Analysis window to update UI components more frequently under heavy CPU load
  7. Ruin stop is identified by Short(ruin) / Sell(ruin) instead of Short(6) / Sell(6)
  8. Startup splash screen is displayed a little sooner now and some pre-loading of editor components is done at start to save time to open editor later
  9. When there were thousands of files in "Formulas" folder opening editor for the first time could take some time. Now this time is significantly reduced.

KNOWN ISSUES:

  1. None

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

AmiBroker 6.19.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.19.0) of AmiBroker with Batch scheduler and 19 other new features and improvements has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6190beta.exe
(2 291 952 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6190x64.exe
(10 468 224 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, 2014. 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.

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

CHANGES FOR VERSION 6.19.0 (as compared to 6.18.0)

  1. Batch Scheduler implemented (Tools->Scheduler) - integrated tool to schedule automated runs of your batches
  2. Batch: ExportWalkForward command added
  3. Batch: Pause command added
  4. AFL: GetOption supports all fields available in SetOption call
  5. AFL: new function: AddMultiTextColumn - adds a text column to the exploration where text displayed is choosen based on array value
  6. AFL: new function: MxSum - calculates sum of all elements of matrix (grand sum)
  7. AFL: StDev added support for variable period (faster and more accurate than formula-based solutions)
  8. AFL: Title now accepts {{VOLUME}} and {{FULLNAME}} special tokens that get replaced by current volume and full name of the symbol. Example Title = "{{VOLUME}}";
  9. AFL: updated text of Error 62 message to list newly supported sequence %s
  10. AFL: variable period Sum() now returns NULL if range is greater than current bar index (previously returned partial sum)
  11. Analysis: WalkForward settings including IS/OS dates are no longer global, they are now per-project and saved in APX file
  12. ASCII importer: added $RAWCLOSE2AUX1 and $RAWCLOSE2AUX2 commands that allow to put raw close into aux1/aux2 fields when using ADJCLOSE in 'close' field
  13. Changed wording to "Free upgrade period expired." (from "License expired")
  14. Date/Time fields in XML files now use ISO format always (not regional format), for better file exchangability accross regions
  15. Debugger: Watch window: added ability to display values of static variables in watch window - just append '$' (dollar) prefix before static variable name
  16. Default report chart dimensions (new instals) increased to 800x480px
  17. On HiDPI (>=150dpi) screens icons in menus were small, now they are bigger
  18. On HiDPI screens XYCharts and MonteCarlo charts could have axis labels partially truncated depending on choosen font size. Now it is fixed.
  19. UI: Performance Monitor shows now the number of static variables used and the amount of memory consumed by them (Tools->Performance Monitor)
  20. UI: Plugin data access time is now displayed with microsecond precision
  21. UI: Symbol and interval combo boxes in toolbar are made larger on HiDPI screens

CHANGES FOR VERSION 6.18.0 (as compared to 6.17.0)

  1. AFL: GetFnData/GetFnDataForeign added support for "PointValue" and "FullName" fields
  2. Batch processor: In 6.17.0 Export to file command was executed properly but never marked as completed. Fixed.
  3. Batch window checks if there is any other batch running and refuses to start when the other batch has not finished.
  4. Batch: Added command line parameter to exit AmiBroker after running batch file (/exit)
  5. Batch: Added command line parameter to run batch files: /runbatch "full path to batch file
  6. Batch: Load Database "path to workspace/database" - warning this function may be RISKY because it may interfere with other running operations !!
  7. Batch: new command: Save Database
  8. Batch: new command: Set log filename "filename"
  9. Batch: new command: Write text to log "text"
  10. OLE: added new method to AnalysisDoc object: Abort() - will abort any running Analysis scan/exploration/backtest
  11. UI: File->Database Setings displayed underestimated memory usage per symbol (32 bytes per quote instead of 40). Corrected.

CHANGES FOR VERSION 6.17.0 (as compared to 6.16.0)

  1. New Batch processor - allows to define sequences of scans/explorations/backtests/optimizations using different project files that are then run automatically. Detailed instructions on how to use Batch window are here http://www.amibroker.com/guide/h_batch.html
  2. AFL: Changed default number formatting string from "%g" to "%.7g" (so 7 significant digits are now displayed instead of 6)
  3. AFL: new function GetFnDataForeign( "field", "symbol" ) - the same as GetFnData but retrieves non-current symbol's data
  4. AFL: new function InternetClose( handle )
  5. AFL: new function InternetOpenURL( "url" )
  6. AFL: new function InternetReadString( handle ) - read a string (line) from internet resource
  7. AFL: printf/StrFormat/TRACEF support now "%s" (string specifier) and accept string arguments passed and made faster too
  8. Data: Gics.txt classification updated (thanks to PremiumData)
  9. OLE Automation: individual backtest is now supported via OLE automation
  10. OLE: Interval property of Document object is now writable so you can set chart interval from OLE
  11. Startup is made faster
  12. UI: AFL Editor MDI UI did not get immediate refresh after file name change when main window was in modal state due to the way how MFC works. Fixed.
  13. UI: File->Database Settings, default maximum "number of bars" increased to 1 million
  14. UI: New Analysis Settings submenu is now duplicated in main window Analysis->Options menu for easier access for beginners
  15. Watch window: added support for modulo (%) operator in watches

CHANGES FOR VERSION 6.16.0 (as compared to 6.15.0)

  1. New Analysis: implemented entirely new inter-thread communication method that does not strain main thread message queue. This gives tremendous improvement in responsivity of UI when Analysis is running
  2. New Analysis: removed forced message pumping when AFL finished as it was causing issues with proper MDI tab refreshes in Windows 10 while Analysis was running
  3. New Analysis: UI: added an option to keep using existing AFL file on opening APX project instead of asking the user what to do when differences are found between AFL file and content of APX project.
  4. AFL: changed the way how custom-backtest reports "stocknum". Previously Status("stocknum") was equal to zero on custom backtest phase and this may have caused parts that use if(Status("stocknum")==0) to be excecuted during custom backtest phase. Now custom backtest reports stocknum equal -1.
  5. AFL: DateTimeConvert supports now more formats, format = 6 - day, 7 - month, 8 - year, 9 - day of week, 10 - day of year, 11 - quarter (1..4)
  6. Charts: as apparently single pixel geometric pens are 8 times slower than DC pen, the optimization has been implemented that uses DC single pixel pen instead of geometric pen when bar width is 1, giving 8x faster 1-pixel bar charts
  7. Since 6.15 when $AUTOADD was set to 0 (zero), then symbols not existing in the database but present in the imported file were not logged into import.log as earlier. Fixed.
  8. UI: when AM/PM (12 hour format) was used in list views 12:00AM was interpreted as 12:00 (noon), instead of 00:00 (midnight). Fixed.
  9. When backtesting Short only strategy and using backtestRegular mode and using HoldMinBars > 1, a disabled stop could trigger if it was enabled in previous backtest run. Fixed.
  10. Support for Windows 98 and Millenium is dropped. If anybody needs that back please let us know (email to support)!

CHANGES FOR VERSION 6.15.0 (as compared to 6.14.0)

  1. AFL: DateTimeFormat( "formatstr", datetime ) - converts datetime to string according to user-specified format
  2. AFL: new function Kurtosis( ARRAY, range, population = True )
  3. AFL: new function Skewness( ARRAY, range, population = True )
  4. AFL: new modes added to DateTimeToStr() that use ISO regardless of regional settings mode = 3 (iso date and time YYYY-MM-DD HH:MM:SS) HH:MM:SS part is only included for non-EOD records, 4 (iso date only YYYY-MM-DD), 5 (iso time only HH:MM:SS)
  5. AFL: NumToStr could crash if format parameter was greater than 127. Fixed. Now an error message is displayed when format parameter is too large
  6. AFL: NumToStr now supports formatDateTimeISO
  7. AFL: StDev function added 3rd argument "Population = True", when Population is True it calculates population based stdev, otherwise sample based
  8. ASCII import: from version 6.11 importer always added new symbols even if $AUTOADD 0 was used. Fixed.
  9. UI: Charts window - an attempt to rename a file or directory to something that already exists is now prevented and results in error message box.
  10. UI: in 6.14 when New Analysis was switched to 'floating' mode, it could crash on attempt to run analysis. Fixed.
  11. UI: Quote editor - in single-symbol mode "ticker" field sometimes was not updated. Fixed.
  12. UI: Symbol->Quick Find menu command brings focus to Symbol's window search box. New installations use F3 key assignment for Quick Find. Old installations use old assignment (you can change F3 assignment in Tools->Customize->Keyboard)

CHANGES FOR VERSION 6.14.0 (as compared to 6.13.0)

  1. AFL: ParamDate() added support for format=2 to return datetime instead of datenum/string
  2. AFL: PercentRank function now accepts variable period (range)
  3. AFL: PriceVolDistribution crashed if startbar argument was negative. Fixed by implementing protection against negative bar indexes.
  4. AFL: PriceVolDistribution sometimes produced some random values in 6.13. Fixed.
  5. ASCII importer now supports microsecond resolution timestamps (HH:MM:SS.mmmuuu) where mmm - milliseconds 000..999, uuu - microseconds 000..999
  6. New Analysis: new feature a PAUSE button to temporarily pause/resume any running analysis. Note that already running threads are not interrupted, they are allowed to complete gracefully and then pause state is entered.
  7. UI: A warning message is displayed when user attempts to close AmiBroker while Analysis is in progress
  8. UI: QuoteEditor in some cases did not properly round fractional part of millisecond down to microsecond. Fixed
  9. UI: QuoteEditor: Edit fields for OHLC prices, Volume, OpenInt and Aux now check for proper entry as you type and display red background if entered string is not proper numer. Also those edit fields don't accept characters other than digits (0..9), decimal
  10. UI: Toolbar icons are set to "Large icons" mode automatically on HighDPI screens
  11. When broker.workspace file was corrupted or truncated, the file remained open which eventually prevented from writing it on close. Fixed.

CHANGES FOR VERSION 6.13.0 (as compared to 6.12.0)

  1. AFL Editor: calling SetForeign thousands of times followed by RestorePriceArrays() could cause exception during code verify when number of symbols exceeded cache size. Fixed.
  2. AFL Editor: changes made in 6.11 to the way how automatic names for new formulas are assigned have been removed and replaced by new method that is faster and more reliable.
  3. AFL Editor: if clipboard is locked by another application the editor would retry opening clipboard upto 8 times before giving up
  4. AFL Editor: when formula was open cursor was located at the end. Now it is located at the top.
  5. AFL: GfxSetCoordsMode( mode ) accepts now four different modes
  6. AFL: MA function made upto 2 times faster, StDev function made 20% faster, Correlation made 40% faster
  7. AFL: NormDist( x, mean = 0, sigma = 1, cumulative = True ) function. Implements hi-precision algorithm.
  8. AFL: PriceVolDistribution( priceH, priceL, vol, bins, absolute = False, startbar = 0, endbar = -1 )
  9. AFL: 64-bit version AFL Correlation() produced slightly different values (+/-0.00001 typ) than 32-bit version due to compiler differences. Now 64-bit version produces same values as produced by all 32-bit versions.
  10. Charting: new feature - Snap to Tick grid. Snap drawing tool end points to TickSize-spaced grid (if TickSize > 0 for given symbol)
  11. Plugin loading routine displays a message box when plugins with incorrect bitness are found
  12. Plugin loading routine writes detailed error message to the broker.log in case of problem of DLL loading (must enable plugin log to use this feature)
  13. When drawn study is being modified, Y distance shown in the status bar accounts for activated snap-to-price and/or snap-to-tick mode now.

CHANGES FOR VERSION 6.12.0 (as compared to 6.11.0)

  1. AFL: new function GfxDrawImage( "filename", x, y )
  2. AFL: new function CumProd( factor ) - cumulative product of array elements
  3. AFL: new function Prod( array, range ) - cumulative product of array elements over specified number of bars (range)
  4. AFL: new function ProdSince( condition, array ) - cumulative product of array elements since condition is met
  5. AFL: new function VoiceSelect( num ) - select SAPI (Speech API) voice to be used with Say() function, num is a numerical index of installed voices. By default Windows comes with just one voice, but one can add countless 3rd party voices
  6. AFL: new function VoiceCount( ) - returns number of available SAPI (Speech API) voices - to be used with Say() command
  7. AFL: StaticVarAdd with non-array input produced incorrect results. Fixed.
  8. UI: New Analysis: Alt+Enter shortcut added to bring up settings window
  9. UI: Quote Editor allows now immediate search for matching date - just type digits in format YYYYMMDD and list will automatically scroll and mark to quote that most closely matches entered date
  10. UI: Realtime quote window: a RMB context menu items are grayed when local data is used and an empty message is set to inform the user that he/she needs realtime data source to use this window
  11. UI: Symbol Information - date fields (like last split date, div date or delisting date) can now be cleared (select all and press DELETE) to set Empty/Null date
  12. UI: Symbols with COMMA (,) caused problems with multiple-selection operations. Now it is handled properly.

CHANGES FOR VERSION 6.11.0 (as compared to 6.10.0)

  1. AFL: added formatDateTimeISO for ISO formatting regardless of locale settings
  2. AFL: MxFromString was slow on very large matrices (>100000 cells) due to poor performance of strtod function from Microsoft C runtime. Now MxFromString does not use it and is even 1000 times faster on 100K+ cell matrices (5ms vs 5second)
  3. ASCII importer can now be even 20 times faster when importing NEW (non existing) data that were oddly sorted (like for example in reverse order - descending dates instead of ascending).
  4. ASCII importer is now twice as fast when updating already existing quotes thanks to using in-house code instead of msvcrt functions.
  5. Charting: Fibonacci maximum user-definable level increased to 9000% (from 1000%)
  6. Idle processing is forced now every 125 ms (instead of 250ms) in Analysis window to update UI components more frequently under heavy CPU load
  7. Ruin stop is identified by Short(ruin) / Sell(ruin) instead of Short(6) / Sell(6)
  8. Startup splash screen is displayed a little sooner now and some pre-loading of editor components is done at start to save time to open editor later
  9. When there were thousands of files in "Formulas" folder opening editor for the first time could take some time. Now this time is significantly reduced.

KNOWN ISSUES:

  1. None

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

AmiBroker 6.18.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.18.0) of AmiBroker has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6180beta.exe
(2 254 208 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6180x64.exe
(10 458 784 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 October 17, 2014. 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.

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

CHANGES FOR VERSION 6.18.0 (as compared to 6.17.0)

  1. AFL: GetFnData/GetFnDataForeign added support for "PointValue" and "FullName" fields
  2. Batch processor: In 6.17.0 Export to file command was executed properly but never marked as completed. Fixed.
  3. Batch window checks if there is any other batch running and refuses to start when the other batch has not finished.
  4. Batch: Added command line parameter to exit AmiBroker after running batch file (/exit)
  5. Batch: Added command line parameter to run batch files: /runbatch "full path to batch file
  6. Batch: Load Database "path to workspace/database" - warning this function may be RISKY because it may interfere with other running operations !!
  7. Batch: new command: Save Database
  8. Batch: new command: Set log filename "filename"
  9. Batch: new command: Write text to log "text"
  10. OLE: added new method to AnalysisDoc object: Abort() - will abort any running Analysis scan/exploration/backtest
  11. UI: File->Database Setings displayed underestimated memory usage per symbol (32 bytes per quote instead of 40). Corrected.

CHANGES FOR VERSION 6.17.0 (as compared to 6.16.0)

  1. New Batch processor - allows to define sequences of scans/explorations/backtests/optimizations using different project files that are then run automatically. Detailed instructions on how to use Batch window are here http://www.amibroker.com/guide/h_batch.html
  2. AFL: Changed default number formatting string from "%g" to "%.7g" (so 7 significant digits are now displayed instead of 6)
  3. AFL: new function GetFnDataForeign( "field", "symbol" ) - the same as GetFnData but retrieves non-current symbol's data
  4. AFL: new function InternetClose( handle )
  5. AFL: new function InternetOpenURL( "url" )
  6. AFL: new function InternetReadString( handle ) - read a string (line) from internet resource
  7. AFL: printf/StrFormat/TRACEF support now "%s" (string specifier) and accept string arguments passed and made faster too
  8. Data: Gics.txt classification updated (thanks to PremiumData)
  9. OLE Automation: individual backtest is now supported via OLE automation
  10. OLE: Interval property of Document object is now writable so you can set chart interval from OLE
  11. Startup is made faster
  12. UI: AFL Editor MDI UI did not get immediate refresh after file name change when main window was in modal state due to the way how MFC works. Fixed.
  13. UI: File->Database Settings, default maximum "number of bars" increased to 1 million
  14. UI: New Analysis Settings submenu is now duplicated in main window Analysis->Options menu for easier access for beginners
  15. Watch window: added support for modulo (%) operator in watches

CHANGES FOR VERSION 6.16.0 (as compared to 6.15.0)

  1. New Analysis: implemented entirely new inter-thread communication method that does not strain main thread message queue. This gives tremendous improvement in responsivity of UI when Analysis is running
  2. New Analysis: removed forced message pumping when AFL finished as it was causing issues with proper MDI tab refreshes in Windows 10 while Analysis was running
  3. New Analysis: UI: added an option to keep using existing AFL file on opening APX project instead of asking the user what to do when differences are found between AFL file and content of APX project.
  4. AFL: changed the way how custom-backtest reports "stocknum". Previously Status("stocknum") was equal to zero on custom backtest phase and this may have caused parts that use if(Status("stocknum")==0) to be excecuted during custom backtest phase. Now custom backtest reports stocknum equal -1.
  5. AFL: DateTimeConvert supports now more formats, format = 6 - day, 7 - month, 8 - year, 9 - day of week, 10 - day of year, 11 - quarter (1..4)
  6. Charts: as apparently single pixel geometric pens are 8 times slower than DC pen, the optimization has been implemented that uses DC single pixel pen instead of geometric pen when bar width is 1, giving 8x faster 1-pixel bar charts
  7. Since 6.15 when $AUTOADD was set to 0 (zero), then symbols not existing in the database but present in the imported file were not logged into import.log as earlier. Fixed.
  8. UI: when AM/PM (12 hour format) was used in list views 12:00AM was interpreted as 12:00 (noon), instead of 00:00 (midnight). Fixed.
  9. When backtesting Short only strategy and using backtestRegular mode and using HoldMinBars > 1, a disabled stop could trigger if it was enabled in previous backtest run. Fixed.
  10. Support for Windows 98 and Millenium is dropped. If anybody needs that back please let us know (email to support)!

CHANGES FOR VERSION 6.15.0 (as compared to 6.14.0)

  1. AFL: DateTimeFormat( "formatstr", datetime ) - converts datetime to string according to user-specified format
  2. AFL: new function Kurtosis( ARRAY, range, population = True )
  3. AFL: new function Skewness( ARRAY, range, population = True )
  4. AFL: new modes added to DateTimeToStr() that use ISO regardless of regional settings mode = 3 (iso date and time YYYY-MM-DD HH:MM:SS) HH:MM:SS part is only included for non-EOD records, 4 (iso date only YYYY-MM-DD), 5 (iso time only HH:MM:SS)
  5. AFL: NumToStr could crash if format parameter was greater than 127. Fixed. Now an error message is displayed when format parameter is too large
  6. AFL: NumToStr now supports formatDateTimeISO
  7. AFL: StDev function added 3rd argument "Population = True", when Population is True it calculates population based stdev, otherwise sample based
  8. ASCII import: from version 6.11 importer always added new symbols even if $AUTOADD 0 was used. Fixed.
  9. UI: Charts window - an attempt to rename a file or directory to something that already exists is now prevented and results in error message box.
  10. UI: in 6.14 when New Analysis was switched to 'floating' mode, it could crash on attempt to run analysis. Fixed.
  11. UI: Quote editor - in single-symbol mode "ticker" field sometimes was not updated. Fixed.
  12. UI: Symbol->Quick Find menu command brings focus to Symbol's window search box. New installations use F3 key assignment for Quick Find. Old installations use old assignment (you can change F3 assignment in Tools->Customize->Keyboard)

CHANGES FOR VERSION 6.14.0 (as compared to 6.13.0)

  1. AFL: ParamDate() added support for format=2 to return datetime instead of datenum/string
  2. AFL: PercentRank function now accepts variable period (range)
  3. AFL: PriceVolDistribution crashed if startbar argument was negative. Fixed by implementing protection against negative bar indexes.
  4. AFL: PriceVolDistribution sometimes produced some random values in 6.13. Fixed.
  5. ASCII importer now supports microsecond resolution timestamps (HH:MM:SS.mmmuuu) where mmm - milliseconds 000..999, uuu - microseconds 000..999
  6. New Analysis: new feature a PAUSE button to temporarily pause/resume any running analysis. Note that already running threads are not interrupted, they are allowed to complete gracefully and then pause state is entered.
  7. UI: A warning message is displayed when user attempts to close AmiBroker while Analysis is in progress
  8. UI: QuoteEditor in some cases did not properly round fractional part of millisecond down to microsecond. Fixed
  9. UI: QuoteEditor: Edit fields for OHLC prices, Volume, OpenInt and Aux now check for proper entry as you type and display red background if entered string is not proper numer. Also those edit fields don't accept characters other than digits (0..9), decimal
  10. UI: Toolbar icons are set to "Large icons" mode automatically on HighDPI screens
  11. When broker.workspace file was corrupted or truncated, the file remained open which eventually prevented from writing it on close. Fixed.

CHANGES FOR VERSION 6.13.0 (as compared to 6.12.0)

  1. AFL Editor: calling SetForeign thousands of times followed by RestorePriceArrays() could cause exception during code verify when number of symbols exceeded cache size. Fixed.
  2. AFL Editor: changes made in 6.11 to the way how automatic names for new formulas are assigned have been removed and replaced by new method that is faster and more reliable.
  3. AFL Editor: if clipboard is locked by another application the editor would retry opening clipboard upto 8 times before giving up
  4. AFL Editor: when formula was open cursor was located at the end. Now it is located at the top.
  5. AFL: GfxSetCoordsMode( mode ) accepts now four different modes
  6. AFL: MA function made upto 2 times faster, StDev function made 20% faster, Correlation made 40% faster
  7. AFL: NormDist( x, mean = 0, sigma = 1, cumulative = True ) function. Implements hi-precision algorithm.
  8. AFL: PriceVolDistribution( priceH, priceL, vol, bins, absolute = False, startbar = 0, endbar = -1 )
  9. AFL: 64-bit version AFL Correlation() produced slightly different values (+/-0.00001 typ) than 32-bit version due to compiler differences. Now 64-bit version produces same values as produced by all 32-bit versions.
  10. Charting: new feature - Snap to Tick grid. Snap drawing tool end points to TickSize-spaced grid (if TickSize > 0 for given symbol)
  11. Plugin loading routine displays a message box when plugins with incorrect bitness are found
  12. Plugin loading routine writes detailed error message to the broker.log in case of problem of DLL loading (must enable plugin log to use this feature)
  13. When drawn study is being modified, Y distance shown in the status bar accounts for activated snap-to-price and/or snap-to-tick mode now.

CHANGES FOR VERSION 6.12.0 (as compared to 6.11.0)

  1. AFL: new function GfxDrawImage( "filename", x, y )
  2. AFL: new function CumProd( factor ) - cumulative product of array elements
  3. AFL: new function Prod( array, range ) - cumulative product of array elements over specified number of bars (range)
  4. AFL: new function ProdSince( condition, array ) - cumulative product of array elements since condition is met
  5. AFL: new function VoiceSelect( num ) - select SAPI (Speech API) voice to be used with Say() function, num is a numerical index of installed voices. By default Windows comes with just one voice, but one can add countless 3rd party voices
  6. AFL: new function VoiceCount( ) - returns number of available SAPI (Speech API) voices - to be used with Say() command
  7. AFL: StaticVarAdd with non-array input produced incorrect results. Fixed.
  8. UI: New Analysis: Alt+Enter shortcut added to bring up settings window
  9. UI: Quote Editor allows now immediate search for matching date - just type digits in format YYYYMMDD and list will automatically scroll and mark to quote that most closely matches entered date
  10. UI: Realtime quote window: a RMB context menu items are grayed when local data is used and an empty message is set to inform the user that he/she needs realtime data source to use this window
  11. UI: Symbol Information - date fields (like last split date, div date or delisting date) can now be cleared (select all and press DELETE) to set Empty/Null date
  12. UI: Symbols with COMMA (,) caused problems with multiple-selection operations. Now it is handled properly.

CHANGES FOR VERSION 6.11.0 (as compared to 6.10.0)

  1. AFL: added formatDateTimeISO for ISO formatting regardless of locale settings
  2. AFL: MxFromString was slow on very large matrices (>100000 cells) due to poor performance of strtod function from Microsoft C runtime. Now MxFromString does not use it and is even 1000 times faster on 100K+ cell matrices (5ms vs 5second)
  3. ASCII importer can now be even 20 times faster when importing NEW (non existing) data that were oddly sorted (like for example in reverse order - descending dates instead of ascending).
  4. ASCII importer is now twice as fast when updating already existing quotes thanks to using in-house code instead of msvcrt functions.
  5. Charting: Fibonacci maximum user-definable level increased to 9000% (from 1000%)
  6. Idle processing is forced now every 125 ms (instead of 250ms) in Analysis window to update UI components more frequently under heavy CPU load
  7. Ruin stop is identified by Short(ruin) / Sell(ruin) instead of Short(6) / Sell(6)
  8. Startup splash screen is displayed a little sooner now and some pre-loading of editor components is done at start to save time to open editor later
  9. When there were thousands of files in "Formulas" folder opening editor for the first time could take some time. Now this time is significantly reduced.

KNOWN ISSUES:

  1. None

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

AmiBroker 6.17.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.17.0) of AmiBroker has just been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6170beta.exe
(2 250 664 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6170x64.exe
(10 456 400 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 October 5, 2014. 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.

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

CHANGES FOR VERSION 6.17.0 (as compared to 6.16.0)

  1. New Batch processor - allows to define sequences of scans/explorations/backtests/optimizations using different project files that are then run automatically. Detailed instructions on how to use Batch window are here http://www.amibroker.com/guide/h_batch.html
  2. AFL: Changed default number formatting string from "%g" to "%.7g" (so 7 significant digits are now displayed instead of 6)
  3. AFL: new function GetFnDataForeign( "field", "symbol" ) - the same as GetFnData but retrieves non-current symbol's data
  4. AFL: new function InternetClose( handle )
  5. AFL: new function InternetOpenURL( "url" )
  6. AFL: new function InternetReadString( handle ) - read a string (line) from internet resource
  7. AFL: printf/StrFormat/TRACEF support now "%s" (string specifier) and accept string arguments passed and made faster too
  8. Data: Gics.txt classification updated (thanks to PremiumData)
  9. OLE Automation: individual backtest is now supported via OLE automation
  10. OLE: Interval property of Document object is now writable so you can set chart interval from OLE
  11. Startup is made faster
  12. UI: AFL Editor MDI UI did not get immediate refresh after file name change when main window was in modal state due to the way how MFC works. Fixed.
  13. UI: File->Database Settings, default maximum "number of bars" increased to 1 million
  14. UI: New Analysis Settings submenu is now duplicated in main window Analysis->Options menu for easier access for beginners
  15. Watch window: added support for modulo (%) operator in watches

CHANGES FOR VERSION 6.16.0 (as compared to 6.15.0)

  1. New Analysis: implemented entirely new inter-thread communication method that does not strain main thread message queue. This gives tremendous improvement in responsivity of UI when Analysis is running
  2. New Analysis: removed forced message pumping when AFL finished as it was causing issues with proper MDI tab refreshes in Windows 10 while Analysis was running
  3. New Analysis: UI: added an option to keep using existing AFL file on opening APX project instead of asking the user what to do when differences are found between AFL file and content of APX project.
  4. AFL: changed the way how custom-backtest reports "stocknum". Previously Status("stocknum") was equal to zero on custom backtest phase and this may have caused parts that use if(Status("stocknum")==0) to be excecuted during custom backtest phase. Now custom backtest reports stocknum equal -1.
  5. AFL: DateTimeConvert supports now more formats, format = 6 - day, 7 - month, 8 - year, 9 - day of week, 10 - day of year, 11 - quarter (1..4)
  6. Charts: as apparently single pixel geometric pens are 8 times slower than DC pen, the optimization has been implemented that uses DC single pixel pen instead of geometric pen when bar width is 1, giving 8x faster 1-pixel bar charts
  7. Since 6.15 when $AUTOADD was set to 0 (zero), then symbols not existing in the database but present in the imported file were not logged into import.log as earlier. Fixed.
  8. UI: when AM/PM (12 hour format) was used in list views 12:00AM was interpreted as 12:00 (noon), instead of 00:00 (midnight). Fixed.
  9. When backtesting Short only strategy and using backtestRegular mode and using HoldMinBars > 1, a disabled stop could trigger if it was enabled in previous backtest run. Fixed.
  10. Support for Windows 98 and Millenium is dropped. If anybody needs that back please let us know (email to support)!

CHANGES FOR VERSION 6.15.0 (as compared to 6.14.0)

  1. AFL: DateTimeFormat( "formatstr", datetime ) - converts datetime to string according to user-specified format
  2. AFL: new function Kurtosis( ARRAY, range, population = True )
  3. AFL: new function Skewness( ARRAY, range, population = True )
  4. AFL: new modes added to DateTimeToStr() that use ISO regardless of regional settings mode = 3 (iso date and time YYYY-MM-DD HH:MM:SS) HH:MM:SS part is only included for non-EOD records, 4 (iso date only YYYY-MM-DD), 5 (iso time only HH:MM:SS)
  5. AFL: NumToStr could crash if format parameter was greater than 127. Fixed. Now an error message is displayed when format parameter is too large
  6. AFL: NumToStr now supports formatDateTimeISO
  7. AFL: StDev function added 3rd argument "Population = True", when Population is True it calculates population based stdev, otherwise sample based
  8. ASCII import: from version 6.11 importer always added new symbols even if $AUTOADD 0 was used. Fixed.
  9. UI: Charts window - an attempt to rename a file or directory to something that already exists is now prevented and results in error message box.
  10. UI: in 6.14 when New Analysis was switched to 'floating' mode, it could crash on attempt to run analysis. Fixed.
  11. UI: Quote editor - in single-symbol mode "ticker" field sometimes was not updated. Fixed.
  12. UI: Symbol->Quick Find menu command brings focus to Symbol's window search box. New installations use F3 key assignment for Quick Find. Old installations use old assignment (you can change F3 assignment in Tools->Customize->Keyboard)

CHANGES FOR VERSION 6.14.0 (as compared to 6.13.0)

  1. AFL: ParamDate() added support for format=2 to return datetime instead of datenum/string
  2. AFL: PercentRank function now accepts variable period (range)
  3. AFL: PriceVolDistribution crashed if startbar argument was negative. Fixed by implementing protection against negative bar indexes.
  4. AFL: PriceVolDistribution sometimes produced some random values in 6.13. Fixed.
  5. ASCII importer now supports microsecond resolution timestamps (HH:MM:SS.mmmuuu) where mmm - milliseconds 000..999, uuu - microseconds 000..999
  6. New Analysis: new feature a PAUSE button to temporarily pause/resume any running analysis. Note that already running threads are not interrupted, they are allowed to complete gracefully and then pause state is entered.
  7. UI: A warning message is displayed when user attempts to close AmiBroker while Analysis is in progress
  8. UI: QuoteEditor in some cases did not properly round fractional part of millisecond down to microsecond. Fixed
  9. UI: QuoteEditor: Edit fields for OHLC prices, Volume, OpenInt and Aux now check for proper entry as you type and display red background if entered string is not proper numer. Also those edit fields don't accept characters other than digits (0..9), decimal
  10. UI: Toolbar icons are set to "Large icons" mode automatically on HighDPI screens
  11. When broker.workspace file was corrupted or truncated, the file remained open which eventually prevented from writing it on close. Fixed.

CHANGES FOR VERSION 6.13.0 (as compared to 6.12.0)

  1. AFL Editor: calling SetForeign thousands of times followed by RestorePriceArrays() could cause exception during code verify when number of symbols exceeded cache size. Fixed.
  2. AFL Editor: changes made in 6.11 to the way how automatic names for new formulas are assigned have been removed and replaced by new method that is faster and more reliable.
  3. AFL Editor: if clipboard is locked by another application the editor would retry opening clipboard upto 8 times before giving up
  4. AFL Editor: when formula was open cursor was located at the end. Now it is located at the top.
  5. AFL: GfxSetCoordsMode( mode ) accepts now four different modes
  6. AFL: MA function made upto 2 times faster, StDev function made 20% faster, Correlation made 40% faster
  7. AFL: NormDist( x, mean = 0, sigma = 1, cumulative = True ) function. Implements hi-precision algorithm.
  8. AFL: PriceVolDistribution( priceH, priceL, vol, bins, absolute = False, startbar = 0, endbar = -1 )
  9. AFL: 64-bit version AFL Correlation() produced slightly different values (+/-0.00001 typ) than 32-bit version due to compiler differences. Now 64-bit version produces same values as produced by all 32-bit versions.
  10. Charting: new feature - Snap to Tick grid. Snap drawing tool end points to TickSize-spaced grid (if TickSize > 0 for given symbol)
  11. Plugin loading routine displays a message box when plugins with incorrect bitness are found
  12. Plugin loading routine writes detailed error message to the broker.log in case of problem of DLL loading (must enable plugin log to use this feature)
  13. When drawn study is being modified, Y distance shown in the status bar accounts for activated snap-to-price and/or snap-to-tick mode now.

CHANGES FOR VERSION 6.12.0 (as compared to 6.11.0)

  1. AFL: new function GfxDrawImage( "filename", x, y )
  2. AFL: new function CumProd( factor ) - cumulative product of array elements
  3. AFL: new function Prod( array, range ) - cumulative product of array elements over specified number of bars (range)
  4. AFL: new function ProdSince( condition, array ) - cumulative product of array elements since condition is met
  5. AFL: new function VoiceSelect( num ) - select SAPI (Speech API) voice to be used with Say() function, num is a numerical index of installed voices. By default Windows comes with just one voice, but one can add countless 3rd party voices
  6. AFL: new function VoiceCount( ) - returns number of available SAPI (Speech API) voices - to be used with Say() command
  7. AFL: StaticVarAdd with non-array input produced incorrect results. Fixed.
  8. UI: New Analysis: Alt+Enter shortcut added to bring up settings window
  9. UI: Quote Editor allows now immediate search for matching date - just type digits in format YYYYMMDD and list will automatically scroll and mark to quote that most closely matches entered date
  10. UI: Realtime quote window: a RMB context menu items are grayed when local data is used and an empty message is set to inform the user that he/she needs realtime data source to use this window
  11. UI: Symbol Information - date fields (like last split date, div date or delisting date) can now be cleared (select all and press DELETE) to set Empty/Null date
  12. UI: Symbols with COMMA (,) caused problems with multiple-selection operations. Now it is handled properly.

CHANGES FOR VERSION 6.11.0 (as compared to 6.10.0)

  1. AFL: added formatDateTimeISO for ISO formatting regardless of locale settings
  2. AFL: MxFromString was slow on very large matrices (>100000 cells) due to poor performance of strtod function from Microsoft C runtime. Now MxFromString does not use it and is even 1000 times faster on 100K+ cell matrices (5ms vs 5second)
  3. ASCII importer can now be even 20 times faster when importing NEW (non existing) data that were oddly sorted (like for example in reverse order - descending dates instead of ascending).
  4. ASCII importer is now twice as fast when updating already existing quotes thanks to using in-house code instead of msvcrt functions.
  5. Charting: Fibonacci maximum user-definable level increased to 9000% (from 1000%)
  6. Idle processing is forced now every 125 ms (instead of 250ms) in Analysis window to update UI components more frequently under heavy CPU load
  7. Ruin stop is identified by Short(ruin) / Sell(ruin) instead of Short(6) / Sell(6)
  8. Startup splash screen is displayed a little sooner now and some pre-loading of editor components is done at start to save time to open editor later
  9. When there were thousands of files in "Formulas" folder opening editor for the first time could take some time. Now this time is significantly reduced.

KNOWN ISSUES:

  1. None

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

Medved Trader data plugin

A data plugin for Medved Trader has been released. You can download it from here:

http://www.amibroker.com/bin/MT.dll

This plugin requires 32-bit version of AmiBroker.

To install, close any running AmiBroker instance and copy the DLL to "Plugins" subfolder.

Note this plugin is basically the same as Quote Tracker plugin but is made compatible with Medved Trader (due to changed way to detect if Medved Trader is running as compared with Quote Tracker).

Note that HTTP API in Medved Trader is not enabled by default. You need to enable it yourself, from Settings->Application Settings in Medved Trader as shown below:

mtsettings

« Previous PageNext Page »