AmiQuote 4.10 released

A new public version of AmiQuote 4.10 is released now.

This version is significant as it brings ability to write user-definable functions (in Javascript) that post-process downloaded content. This opens up ability to download any content and automatically transform it inside AmiQuote to AmiBroker-readable CSV format. An example Polygon.IO data source that exposes its data in JSON format is included as demonstration of new technology.

Direct links:
https://www.amibroker.com/bin/aq4100.exe (261KB) – 32 bit version
https://www.amibroker.com/bin/aq4100x64.exe (316KB) – 64 bit version

NOTE 1: Due to the fact that we used new code signing certificate, this download may trigger "Microsoft SmartScreen" message. In that case follow instructions from this thread: MS SmartScreen nonsense with new certificate - YOUR help is needed

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

CHANGES FOR VERSION 4.10 (as compared to version 4.06)

  1. added support for JSON-based user-definable data sources
  2. added Javascript formula engine to run user-definable post-processing functions to transform server response into AmiBroker-importable CSV format (Javascript engine includes JSON parser to easily parse JSON output)
  3. added File->Download Ticker List dialog to download pre-defined symbol lists for different markets around the globe
  4. added example Polygon.IO user-definable data source that shows the power and flexibility of Javascript post-processing
  5. download progress is reported in KB (useful for larger downloads)

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

This thread continues the discussion from AmiQuote 4.06 released

12 Likes

If you get Microsoft "SmartScreen" because the file is signed with new certificate, follow these steps:

image

and then just clicking "Run anyway"

image

1 Like

You can also help by reporting false positive to Microsoft so their "SmartScreen" actually gets "smart" one day:

image

More information:

The video below shows:

  1. how to import demo Polygon.IO data source
  2. adding Polygon.IO API key (required)
  3. "Debug" tab that allows to debug Javascript function that performs data transformation. As you can see data downloaded from Polygon.IO are in JSON format. The Javascript function uses Javascript's built-in JSON parser to parse JSON string and produce CSV format that can be consumed by AmiBroker
  4. "Javascript" page shows the user-defined transformation function
  5. Once data source is defined, it is demonstrated that it downloads intraday data for MSFT

video

6 Likes

As reported in AmiQuote 4.10 kudos there is small mistake in JavaScript code in Polygon.IO example resulting in 1-minute offset in timestamps. Corrected Javascript code is here:

function pad(num, size) 
{
    num = num.toString();
    while (num.length < size) num = "0" + num;
    return num;
}

function dateToYMD( d )
{
	return  d.getFullYear() + "-" +
           pad( d.getMonth() + 1, 2 ) + "-" +
           pad( d.getDate(), 2 );
}

function dateToHMS( d )
{
	return	 pad( d.getHours(), 2 ) + ":" +
           pad( d.getMinutes(), 2 ) + ":" +
           pad( d.getSeconds(), 2 );
}

// the processing function takes text as input and produces text as ouput
function Process( input )
{
	try
	{
		all = JSON.parse( input );

		if( all.status == "ERROR" ) 
		{
			return "Error: " + all.error;
		}

		if( all.resultsCount == 0 )
		{
			return "Error: no data for this symbol";
		}

		quotes = all.results;

		output = "";
		for( i = 0; i < quotes.length; i++ )
		{
			date = new Date( quotes[ i ].t );

			open = quotes[ i ].o;
			high = quotes[ i ].h;
			low = quotes[ i ].l;
			close = quotes[ i ].c;
			volume = quotes[ i ].v;
		
			output += dateToYMD( date ) + ", ";
			output += dateToHMS( date ) + ", ";

			output += open + ", ";
			output += high + ", ";
			output += low + ", ";
			output += close + ", ";		
			output += volume + "\n";		
		}
	}
	catch( e )
   {
      output = "Error: " + e.name + ": " + e.message;
   }

	return output;
}
1 Like

Microsoft finally "approved" it and SmartScreen notifications for AmiQuote 4.10 are gone.

Still we are waiting for Microsoft to whitelist new certificate so other programs signed with it do not need to go thru this nonsense.

2 Likes

@Tomasz, if possible, I would like to know what JavaScript engine is embedded in the new AmiQuote version, to better understand what level of functionality it provides. Thanks.

It uses Microsoft JavaScript engine in jscript9.dll (this was first introduced in IE9 and used by IE10 & IE11 that features native JSON object that previous versions of MS JScript were missing). It is based on ECMA-262 5th edition.

2 Likes

Thanks @Tomasz. I was planning to backtest a strategy in other markets and i see this "Download Ticker List" where i can actually download tickers from different exchanges :slight_smile: which makes the work easier.

Just one question i have (Please excuse me if its offtopic). I had currently tested my strategy on NSE (India) which was majorily a Bull market for the last 20 years (same for most of markets in the world as well like Nasdaq etc). Do you have idea where a market or exchange was not bullish or maybe volatile or sideways?

World markets were definitely not bullish in H2 2007-H2 2009. Also for example Warsaw stock exchange was mainly sideways for 2011-2016.

1 Like

come on! The India market has had so many sideways years - 10-14 , 18-20..Open Monthly chart and you will clearly see sideways years..
image

Thanks @Tomasz i could locate good number of them. I was mainly thinking on the US and India ones (over a very long term). Below is the list i could find:

poland stock exchange index: WIG (Sideways)
qatar stock exchange index: QE General Index (Sideways)
singapore stock exchange index: STI (Sideways)
tokyo stock exchange index: Mothers Index (2008 Fall and sideways)
netherlands stock exchange index: AEX (Slight Bullish)
FTSE/JSE Africa All Shares Index: FTSEMIB (2008 Fall and sideways)

Awesome stuff @Tomasz. One question, when using the download ticker list for the various exchanges, does it download these files as a TLS and if so where would these get saved/stored to? Thanks again for such an outstanding program. I apologize again if my questions are not as intelligent as others.......still learning the ropes here.

They are downloaded directly into AmiQuote (not into the file), but once you select the file and download it, you can save it to TLS file locally using AmiQuote's File->Save As... menu option.

1 Like

Because some people apparently don't realize that Polygon IO supplies not only stocks, here is a sample video for BTCUSD:

video

8 Likes

Thanks

I'm not able to locate the data source file in AmiBroker folder, can you please share the location (for polygon.io) ?

Data source subfolder exists inside AmiQuote folder (where AmiQuote is installed) and there you will find all files.

Hi Tomasz,

AmiQote does not start at all. It just flashes for second and then goes away. The Q is shown in the taskbar but when I click it no windows comes up. I cannot download any data for 2 weeks.

You might have moved it to other screen, then disconnected that other screen.

Use search before posting: