Fast HFT FX Order Execution on IB

Discussion in 'Order Execution' started by max_w, Sep 13, 2013.

  1. max_w


    I'm in the process of changing the way I'm monitoring and sending my orders to IB. I started testing on production a week and a half ago.

    So far the results have been mixed, but better since I got some feedback from a user on this forum. So I'd like to poll hft people here.

    First some Background:
    I'm on a dedicated FIX connection to IB so I can send orders pretty fast. But getting orders filled presents a challenge in and of itself. In the beginning I was using IOC orders, which only got filled when the price crossed my bid/offer usually against me.

    After getting some feedback I moved to GTC orders and cancelled them after they had been out there for too long. At 30 ms, none were filled. IB said they needed to have them in there longer ~ 3000ms. It worked some of the time, but I think cancelling the order and placing it at relatively the same price didn't work so well (hence the change), since you loose your position on the line. When I tried increasing it to 30 seconds, the price moved fast against me (I shouldn't have done that). I'm really just gunning for 0.0001 in profit.

    So anyway that is what I've done.

    I submit buys at the bid and sell at the offer. The spread is 0.00005 for EURUSD. For other companies it is 1-3 pips. So I thought if I submit a buy say at 1.3301 and sell at 1.3302 I'd get filled quickly, but there is more to it. Also I can't submit orders that are a 1/10th of a pip and I can't route orders to specific banks with IB.

    So hft guys what would you do to get faster fills?

  2. You are aware that IB fx marketdata is only displayed in 0.5 pip increments to clients - but actual internal quotes(and subsequent fills) are in full decimal precision ?

    Sounds to me you are trading on the wrong venue for this kind of game..
  3. Not Hfter or IB client. but i think you can submit to the 0.1 of a pip for most ECN brokers with 5 decimal quoting system.

    Also, I second Pippi
  4. max_w


  5. I'd just go for a broker that has a better reputation for low latency rather than messing with the strategy. Out of curiosity, what made you choose EURUSD for HFT? Unless you're trying to scalp on a miniscule time frame, wouldn't a less liquid market give more opportunity to an HFT?
  6. max_w


    I looked at Reuters and EBS. Reuters has some requirements that aren't too good for HFT folks. EBS I'm told got rid of 1/10 of a pip pricing. Reuters spreads aren't thin enough for me also.

    My goal is to go for volume. The whole system is automated and there is no interaction from my end. So yes, I'm going for very small gains and hopefully very many. That is why I need faster fills. Historically the algorithms work very well. But with back testing you get filled every time, which isn't the case in the real world.

    IB is fast in general. I can send orders to their seconds in 1.5 ms. Pings are 3ms. It is just that I was hoping someone could tell me whether there are some non obvious nuances to getting faster fills. I know I could buy at the ask price to get filled faster, but beyond that , what can I do?
  7. Why not using LMAX? They have tighter spread and faster execution. You can connect with FIX , Java or .NET API.

    Even you might be able to play LP there.
  8. Surfeur


    And you can found a dedicated server in London UK with 1.5 ms or under on servers LMAX...
  9. Have you looked at MBTrading? I remember doing several roundrips under a second with them (don't think you can get much higher than that with them).