It has been more than a year since my last post, and I apologize for the long gap between this post and the last one. However, the long gap does not reflect the difficult journey that I have had in overcoming the challenges of automated trading. The difficulty lies in the fact that as a systematic trader, you have to face an uncertainty in your monthly income, and there is no network of support of friends to encourage you.
I had been following the forum DonnaForex.com as a member for some time now, and there is no shortage of interesting robots being discussed, dissected and analyzed in that forum. The forum is unique in a sense that the moderator Donna is very active and does moderate all discussions, hence it appears to be an orderly forum. Initially, I found a network of support from members of this forum, as there appears to be many members, who are serious about discussing the pros and cons of every robots. However, over time, the discussion had turned ugly into more about which robot is better (and who is making more money), but very little about the actual pros and cons of the robots.
I had learned the Metatrader 4 language, called MQL, relatively quickly due to my programming experience. Motivated by my new knowledge, I decided to create a package that could overcome the shortcomings of a demo account. One of the limitations of using a demo account is that there is no or very little slippage, hence it does not reflect actual trades. Also, there have been books written about how a Forex broker utilizes
tools to perform stop-hunting on live accounts, and this again does not
happen on a demo account. The result is that a "profitable" robot on a demo account can quickly become a loss-making robot in a live account. Hence, I decided to create a 'Ghost' MT4 package, which utilizes a live account for tick data, but orders are processed by my package and stored in an SQL database. The benefit of this is that the orders created by a robot are never sent to the broker, but they are intercepted and processed by my 'Ghost' package, and sent back to the robot. Hence, the whole process is transparent to the robot and as far as the robot is concerned, it is as good as trading on a live account.
One limitation of the 'Ghost' package is that I am using a third-party MT4 SQL driver for an SQLite database, and the external functions from this driver are limited. For example, the driver lacks an external function for a rollback feature in the SQLite database. Another limitation is that the records cannot be accessed concurrently.