We are bringing in our own database of prices using an SQL server for around 3000 stocks (we are using a custom SQL query to bring in quotations and symbols). We have selected ‘enable local storage’ when creating the database to ensure that Amibroker creates a local copy of the data to speed up processing time.
Unfortunately, a simple exploration, such as Filter = Close >100 takes approximately 2 minutes to run. This is a lot slower than when we are connected to the Norgate database. Does anyone know why this might be the case?
SQL is slow. That is why for quick operation you should use AmiBroker native database that is hundreds of times faster than SQL. In fact any external source is slower than native database.
The easy way to speed it up is to:
a) perform ONE scan to copy data from your SQL to AmIBroker native database
b) change Data source to “(local database)” in File->Database Settings
c) subsequent scans won’t use any external plugin and will be a whole lot faster than SQL and Norgate
There is one hint more: make sure that you have more than 3000 (number of symbols in your database) entered in Tools->Preferences, “Data” tab, “In-memory cache” field. This decides how many symbols are kept in RAM. RAM is order(s) of magnitude faster than any disk storage.
Thanks Tomasz, very helpful.