By Hein van Eeden, Senior Dev @ Autochartist.com.
In the beginning of 2010’s Autochartist decided to integrate our Technical Analysis Chart Patterns into MetaTrader 4 (and a little later into MetaTrader 5). This was in the form of indicators, one for each product Autochartist was offering at the time, using DLLs to communicate with our services to retrieve data.
As time passed, MetaQuotes decided to forgo the use of DLLs automatically to clamp down on trojan software posing as indicators or Expert Advisors. Their new interface forced people to explicitly enable the use of DLLs.
In 2015 it was decided to combine these indicators into an Expert Advisor and use HTTP communication to negate the need to enable and use DLLs in the MetaTrader platform. It also allowed Autochartist to add new products and features more easily to the program.
This enabled Autochartist to provide up-to-date patterns in one location, offering the user the ability to see current and relevant patterns in an instant without the need to constantly switch between charts to find tradable opportunities.
During development, it was decided to use XML as the communication protocol for transferring data between the service-layer and the Expert Advisor. It was however felt that a full ISO compliant structure add too much unnecessary data (since the web-call of the Expert Advisor didn’t make use of the HTTP-gzip compression feature at that time) that a custom XML structure was built. This also had the effect that a custom XML parser had to be written in MQL to parse the incoming data for use.
Another challenging area was in the visual part of the Expert Advisor. The window-element used, had built in features (e.g. the close and minimize buttons) which weren’t always required and, in some cases, needed to be negated. An example would be the “Pattern Details” pane whose “close button” event had to be overridden to not allow closing the pane, but only allow to minimize it.
Many controls and displays that the Expert Advisor uses had to be written from scratch, and some had to be overridden in order to facilitate a better interface experience. Even now there are certain limitations that still hamper the usability of the EA (namely interacting with controls that should be accessible after a chart-change, which only happens after all candles for the chart have been loaded).
The new Expert Advisor was also packaged as a program installation using QSetup, but was later changed to use Advance Installer, which gave better control over installing the Expert Advisor to multiple MetaTrader terminal locations as well as installing updates and upgrades for the EA.
The Advance Installer installation allowed us to package the Expert Advisor in such a way that enabled us to perform certain validation and pre-installation steps to ensure that the Expert Advisor performs correctly for the terminal it was intended to run on. One such feature was the ability to locate and install into the correct Expert Advisor directory of a default installation of an MT4 or MT5 installation, which didn’t reside in the Program Files directory anymore, but in the AppData folder of the current user.
The Expert Advisor is expanded on a regular basis which customers having access to by automated update-requests through the Advance Installer installation and updater that the EA is packaged with.