Introducing Cerberus: The Asirikuy Custom MT4 Execution Monitor

Having execution reliability is one of the highest priorities when running automated trading systems. Not only does this mean having a computer with reliable power and internet connections the whole time but also ensuring that our MT4 platforms are being executed all the time. Although you might think that simply loading them automatically on startup would be a solution good enough the fact is that the MT4 platform is no stranger to things such as freezes, crashes and spontaneous closes. Although good programming practices eliminate a good percentage of these problems some things like frequent DLL calls cause spontaneous freezes and closes which are simply inherent to the way in which MT4 calls libraries under certain versions of the Windows platform. In order to ensure that the MT4 platforms are always loaded in an execution-reliable state we have developed a program called Cerberus which was coded by one of our Asirikuy members (another great job inside our community!).

It is a very sad thing when you look at your trading results during a certain day and you realize that you have just missed a big profitable trade because your MT4 platform had crashed, had frozen or had closed spontaneously. Although you were monitoring the state of your VPS frequently a crash happened in an instant and you only realized a few hours later (when it was already too late to take the huge profit signal). The truth is that we’re all human and ensuring adequate execution of MT4 platforms without some sort of way to monitor them and correct problems automatically is surely a way to lose money in the long run as eventually something will happen that will cause you to miss trades (and Murphy’s law says you’ll miss the good ones).

In order to completely eliminate the problem of MT4 problems such as the ones mentioned above we have implemented a program within Asirikuy (coding done by a single member) which tackles all these issues. We decided to name this program Cerberus as it does a similar job to what the three-headed dog that guarded the gates of Hades in Greek mythology did, it guards against bad execution states of MT4 platforms. You simply give Cerberus the paths to the MT4 folders you want to monitor and the program monitors the MT4 platform processes as well as the running windows to ensure that everything runs smoothly.

Cerberus protects MT4 users against 4 types of problems. Whenever an MT4 platform closes it is restarted automatically, whenever a crash dialog appears it is closed and the program is reopened, whenever the platform becomes unresponsive it is restarted and if Cerberus is used on its own to start platforms on VPS login it will NOT open duplicate instances if you open a duplicate session (because it will detect the already running processes). So Cerberus is definitely a brilliant tool to keep your MT4 platforms running as it ensures that whatever problem there is it can be promptly fixed. This program is a very elegant solution to the problem of MT4 execution reliability within a computer server ensuring that you will not miss a signal because of some problem related with some MT4 problem.

Currently Cerberus handles the most important MT4 problems although it still misses some potential functionality which would be very useful. Metatrader 4 platforms can sometimes get caught in “common error” loops where the platform is unable to connect to the server although the platform is adequately loaded and on a “good” execution state. A potential improvement for the future will be to implement some type of communication between Cerberus and MT4 (through a heart-beat EA for example) in which Cerberus restarts the MT4 platform if it fails to receive a tick for a long period (for example for 15 minutes), of course taking into account the weekends to prevent restarting the platforms on an endless loop when the market is simply closed. The heartbeat EA could also give Cerberus information about the connection status of the platform, also allowing restarts of the platform if the connection is lost for more than X minutes.

As you see Cerberus is a great step forward in EA execution reliability as it is – to the best of my knowledge – the only monitoring program specifically designed to tackle the issues related with MT4 execution. Cerberus will be released this weekend to all Asirikuy members to ensure that our community will get the highest possible level of execution reliability related with our MT4 platforms. If you would like to learn about our many analysis tools and VPS setup protocols  please consider joining Asirikuy.com, a website filled with educational videos, trading systems, development and a sound, honest and transparent approach towards automated trading in general . I hope you enjoyed this article ! :o)

 

Print Friendly, PDF & Email
You can leave a response, or trackback from your own site.

5 Responses to “Introducing Cerberus: The Asirikuy Custom MT4 Execution Monitor”

  1. fd says:

    Hi Daniel,

    just some quick questions:
    – will cerberus run as a service or will it require autologon?
    – are there protective measures against failing of cerberus itself, like 2 cerberus instances monitoring each other?

    On heartbeat:
    – instead of requiring some EA logic for heartbeats it might be feasible to look at the ip connections to the broker servers. As long as byte counts are incrementing during market hours, everything can be assumed to be fine.

    Best regards,
    Fd

    • admin says:

      Hi Fd,

      Thank you for your comment :o) Cerberus was developed as an application so it currently needs the autologin to be done, however you can run it as a service using any of the different software solutions available to run programs as services. Regarding the reliability of Cerberus, we could certainly implement a double cerberus instance solution where two cerberus instances monitor each other (good idea). Regarding the heartbeat, I prefer internal EA monitoring as the common error problem usually keeps the communication channels open (there is an exchange of data between server and client but no connection is achieved). Thanks again for commenting,

      Best Regards,

      Daniel

  2. Umberto says:

    A really good job, I am glad to belong to the Asirikuy community :o)

  3. Sebastian says:

    Wow! This was really needed to run our Asirikuy systems as smoothly as possible! :) Together with an app such as Firedaemon to run it as a service is unbeatable…

Leave a Reply

Subscribe to RSS Feed Follow me on Twitter!
Show Buttons
Hide Buttons