3 ms·
Obviously, well written HFTs avoid this by introducing some hysteresis to the signal. i.e. Insert an order when the signal crosses 0.5, but then only delete it
by gd1 12y ago
Obviously, well written HFTs avoid this by introducing some hysteresis to the signal. i.e. Insert an order when the signal crosses 0.5, but then only delete it if the signal falls below 0.4.
Chris: You've also missed the most common cause of these issues in my experience - feedback from identifying your own orders in the public stream. HFTs need to filter their own orders out of the orderbook they are trading on, or a feedback loop can begin. This can be difficult, since some exchanges don't provide a clear way to identify your own order, or it may be the case that you receive the public UDP packet before the private TCP packet that contains the ID required to match the two.
For example (a basic one), say I have an algo that calculates the midpoint based on the best bid and ask volumes. And can only insert within x distance of the midpoint. I add a bid to the top of the book for a 1 lot, get the UDP public depth update, don't know whether this is my order or someone elses. So I re-calculate the midpoint, which pushes the midpoint upwards (greater bid volume), which means I then pull my bid, which means I recalculate the mid again, then re-insert, etc. etc....
- yummyfajitas 12y agoI actually mentioned this briefly - see the discussion of the "reconciliation step" in the "Quote Stuffing is not a DOS attack" section. I guess I assumed everyone's reconciliation system was as good as the one I worked on. But you make a very good point, as well as a meta point - this stuff isn't easy.
- gd1 12y agoSorry, missed that bit
- hft_throwaway 12y agoSure but what if someone else is doing something in the market that perfectly lines up with the edge conditions for your place and cancel thresholds? Nothing is foolproof. If you are operating at a large enough scale this will end up happening a few times a day, especially when you have multiple agents interacting in ways that can't be predicted. A feedback loop can still happen between two unrelated traders running similar rules like "if I'm not the best offer, improve it by a tick".