AMP-MetaTrader 5 as IB alternative for automated intraday futures trading

I have AMP/CQG and the last two issues he mentioned was reported to me by AMP. Fortunately I was not in a trade at the time.

In which case CGQ might be not be that much more unreliable than Rithmic. It could just be CGQ users, like yourself, are more vocal in reporting problems to AMP. I had a problem this year with Rithmic API but I never reported it to AMP, I just spoke directly to Rithmic about it.
 
Last edited:
Isn't Rithmic built on .NET? I think at least RTrader is, not sure about the API. That would present a problem on a Linux server. Mono really is not up to it.
 
Isn't Rithmic built on .NET? I think at least RTrader is, not sure about the API. That would present a problem on a Linux server. Mono really is not up to it.

I thought you want to use Meta trader instead of the API directly?
 
I thought you want to use Meta trader instead of the API directly?

Just considering alternatives, that's all. And yes, that would be my intention, because of simplicity of the Python interface and robust connectivity (in demo). Though I'd still rather not say I "want" to use it.

But AMP seems to offer access to the CQG API directly. That would leave MT5 out of way. Sadly, I have no experience of using the MS COM interface from Python, but I know it is a pain from Matlab (at least was so a couple of years ago).
 
Just considering alternatives, that's all. And yes, that would be my intention, because of simplicity of the Python interface and robust connectivity (in demo). Though I'd still rather not say I "want" to use it.

But AMP seems to offer access to the CQG API directly. That would leave MT5 out of way. Sadly, I have no experience of using the MS COM interface from Python, but I know it is a pain from Matlab (at least was so a couple of years ago).

Rithmic have a C++ api that runs on linux i think.

But when using a direct api, with companies like CGQ and Rithmic, you have to jump through hoops to get your ATS code verified. Took me about month to get verified with Rithmic. This involves you connecting your system to their test servers and they make sure you are connecting disconnecting and sending orders properly, before they give you access to their live servers.
I think they just want to make sure you are competent developer and know what you are doing before allowing you access to the live servers.
AMP refused to help me with this, you have talk directly with Rithmic and convince them you are worthy!

You don't have that issue with Meta trader or IB TWS/Gateway. You can fire live orders from day 1. Because you are going through already verified intermediate software.
 
Last edited:
Rithmic have a C++ api that runs on linux i think.

But when using a direct api, with companies like CGQ and Rithmic, you have to jump through hoops to get your ATS code verified. Took me about month to get verified with Rithmic. This involves you connecting your system to their test servers and they make sure you are connecting disconnecting and sending orders properly, before they give you access to their live servers.
I think they just want to make sure you are competent developer and know what you are doing before allowing you access to the live servers.
AMP refused to help me with this, you have talk directly with Rithmic and convince them you are worthy!

You don't have that issue with Meta trader or IB TWS/Gateway. You can fire live orders from day 1. Because you are going through already verified intermediate software.

Yes, I'm familiar with the procedure (in principle). I went through a local super computer cluster code validation exercise a couple of years ago; they wanted to verify the scalability of my code in parallel computing.

This CQG/Rithmic API road is then definitely an overkill in my case, but I appreciate your views.
 
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?

Metatrader is very interesting for light programs and useful for programming simple algorithms but Metatrader is very slow for low latency algorithms because its response time is slow for high frequency. They have an option to send orders at low frequency but I find it very dangerous technically.


Why not use QuantConnect?
it is collocated cloud software, works with python and can be connected with IB
 
Metatrader is very interesting for light programs and useful for programming simple algorithms but Metatrader is very slow for low latency algorithms because its response time is slow for high frequency. They have an option to send orders at low frequency but I find it very dangerous technically.

I don't need low latency, my trading is at 30-60 min resolution, but still intraday. I have had the impression that Metatrader is a bit "amateurish", in the sense of bucket shop cfd operators, but in my testing so far it seems to be sufficient.

Why not use QuantConnect?
it is collocated cloud software, works with python and can be connected with IB


Yeah, why not, thanks for the suggestion. I guess I have some implicit reservations towards all cloud-based code hosting services. Thinking about it, there is probably little substance to this, but just a fear that if something goes wrong, I would be too remote to do proper debugging. Some bits of my code are quite memory-hungry; on a virtual server, I can monitor this myself, but not sure about cloud-hosted code. On the other hand, if live trading performance does not meet the testing results, on a virtual server, I presume I can go way deeper in the execution and latency analysis etc than at cloud-hosted services. And I can implement live status monitoring functions to send me a Telegram note on errors, like indicated earlier. Not sure if this is possible with QC and others. I will have to ask them.

Based on a quick look, the features of their Quant Researcher plan does seem to be well enough for me. They seem to support live futures trading through IB, so I wouldn't need to open an account elsewhere.

Edit: $8/month is peanuts if this thing actually works the way they present it.
 
Last edited:
If anyone needs a Windows based server for running .Net applications, take a look at our co-located Chicago servers. The hardware config is specifically built for lag free chart (RDP) trading and for running critical applications, such as trading bots, 24/7 without any outages (no internet disconnects and no software crashes).

The savings compared speedtradingserver or AWS/Azure pricing is massive. In terms of reliability, our servers have 99.9999% uptime. See for yourself the difference in quality compared to other providers.
 
We are all for our customers having the best technology...but we need to make sure it is clear....For clarification and accuracy, regarding @Ninja Mobile Trader VPS post....

It does not matter what co-located servers or hardware you have....if Order Routing goes offline for any data-feed, CQG, Rithmic or TT....you will still need to contact the Trade Desk to get assistance with any Open Positions/Orders.
 
Back
Top