I have come up with an automated trading strategy that is supposed to make money in live markets. My strategy trades at 30 second to 1 minute level. Easily around 80 trades per day. This is for emini futures. The issue I am encountering is that I miss out on my entry or exits because of my order book queue placement. I am using IB as my broker and connecting via their TWS. Any suggestions on improving my fill percent , reducing latency and any other ideas. Right now , I have my strategy running from home somewhere in Europe trading CME products. What should I do to be able to get better queue placements. Currently signal is generated and then I place an entry order and sit in the queue hoping to get filled soon. Any suggestions would be of great help!
Your transatlantic connection from Europe to Chicago can be improved. I use Amazon AWS (the Virginia Zone) to run my automated system, trading CME futures, using IB API. Average market order execution time is about 100 milliseconds. For you, it's probably around 1500 milliseconds? However, from the way you phrased it ("fill percentages"), it appears that you are using limit orders. Is that right? What would be your backtested results if you replace limit orders with the market orders?
I'm in the process to set up something like that but using different channels. I currently consider a dedicated server in Chicago as the best option. It appears to cost around $400 per month. What you can try is to ask IB for an IP that supports traceroute and test it from your existing connection. Also it costs a few cents to start an AWS micro instance, you can repeat the test from there (but they are not in Chicago). Be very careful with VPS. I experienced serious stability issues with some of them. They even lose TCP connection (Hostwinds). I use AWS now for testing, no such issues for 7 weeks. Remember, VPS is a shared infrastructure if another stupid customer brings down the system you go offline as well. Research virtualization technologies or ask an expert. Remember always: dedicated is always best - virtualization layer can be source of several issues. If your size allows you get a dedicated server in Chicago. A Windows 2012 R2 platform should do everything you need (!subject to testing!). Test for several weeks for errors or disconnection (I first experienced problems with Hostwinds after 3 weeks). Finally it may be an idea to consider to place the stop-loss order before the opening one. Just in case the connection is lost in between. I'm assuming that IB has a separate order type for stop loss.