Interesting indeed... I must say I have been looking for different (and better) ways to coding strategies than mql4 , the language is not actually bad, but not being able to backtest a whole portfolio with different symbols is frustrating and not escalable.
I have coded strategies in R and python, backtested them, and then tried to use the same strategy in the original language (R or python) to do the real trading, but this has become a real pain in the ass, as I (we) have to use MetaTrader to do the trading. I've tried to use files: one (or several) where mt4 continually writes the new history, and others where the strategy in R or python opens new trades, for mt4 to read these trades.
This apparently easy job has failed from several sides... And from the begining, sharing files wasn't very appealing for me.
Now, what I will be trying is to use zeromq to communicate these programs with mql4...
And the reason why I don't reprogram my strategies to mql4 are, at least, two:
1) If possible, I would prefer not to do two times the same job.
2) And not only for a matter of time, but also for a matter of lessening potential errors or bugs... There's no 100% certainty of any "translated" code to do exactly the same as the original
In the past I have used TCP sockets to communicate MT4 with MT5, and it worked fine, and I have also worked with the cummunication through http / https , but none of this solutions have convinced me.
If you have tried the same as me, that is: to communicate MT4 with other programs in order to let other programs do the trading / calculations, could you share your research?
I think that zeromq would be a wonderful answer to achieve this... Now the question is ... will it really work?
EDIT: At this moment, I am using Zorro Trader also, as it is very powerful and you can also use R inside the clite scripts so... wonderful! But Zorro has also several disadvantages, so what I'm really looking for is a way to use the language I choose at anytime, be it Zorro-clite, R, python or C# (take a look also at QuantConnect LEAN project... because there are libraries out there called themselves 'MT4 API' , and they are written in C#... I leave the idea there).