AmiQuote 4.30 released

A new public version of AmiQuote 4.30 is released now.

INSTALLATION:
If you are using AmiBroker 7.00 you can install AmiQuote update using Help->Check for and Install updates menu

To install AmiQuote 4.30 in all other cases, please download and run AmiInstaller from:
https://www.amibroker.com/bin/AmiInstaller.exe
and follow on-screen directions

NOTE: 64-bit version of AmiQuote now requires Microsoft Visual C++ 2022 runtime. The setup program should detect missing runtime and download it for you. If it doesn't you may need to download the runtime separately and install it.

OS REQUIREMENTS: Works on Windows 11, Windows 10, as well as Windows 8.1 with TLS1.2 and Windows 7 with TLS 1.2

CHANGES FOR VERSION 4.30 (as compared to version 4.19)

  1. Added Warsaw Stock Exchange symbol list in FIle->Download ticker lists

  2. Added optional 'full name' column and ability to import full name if it is present in the ticker symbol list - tab separated (Symbol\tFullName)

  3. Added decompression support to downloader (gzip) - receiving compressed data needs proper Accept-Encoding extra header

  4. Added optional (not present by default) AutoSaveDatabase registry key (DWORD) that one can use to prevent database saving after import (set it 0 to disable auto-save). Majority of user should not create any registry keys manually as they are managed by AmiQuote
    The key is: HKEY_CURRENT_USER\Software\TJP\Quote\Settings\AutoSaveDatabase
    DWORD (32-bit) value: 0 - means disable, 1 - means enable, if key is not present it defaults to enable (recommended)

  5. Added user-guidance message box displayed when trying to download when no symbol is marked for download (instructing user to mark anything)

  6. Added user-guidance message box displayed when trying to download when symbol is totally empty (instructing user to add symbols)

  7. AmiQuote, Edit->Delete doesn't mark other items as selected anymore

  8. Re-implemented Stooq.pl downloader to address recent breaking changes, uses conservative 3 second delay to prevent overload

  9. User data sources: added "Advanced" tab with ability to define extra cookies and extra headers

  10. User data sources: added built-in AQHost object to scripting engine

  11. User data sources: added new Javascript callback BeforeDownload( url ) that gets called before URL is downloaded by AMiQuote, input and return value is url itself

  12. User data sources: added {from_yyyymmdd} and {to_yyyymmdd} URL template fields (resolve to basic ISO format YYYYMMDD of from/to dates)

CHANGES FOR VERSION 4.19 (as compared to version 4.18)

  1. built-in Yahoo Historical re-implemented. Works again
  2. built-in Yahoo Historical performs 7 significant digits rounding to address incorrect data being sent by Yahoo API

CHANGES FOR VERSION 4.18 (as compared to version 4.17)

  1. Settings: auto-rotation of most common user agents implemented, to prevent cases when Yahoo blocks particular user agent
  2. Settings: added ability to select custom user agent (and list of predefined most common user agents) - custom setting works if auto-rotate is turned OFF
  3. Changed User Agent to : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36"

CHANGES FOR VERSION 4.17 (as compared to version 4.16)

  1. {symbol} is URL-encoded to prevent problems with symbols having special characters
  2. JScript compilation errors in user-defined data sources result now in FatalError that terminates downloads
  3. JScript errors don't display message boxes during downloads. Errors are displayed in-line
  4. Yahoo Finance Workaround definition improved - better error handling, increased history length, 300 requests per minute limit added to prevent Yahoo "Too many requests" error
  5. AmiBroker instance launched by OLE automation now is made visible
  6. AmiBroker instance is created once per run, not with every Import call
  7. database saving is triggered by OLE after imports
  8. current directory is preserved during use of file dialogs
  9. current directory check/adjustment is done at startup to ensure it is correct

CHANGES FOR VERSION 4.16 (as compared to version 4.15)

  1. When user tries to use Yahoo Historical appropriate defunct message is displayed
  2. Added ability to auto-import user definable data source during initial program run (after setup)
  3. If user data source with given name already exists, the importer asks to replace existing one instead of always creating a new copy
  4. New URL format fields {from_utime} and {to_utime} - they are replaced by UNIX time value of From and To dates respectively
  5. Translation table now supports user-definable data sources
  6. Added Yahoo workaround user data source definition to address breaking Yahoo changes

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

IMPORTANT NOTE:

Some people are apparently overdoing this and change defaults. Don't. The setup automatically detects everything.
When you run the installer - DON'T CHANGE the folder that setup suggested. It automatically detects where you have AmiBroker installed and proposes AmiBroker installation folder. And that is the only correct location. It should go to AmiBroker folder. Don't create subfolder for AmiQutoe. The setup BY ITSELF, will create AmiQuote subdirectory and put AmiQuote in its subdirectory. If you overdo and create subdirectory yourself you will have two subdirectories nested (wrong).

This thread continues the discussion from AmiQuote 4.19 released

8 Likes

About extensions of built-in Javascript processor in AmiQuote 4.30

Built-in AQHost object is now available from Javascript.
It offers the following methods/properties:

Properties:

  • Symbol - retrieves / sets currently downloaded symbol

Methods:

  • Sleep( ms ) - sleep (pause) current downloader thread for specified number of milliseconds
  • Print( string ) - display message text in the downloader status area / list item
  • MessageBox( string ) - displays modal message box (blocks execution until OK is clicked)
  • DownloadURL( url ) - downloads (via HTTP GET) given URL resource and returns html (downloaded content) as a result
  • SetCookie( url, cookie_name, value ) - sets cookie into WINET cookie store (used for subsequent requests)
  • GetCookie( url, cookie_name ) - gets cookie from WINET cookie store (including session cookies)

Also there is a new optional callback:

function BeforeDownload( url )
{
   return url; // do nothing with the url
}

The function allows to perform actions before URL is downloaded, including modifying URL itself (you should return the modified url).

5 Likes