Bots playing the market make some bizarre patterns
theatlantic.com
theatlantic.com
My personal pet theory (for some of the graphs) is that someone is just loading up the book at many price levels with unlikely-to-be-filled limit orders to gain priority (for the rare occasions the market makes big swings). It's a perfectly legit tactic, that would help the market by providing liquidity and support against other players' big orders.
Some other graphs have perfectly innocuous explanations - for example someone probing the depth of the book or filling a big order piece-by-piece.
FWIW, you can't really pull a serious DoS against most exchanges. Most decent ones have pretty strict rolling-window rate limits. And no other firm is going to have much trouble processing the maximum number of orders one firm is allowed to place within their limit.
Even if you could get away with a DoS once (and I suspect you could), who's going to risk it? The exchange knows who you are and will punish you when you do.
Do you really think you're at much of an advantage if you 'only' have to sort through 9,999 people screaming at the top of their lungs instead of 10,000?
http://www.businessinsider.com/huge-first-high-frequency-tra...
Basically, it's submitting hidden sell orders at a high price, and submitting a lot of visible buy orders in the hopes that other people pile on and bid the price up to your sell order. It's market manipulation, and it wouldn't even work if you DOSed other people's computers. The goal is to fool them into filling your orders at unfavorable prices - a DOS would simply shut them down.
Bid Size Bid Ask Ask Size
100 4 4.02 50
50 3.99 4.03 200
The whole quotebook could stretch quite long depending on the numbers of buyers and sellers on the market. Algo's and human traders use the quote books to analyze sell or buy interest. For example, if the quote book has a lot of bid size and very little ask size, it means that there are a lot of buyers than sellers which could prompt traders to buy the stock at a much more expensive price in hopes that the stock will go up due to the demand.However, what Trillium did was that they stuffed the quote book with a bunch of buy orders just slightly out of money to make for the appearance of more buy interest. e.g.,
Bid Size Bid Ask Ask Size
100 4 4.02 50
50 3.99 4.03 200
300 3.98*
300 3.98*
300 3.97*
Other algo machines or human traders will now jump to buy the stock at $4.02 (which Trillium is short selling) in hopes that the buy side's demand will propel the stock past $4.02. But what happens next as soon Trillium short sells $4.02, they will cancel the bid orders. Now the buy-side interest is back to normal, un-inflated side and whoever bought the stock at the inflated price is left holding the bag. The pricing of stock will go down due to reduced buy interest, Trillium buys to cover at $4, netting $0.02/share profit.Only works if big swings deviate from intrinsic value of the stock. Let's say a biotech stock fails its FDA panel and drops like a rock, its fair-value suddenly drops from $8 to $2; your 100 limit buy orders at $6 suddenly gets hit and you'll have to sell them at $2/share.
> Some other graphs have perfectly innocuous explanations - for example someone probing the depth of the book or filling a big order piece-by-piece.
You probe the depth of the book by building the book not by submitting out of the money orders. You sell block order periodically over a day or days via VWAP by not revealing your true order size. Submitting a bunch of limit buy orders at once even if they are out of money, especially under the same MPID will reveal your hand and the size of the buy/sell interest.
> FWIW, you can't really pull a serious DoS against most exchanges. Most decent ones have pretty strict rolling-window rate limits.
The point is not DoS against exchange but to make your competitors process messages slower than you do. They can still process messages 15ms at a time, but you could do it at 10ms. In this game where everyone's colo'd to the exchange and have the same arbitrage algo, having a 5ft. cable to the exchange trading server vs. a 7ft. cable is a competitive advantage. The same case is with slowing your opponents' message processing rate down by 5ms.
Incidentally, light travels this far in one clock cycle for a 2GHz processor. I have a feeling that the interrupt handling machinery and the network card and the Layer 2 and Layer 3 inefficiencies add more latency than two feet of Ethernet cable, though. (But I guess a pair of scissors is cheaper than a processor fab.)
The HFT world reminds me a lot of the audiophile world. Sure, two feet of Cat-5 cable introduces measurable latency. Sure, using 1% tolerance resistors instead of 0.001% tolerance resistors affects the performance of your amplifier.
Whether or not this makes any difference in the real world, though... nobody ever has the answer to that question.
I get your point, but 5ft vs 7 ft cable isn't going to make any[1] difference.
[1] light travels 2 ft in 2.033 × 10-9 seconds. According to http://en.wikipedia.org/wiki/Memory_latency, A memory seek on DDR3-1600 takes 0.6 x 10-9, but reading one word takes around 10 x 10-9. Given the amount of processing needed to process a single packet, I cannot see anyway 2ft of network cable is significant.
Basically all algo trading systems need to cancel/modify their limit orders to keep things relative to the last traded price and the whole quote book. The way they maintain their own quote book is through some data feed's API. e.g.,
Processing messages via onBidChange(double price, int bidSize); suppose you send a million buy orders at $2.00 when the stock price is trading at $6.00; your orders won't get executed, but your competitor who's processing these messages will be busy processing these message. You ignore the bottom of the book because you know your own garbage orders while you focus on processing messages at the top of the book in case of a inter-market/equity-options-futures arbitrage opportunity arises for 200ms. Your competitor was busy processing your garbage orders for 200ms; he/she either can't arb the trade as fast as you can, or they are the mutual fund algo and they can't cancel/modify their VWAP limit orders fast enough, while you trade in and out 2000 shares for $0.01/share profit plus liquidity rebates in that 200ms.
If you want to suggest they are hacking someone, I'd propose an alternative target: the exchange. Say the current NBBO is on INET, but the pattern is on BATS. Once the price on INET drops below the pattern level on BATS, INET needs to devote effort to communicating with BATS to determine whether to fill orders or route them. That adds latency.
I love a good conspiracy theory :)
Original Nanex report: http://www.nanex.net/20100506/FlashCrashAnalysis_Intro.html
Is there a cost to the HFTs to make bids which will never see the light of day?
B. There's the off chance that something could get filled that I don't want filled, and I'll burn some of my rate quota/cpu/bw.
I think putting a little money in an account and then working on writing a small trading bot would be a fun project.
I think smarkets is also a possibility if you are located in the EU.
Anywhere except the US or Turkey, due to their anti-gambling laws.
I believe smarkets is still looking for market makers too.
Ignoring the query string is only done when comparing the titles. If the initial section of the URL matches and the title matches then it's almost always a duplicate, and I only say "almost always" because there's a chance I'm wrong when I say "always" - I've never seen it.
But nothing's going to be done, and I don't have time to implement anything more robust than the quick hack I've done for myself, so I'm not going to get involved.
Submitted URLs are only checked against the URLs of past stories that are cached in memory, and the Arc process crashes regularly, which invalidates all comment forms and starts the cache fresh again. The result is that the duplicate check is only processed against stories that have been displayed in some form in a response since the last crash.
That end result is actually kind of elegant — you can only submit a direct dupe if nobody cares about the old one, but the means to that end is pretty fucked up. A worthwhile accident.
do they use physics based techniques, like black scholes?
or do they use statical learning based techniques?