TLDR: Looking for real user experiences using the AMP / MetaTrader 5 setup for automated intraday futures trading; stability, delays, execution etc.
--
I have been a happy IB customer for almost 15 years, and am gradually automating my "higher frequency" trading. Thus far this has involved nightly heavy number crunching followed by trading US stocks at the open. IB TWS has been well up to this: I work with Python and Matlab, supplemented by compiled C code to speed things up, and can interface the IB API without problems. So all good ...
... except that now I'm in the process of automating an intraday system - still a relatively low frequency one on E-mini S&P and Nasdaq futures, with trades typically lasting for 1 to 3 days - and I no longer see IB as a good option. Although the situation has improved over the past few years (IB API on Github, the marvelous ib_insync etc), it seems to me that one still has to spend a tremendous amount of time to realize a stable connection between TWS or Gateway and the Python code. The icing on the cake is the daily restart/logout functionality that seems to both change periodically and still require human intervention during mobile authentication even if you use third-party autologin implementations. I mean, come on! It's 2021. What's the point of automation if you have to babysit all along? So considering the alternatives lead me to the AMP / MetaTrader 5 combo, mainly because NinjaTrader and SierraChart would require changing from Python (or executing a lame system call to Python which I won't do).
I have had some reservations about MetaTrader in general, mostly due to it having historically been associated with shady forex or CFD providers. But AMP seems to be serious about it, so I enrolled for a demo. The platform looks stable, and seriously more lightweight than TWS. Sadly, like NT and Sierra, it too is not native Linux, but the usual Wine workaround seems to do its job. Interestingly, there is a Python interface (
https://www.mql5.com/en/docs/integration/python_metatrader5) that seems to work out of the box in my testing. Sure, the features are minimal compared to IB API, but in terms historical and live market data, it has literally all I need, plus functions to execute trades and monitor positions.
So now the question is: what am I missing? In particular, since the Python - IB API connectivity seems to be such an issue, how does AMP/MT5 perform in this respect? Connection losses? Requotes? Execution quality?