amibroker

HomeDevLog

AmiQuote 4.01 released

A new public version of AmiQuote 4.01 is released now.

UPDATE: Links removed. Use 4.02 instead.

NOTE: 64-bit version of AmiQuote now requires Microsoft Visual C++ 2017 runtime. You may need to download the runtime separately and install it, if you are installing AmiQuote stand-alone (without AmiBroker 6.30 64-bit or higher already installed). If you already have AmiBroker 6.30 64-bit you don't need to do anything.

CHANGES FOR VERSION 4.01 (as compared to version 3.33)

  1. Fixed Yahoo Fundamental Extra after web site change

CHANGES FOR VERSION 4.00 (as compared to version 3.33)

A new Generation of AmiQuote, now allows User-definable data sources for complete freedom of choice and quick adoption to data sources that appear on the web as well as existing sources changing their API:

  1. UI: New top-level menu: Data sources: New/Edit/Delete/Import/Export
  2. UI: New Data source creation/editing dialog allowing definition of user-defined sources
  3. UI: Export and Import of Data source definitions allowing easy sharing of definitions between users
  4. Removed defunct Google Finance built-in source
  5. Removed BarChart.com built-in source (it can re-added as user-defined)
  6. Added example importable data source definitions in "DataSources" folder (AlphaVantage, Tiingo Intraday IEX and more)

Full documentation on new features is included in the AmiQuote Read Me.

INSTALLATION INSTRUCTIONS:
Precise instructions are here: http://www.amibroker.com/kb/2017/05/18/how-to-install-amiquote-3-14-correctly/

TIINGO and STOOQ usage instructions
Detailed procedure how to configure AmiQuote with TIINGO is here
http://forum.amibroker.com/t/amiquote-3-20-is-released-now/1071/2

TROUBLESHOOTING:

  1. If you are getting "Failed to update registry, use REGEDIT" message, then you need to run AmiQuote just once with administrator rights - to do so click on AmiQuote icon with right mouse button and select "Run As Administrator". Do this ONCE. Don't run all the time under "admin" rights because automatic import won't work.
  2. If you are not able to download more than 2 years worth of data it means you entered too early "From" date. For example if you enter 1900 as "from" date you won't get more than recent 2 years. But if you enter more resonable starting date such as year 2000, then you will be able to download 17 years worth of data
  3. If it still does not work - you did something wrong. The program works fine, as long above steps are PRECISELY done. Rinse and repeat until it clicks.

IMPORTANT:

AmiQuote is nothing but specialized web browser/downloader. You are using 3rd party web pages/services (Yahoo/MSN/Google/Finam) available to the public and AmiQuote acts like Internet Explorer or Firefox. The availability of data/web pages depends on those 3rd parties and may change in the future. The financial data downloaded from public web sites such as Yahoo Finance/MSN/Google/Finam are for personal use only. Consult 3rd parties' Terms of Service for details. For actual trading we recommend using paid data sources that provide higher data quality and reliability.

AmiQuote 4.00 released

A new public version of AmiQuote 4.00 is released now.

Direct links:

http://www.amibroker.com/bin/aq4000.exe (234KB) – 32 bit version
http://www.amibroker.com/bin/aq4000x64.exe (289KB) – 64 bit version

NOTE: 64-bit version of AmiQuote now requires Microsoft Visual C++ 2017 runtime. You may need to download the runtime separately and install it, if you are installing AmiQuote stand-alone (without AmiBroker 6.30 64-bit or higher already installed). If you already have AmiBroker 6.30 64-bit you don't need to do anything.

CHANGES FOR VERSION 4.00 (as compared to version 3.33)

A new Generation of AmiQuote, now allows User-definable data sources for complete freedom of choice and quick adoption to data sources that appear on the web as well as existing sources changing their API:

  1. UI: New top-level menu: Data sources: New/Edit/Delete/Import/Export
  2. UI: New Data source creation/editing dialog allowing definition of user-defined sources
  3. UI: Export and Import of Data source definitions allowing easy sharing of definitions between users
  4. Removed defunct Google Finance built-in source
  5. Removed BarChart.com built-in source (it can re-added as user-defined)
  6. Added example importable data source definitions in "DataSources" folder (AlphaVantage, Tiingo Intraday IEX and more)

Full documentation on new features is included in the AmiQuote Read Me.

INSTALLATION INSTRUCTIONS:
Precise instructions are here: http://www.amibroker.com/kb/2017/05/18/how-to-install-amiquote-3-14-correctly/

TIINGO and STOOQ usage instructions
Detailed procedure how to configure AmiQuote with TIINGO is here
http://forum.amibroker.com/t/amiquote-3-20-is-released-now/1071/2

TROUBLESHOOTING:

  1. If you are getting "Failed to update registry, use REGEDIT" message, then you need to run AmiQuote just once with administrator rights - to do so click on AmiQuote icon with right mouse button and select "Run As Administrator". Do this ONCE. Don't run all the time under "admin" rights because automatic import won't work.
  2. If you are not able to download more than 2 years worth of data it means you entered too early "From" date. For example if you enter 1900 as "from" date you won't get more than recent 2 years. But if you enter more resonable starting date such as year 2000, then you will be able to download 17 years worth of data
  3. If it still does not work - you did something wrong. The program works fine, as long above steps are PRECISELY done. Rinse and repeat until it clicks.

IMPORTANT:

AmiQuote is nothing but specialized web browser/downloader. You are using 3rd party web pages/services (Yahoo/MSN/Google/Finam) available to the public and AmiQuote acts like Internet Explorer or Firefox. The availability of data/web pages depends on those 3rd parties and may change in the future. The financial data downloaded from public web sites such as Yahoo Finance/MSN/Google/Finam are for personal use only. Consult 3rd parties' Terms of Service for details. For actual trading we recommend using paid data sources that provide higher data quality and reliability.

AmiQuote 3.33 released

A new public version of AmiQuote 3.33 is released now.

Direct links:
http://www.amibroker.com/bin/aq3330.exe (129KB) – 32 bit version
http://www.amibroker.com/bin/aq3330x64.exe (177KB) – 64 bit version

NOTE: 64-bit version of AmiQuote now requires Microsoft Visual C++ 2017 runtime. You may need to download the runtime separately and install it, if you are installing AmiQuote stand-alone (without AmiBroker 6.28 64-bit or higher already installed). If you already have AmiBroker 6.28+ 64-bit you don't need to do anything.

CHANGES FOR VERSION 3.33 (as compared to version 3.31)

  1. Fixed Stooq.pl after site change

CHANGES FOR VERSION 3.31 (as compared to version 3.30)

  1. Added support for BarChart.com (OnDemand Bar Chart free quotes) - free US stocks, futures intraday (one month) and EOD quotes. REQUIRES free Barchart API key signup: https://www.barchart.com/ondemand/free-market-data-api to be entered in the Tools->Settings. Free account allows to download upto 150 symbols per day
  2. Now defunct Google Intraday option removed

INSTALLATION INSTRUCTIONS:
Precise instructions are here: http://www.amibroker.com/kb/2017/05/18/how-to-install-amiquote-3-14-correctly/

TIINGO and STOOQ usage instructions
Detailed procedure how to configure AmiQuote with TIINGO is here
http://forum.amibroker.com/t/amiquote-3-20-is-released-now/1071/2

TROUBLESHOOTING:

  1. If you are getting "Failed to update registry, use REGEDIT" message, then you need to run AmiQuote just once with administrator rights - to do so click on AmiQuote icon with right mouse button and select "Run As Administrator". Do this ONCE. Don't run all the time under "admin" rights because automatic import won't work.
  2. If you are not able to download more than 2 years worth of data it means you entered too early "From" date. For example if you enter 1900 as "from" date you won't get more than recent 2 years. But if you enter more resonable starting date such as year 2000, then you will be able to download 17 years worth of data
  3. If it still does not work - you did something wrong. The program works fine, as long above steps are PRECISELY done. Rinse and repeat until it clicks.

IMPORTANT:

AmiQuote is nothing but specialized web browser/downloader. You are using 3rd party web pages/services (Yahoo/MSN/Google/Finam) available to the public and AmiQuote acts like Internet Explorer or Firefox. The availability of data/web pages depends on those 3rd parties and may change in the future. The financial data downloaded from public web sites such as Yahoo Finance/MSN/Google/Finam are for personal use only. Consult 3rd parties' Terms of Service for details. For actual trading we recommend using paid data sources that provide higher data quality and reliability.

AmiBroker 6.30.5 Official release

Stability: Rank 5 - Official release version

A new version (6.30.5) of AmiBroker, with lots of new functionality has been released.
See what's new in 6.30?

This is basically the same version as 6.30.0 Release Candidate with some updates and fixes listed below.

32-bit version:
http://www.amibroker.com/members/bin/AmiBroker6305.exe
(10 269 056 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6305x64.exe
(10 987 368 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 14, 2017. 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

This is universal setup and can be used for both upgrades and new installations. Upgrades are automatically detected

FEATURE HIGHLIGHTS 6.30

The summary of changes in 6.30 is available here: see what's new in 6.30?

Listed below are only changes from 6.30.0 Release Candidate version.

CHANGES FOR VERSION 6.30.5 (as compared to 6.30.2)

  1. AFL Editor: encoding changed from UTF-8 back to ANSI to maintain backward compatibility with existing formulas using non-US characters without rewriting
  2. Windows 7: when error line was clicked and help file displayed Windows HELP window did not take focus properly. Fixed.
  3. New Warning 509 behaved like error (stopped optimization). Fixed.

CHANGES FOR VERSION 6.30.2 (as compared to 6.30.0)

  1. AFL Editor: @link command now works on single click (instead of double click)
  2. AFL Editor: multiple error messages per single code line are now differentiated and lead to different user guide pages when clicked
  3. AFL Editor: When mouse hovers over the error message the mouse cursor changes to "Hand" and the error message is clickable as normal "link" leading to users guide description of error message
  4. AFL: ApplyStop with ExitAtStop=2 parameter when used together with backtestRegular mode did not trigger stops in 6.25-6.30. Fixed.
  5. AFL: new function InternetPostRequest( url, data, flags = 0 ) - allows to make POST HTTP requests
  6. AFL: Now() function supports format = 11 - returns Unix timestamp (number of seconds since Jan 1, 1970)
  7. AFL: OscP/OscV could cause exception in unlikely event when entire Close or Volume array was filled by Null values. Fixed
  8. Docs: added detailed descriptions of Warnings 504, 505, 506, 507, 508 and 509, Errors 63, 64, 65, 66, 67, 68, 69, 70
  9. Docs: updated documentation on ApplyStop to include activationFloor
  10. Intraday date axis hours could show 24:00 when negative timeshifts were defined in the settings. Fixed
  11. Matrix variables that were passed to single-argument math functions (sqrt, exp) did not have their ref count updated correctly. Fixed.
  12. Plugins are now loaded from work_dir\Plugins if exe_dir\Plugins folder does not exist
  13. Pref: "Ask before closing indicator pane" is now turned on by default
  14. Pref: Misc/ Max Number of decimal places in titles and RT quote bumped o 7
  15. UI: In 64-bit version only the .AFL extension in the editor window caption was removed. Fixed.
  16. Web Research predefined profiles: removed "MarketWatch" because the site is not available anymore

KNOWN ISSUES:

  1. None

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

AmiBroker 6.30.0 Release Candidate

Stability: Rank 5 - Official release version

A new version (6.30.0) of AmiBroker, with lots of new functionality has been released.
See what's new in 6.30?

32-bit version:
http://www.amibroker.com/members/bin/AmiBroker6300.exe
(10 246 288 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6300x64.exe
(10 978 624 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 November 18, 2016. 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

This is universal setup and can be used for both upgrades and new installations. Upgrades are automatically detected

FEATURE HIGHLIGHTS 6.30

The summary of changes in 6.30 is available here: see what's new in 6.30?

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

CHANGES FOR VERSION 6.30.0 (as compared to 6.29.0)

  1. AFL: GfxSelectPen function - added support for geometric pens (including flat endcap)
  2. AFL: GuiEnable( id, enable ) - enables / disables GUI control. Disabled control can not be clicked and has "grayed" look
  3. AFL: GuiGetValue( id ) - gets the value of GUI control (for example slider position). For non-slider controls value is number representing control text converted to number)
  4. AFL: GuiSetValue( id, value ) - sets the value of GUI control (for example slider position). For non-slider control value will be converted to text and assigned as GuiSetText( id, NumToStr( value ) )
  5. AFL: GuiSetVisible( id, visible ) - shows/hides GUI control
  6. AFL: Hexadecimal numbers can be now written using 0x prefix (as in C/C++)
  7. AFL: In 6.29 GfxSelectPen function was not functioning without geometric style. Fixed.
  8. AFL: InternetOpenURL( url, flags = 0 )
  9. AFL: new function GuiSetRange( min, max, step, ticfreq ) - sets the min-max range of slider control
  10. AFL: new function GuiSlider( id, x, y, width, height, notifyflags ) - creates slider control
  11. AFL: new function remap( x, fromMin, fromMax, toMin, toMax ) - performs re-mapping from one range to another, works on scalars and arrays
  12. AFL: When OLEDATE type (read from OLE objects) is assigned to AFL variable it gets converted to string using ISO format (YYYY-MM-DD HH:MM:SS). Time part only appears for records within non-zero time component
  13. ASCII import: Aux1/2 fields can now be imported separately from two different files (combined) when using $HYBRID
  14. In 6.29 estimated number of optimization steps displayed in 'warning' in case of tiny (fractional) step increment may be lower than actual number of steps
  15. In 6.29, due to changes, some chart Gui* controls (owner draw) did not repaint on window resize. Fixed.
  16. UI: File->New Database-> Create button now recursively creates all missing directories if multiple nested non-existing dirs were typed in
  17. UI: new databases are now created in separate "databases" subfolder by default

CHANGES FOR VERSION 6.29.0 (as compared to 6.28.0)

  1. AFL: added GuiDateTime function
  2. AFL: Gui creation functions (GuiButton, GuiEdit, GuiDateTime and others) return guiNew (1) when control is newly created or guiExisting (2) when control already exists. This is useful for one-time initialization when control is being created.
  3. AFL: InternetSetAgent("agent") - new function to set user agent for InternetOpenURL
  4. AFL: new Error 70 - displayed on attempt yo use InternetSetAgent when it is already set or connection was already open
  5. Analysis: added Notice 802: Trade size limite of X% of entry bar volume has been hit N times.
  6. Charts: Vertical line (Y axis line) between chart area and Y axis scale is drawn with ZOrder = 0 instead of ZOrder = 128
  7. Charts: Y-axis scale for huge negative values (below minus 1 billion) was incorrect. Fixed
  8. File: Chart template, complete now also saves the content of files included using #include_once
  9. New Analysis: decreased number of cases when IEEE rounding of fractional steps result in one step less than naive expecation in optimization
  10. UI: 'Backtest settings' caption changed to 'Analysis Settings' and changed the layout of 'general' tab - data settings (that apply to everything mode) grouped separately from purely backtest settings
  11. UI: increased number of user-definable Tool window menu items to 20 (from 10)

CHANGES FOR VERSION 6.28.0 (as compared to 6.27.1)

  1. AFL: AddToComposite will issue error 69 if user passes field code other than "O", "H", "L", "C", "V", "I", "1", "2", or "X"
  2. AFL: another protection for users shooting themselves in the foot: AddToComposite will issue error 68 when user passes invalid symbol string (empty or with characters like comma or new line or tab)
  3. AFL: improved type checking for bad type of array arguments
  4. AFL: New warning 508 is displayed if same category type is used multiple times in the Filter settings window and formula calls GetOption("FilterInclude*") or GetOption("FilterExclude*). Code using such statements is incorrect for such filters.
  5. AFL: now you can pass references as arguments to built-in funcitons and they will be automatically dereferenced ("by value" sematics enforced)
  6. AFL: user-defined functions that return matrix reclaim memory faster than before to avoid large memory consumption on super-long loops calling them
  7. AFL: VarGet was not working properly with matrices on 64 bit version. Fixed.
  8. AQ: 3.29 - when current working directory is set incorrectly it sets it back to where it should be. Correct working dir is required for relative paths to work
  9. Backtest: interest earned on cash balances and charged on margin load is reported separately in backtest report now (if non-zero)
  10. Core: sizes of some hash tables increased to speed up lookups
  11. enable_static_decl created prefixes in original case (both upper and lowercase). Since StaticVar* functions always use lowercase names this made them unable to read declared statics other than all lowercase. Now declared variables are internally lowecase
  12. Gui control custom colors - defaults changed to use Windows default "hot" color (blue) for hover outline and (hover + selected) state is now drawn with hover border and text but 'selected' background
  13. GuiGetCheck returned 0 on owner draw toggle (custom colors) due to Windows limitation. Fixed.
  14. IB plugin: right mouse button click : Backfill Current was causing exception for symbols longer than 26 letters. Fixed. (Version 2.0.10)
  15. If user formula had run-time errors and produced zero trades the "Info" tab issued "Reporting has been turned off by SetOption" since there was no report generated but not because of option, but because of formula error. Fixed (the message is not displaye
  16. IQFeed: in mixed mode EOD data got preference if there is not enough room to fit all intraday and all eod in defined "number of bars"
  17. New Analysis: added 'notices' to Info tab that inform the user about potential problems and recommended actions. Currently one notice is displayed when user tries to use ranking or composites without enabling padding. Will add more notices in the future
  18. New Analysis: progress bar will not display "remaining time" until at least one step is completed. Also if remaing time is > 2 billion years it will display (unknown), and will report remaing time in million years if necessary (for example when user star
  19. Setup 64-bit: program and all plugins use newest compiler and newest VC++2017 runtime
  20. Setup 64-bit: activation key should work without installing VC2005 runtime
  21. UI: "OK" button appears on splash screen only if it does not auto-close

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.30.0 RC READ ME

AmiBroker 6.29.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.29.0) of AmiBroker, with lots of new AFL functionality has been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6290beta.exe
(2 371 136 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6290x64.exe
(10 683 768 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 August 24, 2016. 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.29

6.29 is focused on AFL and UI improvements. See CHANGE LOG for details.

FEATURE HIGHLIGHT 6.28

6.28 is focused on AFL improvements. See CHANGE LOG for details.

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.29.0 (as compared to 6.28.0)

  1. AFL: added GuiDateTime function
  2. AFL: Gui creation functions (GuiButton, GuiEdit, GuiDateTime and others) return guiNew (1) when control is newly created or guiExisting (2) when control already exists. This is useful for one-time initialization when control is being created.
  3. AFL: InternetSetAgent("agent") - new function to set user agent for InternetOpenURL
  4. AFL: new Error 70 - displayed on attempt yo use InternetSetAgent when it is already set or connection was already open
  5. Analysis: added Notice 802: Trade size limite of X% of entry bar volume has been hit N times.
  6. Charts: Vertical line (Y axis line) between chart area and Y axis scale is drawn with ZOrder = 0 instead of ZOrder = 128
  7. Charts: Y-axis scale for huge negative values (below minus 1 billion) was incorrect. Fixed
  8. File: Chart template, complete now also saves the content of files included using #include_once
  9. New Analysis: decreased number of cases when IEEE rounding of fractional steps result in one step less than naive expecation in optimization
  10. UI: 'Backtest settings' caption changed to 'Analysis Settings' and changed the layout of 'general' tab - data settings (that apply to everything mode) grouped separately from purely backtest settings
  11. UI: increased number of user-definable Tool window menu items to 20 (from 10)

CHANGES FOR VERSION 6.28.0 (as compared to 6.27.1)

  1. AFL: AddToComposite will issue error 69 if user passes field code other than "O", "H", "L", "C", "V", "I", "1", "2", or "X"
  2. AFL: another protection for users shooting themselves in the foot: AddToComposite will issue error 68 when user passes invalid symbol string (empty or with characters like comma or new line or tab)
  3. AFL: improved type checking for bad type of array arguments
  4. AFL: New warning 508 is displayed if same category type is used multiple times in the Filter settings window and formula calls GetOption("FilterInclude*") or GetOption("FilterExclude*). Code using such statements is incorrect for such filters.
  5. AFL: now you can pass references as arguments to built-in funcitons and they will be automatically dereferenced ("by value" sematics enforced)
  6. AFL: user-defined functions that return matrix reclaim memory faster than before to avoid large memory consumption on super-long loops calling them
  7. AFL: VarGet was not working properly with matrices on 64 bit version. Fixed.
  8. AQ: 3.29 - when current working directory is set incorrectly it sets it back to where it should be. Correct working dir is required for relative paths to work
  9. Backtest: interest earned on cash balances and charged on margin load is reported separately in backtest report now (if non-zero)
  10. Core: sizes of some hash tables increased to speed up lookups
  11. enable_static_decl created prefixes in original case (both upper and lowercase). Since StaticVar* functions always use lowercase names this made them unable to read declared statics other than all lowercase. Now declared variables are internally lowecase
  12. Gui control custom colors - defaults changed to use Windows default "hot" color (blue) for hover outline and (hover + selected) state is now drawn with hover border and text but 'selected' background
  13. GuiGetCheck returned 0 on owner draw toggle (custom colors) due to Windows limitation. Fixed.
  14. IB plugin: right mouse button click : Backfill Current was causing exception for symbols longer than 26 letters. Fixed. (Version 2.0.10)
  15. If user formula had run-time errors and produced zero trades the "Info" tab issued "Reporting has been turned off by SetOption" since there was no report generated but not because of option, but because of formula error. Fixed (the message is not displaye
  16. IQFeed: in mixed mode EOD data got preference if there is not enough room to fit all intraday and all eod in defined "number of bars"
  17. New Analysis: added 'notices' to Info tab that inform the user about potential problems and recommended actions. Currently one notice is displayed when user tries to use ranking or composites without enabling padding. Will add more notices in the future
  18. New Analysis: progress bar will not display "remaining time" until at least one step is completed. Also if remaing time is > 2 billion years it will display (unknown), and will report remaing time in million years if necessary (for example when user star
  19. Setup 64-bit: program and all plugins use newest compiler and newest VC++2017 runtime
  20. Setup 64-bit: activation key should work without installing VC2005 runtime
  21. UI: "OK" button appears on splash screen only if it does not auto-close

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.29.0 BETA READ ME

AmiQuote 3.30 released

A new public version of AmiQuote 3.30 is released now.

This version fixes Google EOD source, adds new intervals to Google Intraday and more.

AmiQuote 3.30 can be downloaded from:

http://www.amibroker.com/bin/aq3300.exe (128KB) - 32 bit version
http://www.amibroker.com/bin/aq3300x64.exe (179KB) - 64 bit version

NOTE: 64-bit version of AmiQuote now requires Microsoft Visual C++ 2017 runtime. You may need to download the runtime separately and install it, if you are installing AmiQuote stand-alone (without AmiBroker 6.28 64-bit or higher already installed). If you already have AmiBroker 6.28 64-bit you don't need to do anything.

IMPORTANT! Trial version has download limit of 10 symbols at a time

The upgrade is free for all previously registered AmiQuote users.

Since some people complain that the functionality is no longer free - if you do not want to pay a penny for the program that saves hours of your time - please download your data manually by clicking on Yahoo pages using browser of your choice. It is up to you. Developer time does not cost zero and we do not sell advertisements, so we expect to get paid as you do in 'normal' life. AmiQuote was ALWAYS paid program. The functionality provided for free was for EVALUATION purposes only and you were supposed to pay for the program if you used it everyday. It was always so.

INSTALLATION INSTRUCTIONS:
Precise instructions are here: http://www.amibroker.com/kb/2017/05/18/how-to-install-amiquote-3-14-correctly/

CHANGES FOR VERSION 3.30 (as compared to version 3.28)

  1. Google Intraday downloads now support new intervals 10, 30 and 60 minutes with backfill length upto 1 year (for 30/60 minute interval)
  2. Google EOD downloads are back again. Market coverage is greater than before and supports EXCHANGE:SYMBOL notation for non-US markets (same as for Google Intraday)
  3. Yahoo Fundamental Extra now downloads full name too
  4. Removed unused intervals (3-minute, 120-minute)
  5. Now defunct Yahoo Fund. Basic option removed

TIINGO and STOOQ usage instructions
Detailed procedure how to configure AmiQuote with TIINGO is here
http://forum.amibroker.com/t/amiquote-3-20-is-released-now/1071/2

TROUBLESHOOTING:

  1. If you are getting "Failed to update registry, use REGEDIT" message, then you need to run AmiQuote just once with administrator rights - to do so click on AmiQuote icon with right mouse button and select "Run As Administrator". Do this ONCE. Don't run all the time under "admin" rights because automatic import won't work.
  2. If you are not able to download more than 2 years worth of data it means you entered too early "From" date. For example if you enter 1900 as "from" date you won't get more than recent 2 years. But if you enter more resonable starting date such as year 2000, then you will be able to download 17 years worth of data
  3. If it still does not work - you did something wrong. The program works fine, as long above steps are PRECISELY done. Rinse and repeat until it clicks.

IMPORTANT:

AmiQuote is nothing but specialized web browser/downloader. You are using 3rd party web pages/services (Yahoo/MSN/Google/Finam) available to the public and AmiQuote acts like Internet Explorer or Firefox. The availability of data/web pages depends on those 3rd parties and may change in the future. The financial data downloaded from public web sites such as Yahoo Finance/MSN/Google/Finam are for personal use only. Consult 3rd parties' Terms of Service for details. For actual trading we recommend using paid data sources that provide higher data quality and reliability.

AmiBroker 6.28.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.28.0) of AmiBroker, with lots of new AFL functionality has been released.

32-bit version:
http://www.amibroker.com/members/bin/ab6280beta.exe
(2 349 088 bytes)

64-bit version:
http://www.amibroker.com/members/bin/AmiBroker6280x64.exe
(10 687 792 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 February 17, 2016. 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.28

6.28 is focused on AFL improvements. See CHANGE LOG for details.

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.28.0 (as compared to 6.27.1)

  1. AFL: AddToComposite will issue error 69 if user passes field code other than "O", "H", "L", "C", "V", "I", "1", "2", or "X"
  2. AFL: another protection for users shooting themselves in the foot: AddToComposite will issue error 68 when user passes invalid symbol string (empty or with characters like comma or new line or tab)
  3. AFL: improved type checking for bad type of array arguments
  4. AFL: New warning 508 is displayed if same category type is used multiple times in the Filter settings window and formula calls GetOption("FilterInclude*") or GetOption("FilterExclude*). Code using such statements is incorrect for such filters.
  5. AFL: now you can pass references as arguments to built-in funcitons and they will be automatically dereferenced ("by value" sematics enforced)
  6. AFL: user-defined functions that return matrix reclaim memory faster than before to avoid large memory consumption on super-long loops calling them
  7. AFL: VarGet was not working properly with matrices on 64 bit version. Fixed.
  8. AQ: 3.29 - when current working directory is set incorrectly it sets it back to where it should be. Correct working dir is required for relative paths to work
  9. Backtest: interest earned on cash balances and charged on margin load is reported separately in backtest report now (if non-zero)
  10. Core: sizes of some hash tables increased to speed up lookups
  11. enable_static_decl created prefixes in original case (both upper and lowercase). Since StaticVar* functions always use lowercase names this made them unable to read declared statics other than all lowercase. Now declared variables are internally lowecase
  12. Gui control custom colors - defaults changed to use Windows default "hot" color (blue) for hover outline and (hover + selected) state is now drawn with hover border and text but 'selected' background
  13. GuiGetCheck returned 0 on owner draw toggle (custom colors) due to Windows limitation. Fixed.
  14. IB plugin: right mouse button click : Backfill Current was causing exception for symbols longer than 26 letters. Fixed. (Version 2.0.10)
  15. If user formula had run-time errors and produced zero trades the "Info" tab issued "Reporting has been turned off by SetOption" since there was no report generated but not because of option, but because of formula error. Fixed (the message is not displaye
  16. IQFeed: in mixed mode EOD data got preference if there is not enough room to fit all intraday and all eod in defined "number of bars"
  17. New Analysis: added 'notices' to Info tab that inform the user about potential problems and recommended actions. Currently one notice is displayed when user tries to use ranking or composites without enabling padding. Will add more notices in the future
  18. New Analysis: progress bar will not display "remaining time" until at least one step is completed. Also if remaing time is > 2 billion years it will display (unknown), and will report remaing time in million years if necessary (for example when user star
  19. Setup 64-bit: program and all plugins use newest compiler and newest VC++2017 runtime
  20. Setup 64-bit: activation key should work without installing VC2005 runtime
  21. UI: "OK" button appears on splash screen only if it does not auto-close

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.28.0 BETA READ ME

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

AmiQuote 3.27 is released now

A new public version of AmiQuote 3.27 is released now.

This version fixes Yahoo Fundamental Extra download after Yahoo changes, improves QuanDL.com support and fixes minor errors.

AmiQuote 3.27 can be downloaded from:

http://www.amibroker.com/bin/aq3270.exe (128KB) - 32 bit version
http://www.amibroker.com/bin/aq3270x64.exe (155KB) - 64 bit version

IMPORTANT! Trial version has download limit of 10 symbols at a time

The upgrade is free for all previously registered AmiQuote users.

Since some people complain that the functionality is no longer free - if you do not want to pay a penny for the program that saves hours of your time - please download your data manually by clicking on Yahoo pages using browser of your choice. It is up to you. Developer time does not cost zero and we do not sell advertisements, so we expect to get paid as you do in 'normal' life. AmiQuote was ALWAYS paid program. The functionality provided for free was for EVALUATION purposes only and you were supposed to pay for the program if you used it everyday. It was always so.

INSTALLATION INSTRUCTIONS:
Precise instructions are here: http://www.amibroker.com/kb/2017/05/18/how-to-install-amiquote-3-14-correctly/

TIINGO and STOOQ usage instructions
Detailed procedure how to configure AmiQuote with TIINGO is here
http://forum.amibroker.com/t/amiquote-3-20-is-released-now/1071/2

CHANGES FOR VERSION 3.27 (as compared to version 3.25)

  1. QuanDL.com downloads from sources other than EOD can now be automatically imported provided that correct aqq_src.format file is present where src is the name of QuanDL source such as CHRIS source requires aqq_chris.format for auto-import
  2. 64-bit version displayed "unspecified error" when trying to "auto-update" database that had just symbol without ANY quotes. Fixed.
  3. Yahoo "Statistics" page was changed on Oct 5 breaking "Fundamental Extra" download. Fixed.

CHANGES FOR VERSION 3.25 (as compared to version 3.23)

  1. Fixed Google Intraday download (due to changes Google made in the URL)
  2. Window position and size is now stored between session
  3. Fixed Yahoo Fundamental Extra download after Yahoo web site change
  4. AmiQuote now displays summary in the status bar after download is finished.
  5. Better error reporting in case of broken internet connectivity

CHANGES FOR VERSION 3.23 (as compared to version 3.22)

  1. Tiingo.com CSV downloads implemented: work 4x faster than JSon and deliver both adjusted and unadjusted prices (unadjusted close is fed into Aux1)
  2. Yahoo download limit Wait&Continue dialog implemented to handle situation when user hits Yahoo limit. The dialog waits user-specified time and continues download
  3. AmiQuote now clears Yahoo cookies at the beginning of download
  4. List view is color coded depending on item status
  5. List view does not flicker anymore (double buffering implemented)
  6. Status bar now includes number of failed (wrong) symbols during download
  7. Auto-scroll implemented (list view scrolls automatically as download progresses to subsequent symbols)
  8. Mouse cursor does not flicker when importing

CHANGES FOR VERSION 3.22 (as compared to version 3.21)

  1. Sometimes Yahoo created incorrect cookie. Workaround implemented.
  2. Service status bar adjust its height for HighDPI screens
  3. Large toolbar icon set implemented for HighDPI screens
  4. Yahoo data source errors are now prominently displayed (previously they were only visible in downloaded file)
  5. AmiQuote now checks AmiBroker's codes returned by Import for better import error handling
  6. Yahoo changed column layout so aqh.format file needed an update

CHANGES FOR VERSION 3.21 (as compared to version 3.20)

  1. Finam source might cause crash or not work in 3.20. Fixed
  2. Stooq source now allows date range selection so downloads eat less bandwidth and are faster
  3. Other minor improvements

CHANGES FOR VERSION 3.20 (as compared to version 3.15)

  1. New data source added: Tiingo.com - US stocks and mutual funds, properly adjusted for splits and dividends (Auth token required, Basic account limited, all symbols require $10/month subscription)
  2. New data source added: Stooq.pl - supports Polish stocks (Warsaw stock exchange), European Stocks, major US stocks, currencies, indices)
  3. Removed inoperable data sources: MSN and Yahoo Intraday
  4. Much more currency pairs (87 pairs) supported by Finam source
  5. Fixed Finam support (it was broken due to changes on the site)
  6. Implemented faster way to setup Yahoo finance connection (it should work on older OSes too, without reliance on installed version of IE)
  7. UI: Added service status info bar, so AmiQuote can quickly announce problems with certain services without users flooding support with same issues
  8. Fixed random crash occuring when Yahoo page was holding some Flash content
  9. UI: added information about bitness (32bit vs 64bit) to Help->About box
  10. Trial version now has 10 symbol limit on all data sources. To use more symbols license purchase is required

CHANGES FOR VERSION 3.15 (as compared to version 3.14)

  1. Added checks for Internet Explorer 10 or higher installation (required by Yahoo Historical downloads)
  2. Added checks for "From" date earlier than 1970 (Yahoo historical does not support earlier dates now)
  3. Updated Quandl downloader to use EOD source for US stocks (instead of old "WIKI")
  4. Quandl downloader now supports use of other sources than EOD. You can use symbols with slash that refer to other Quandl databases (like SCF/SHFE_ZN2_OR) but keep in mind that other sources than EOD usually have different layout of downloaded data and you would need to import those data manually (at least until some universal method is found)
  5. Other minor changes/fixes

CHANGES FOR VERSION 3.14 (as compared to version 3.12)

  1. Yahoo changed the format of Yahoo Historical download. Incompatibility is fixed now.

CHANGES FOR VERSION 3.13 (as compared to version 3.12)

  1. Yahoo changed the format of Key Statistics / Fundamental Extended download. Incompatibility is fixed now.

CHANGES FOR VERSION 3.12 (as compared to version 3.10)

  1. Yahoo changed the format slightly causing problems with Yahoo Fundamental Basic download. Incompatibility is fixed now.

CHANGES FOR VERSION 3.10 (as compared to version 3.04)

  1. Added new data source: Quandl.com (US stocks, EOD data).
  2. Removed code and settings for Lycos/Quote.com (taken over by eSignal and shut down) - no longer available

TROUBLESHOOTING:

  1. If you are getting "Failed to update registry, use REGEDIT" message, then you need to run AmiQuote just once with administrator rights - to do so click on AmiQuote icon with right mouse button and select "Run As Administrator". Do this ONCE. Don't run all the time under "admin" rights because automatic import won't work.
  2. If you are not able to download more than 2 years worth of data it means you entered too early "From" date. For example if you enter 1900 as "from" date you won't get more than recent 2 years. But if you enter more resonable starting date such as year 2000, then you will be able to download 17 years worth of data
  3. If it still does not work - you did something wrong. The program works fine, as long above steps are PRECISELY done. Rinse and repeat until it clicks.

IMPORTANT:

AmiQuote is nothing but specialized web browser/downloader. You are using 3rd party web pages/services (Yahoo/MSN/Google/Finam) available to the public and AmiQuote acts like Internet Explorer or Firefox. The availability of data/web pages depends on those 3rd parties and may change in the future. The financial data downloaded from public web sites such as Yahoo Finance/MSN/Google/Finam are for personal use only. Consult 3rd parties' Terms of Service for details. For actual trading we recommend using paid data sources that provide higher data quality and reliability.

« Previous PageNext Page »