throwaway283719
Joined 12 years ago
Joined 12 years ago
I mean, I guess you could do that in C++ instead. But why would you bother if C is good enough (and it typically is for most numerical algorithms).
I'm sure that a large proportion of derivative trades are still done over the phone, but that's because they tend to be (a) quite customizable and (b) quite hard to price.
It is incredible that treasuries are still traded over the phone, however, given how (relatively) easy they are to price. Even treasury futures, which are harder to price due to the basis and optionality, are mostly traded electronically, which tells me that there must be some parties with a pretty strong interest in keeping bond trading a "closed shop".
There is no possibility to "back away when a matching order comes in" because the first time you find out about the matching order is when you are informed about the trade that you just did!
What can happen is that a market maker will post liquidity on multiple exchanges A, B and C, and will remove their orders from exchanges B and C if they are filled on exchange A (assuming they are fast enough to do it!)
This is not shady or nefarious. In fact, it is the only way that a distributed market could possibly work.
The market maker has some finite capacity to provide liquidity (e.g. they have position limits, they need to post margin, they have certain risk tolerances). They want to maximise the chances of their orders being traded on (i.e. providing liquidity), so they post liquidity on all available markets.
When they match on one of those markets, their capacity to provide liquidity has diminished, until they manage to offset their position somewhere (either on the same market, or on a different one). Moreover, they have just received a new piece of information about the supply/demand imbalance for this particular stock. For both of these reasons, it is natural to assume that they would want to adjust the prices they are offering on other exchanges. The market cannot function any other way.
data Root
= RootPosix
| RootWindowsVolume Char
| RootWindowsCurrentVolume
data FilePath = FilePath
{ pathRoot :: Maybe Root
, pathDirectories :: [String]
, pathBasename :: Maybe String
, pathExtensions :: [String]
}If not, how much would you put at risk for the chance to win $1 if he is convicted?
If you are trying to learn about electronic / high frequency trading by reading "Flash Boys" you are actively working against yourself. You will literally be more incorrect after you have read this book.
One proviso is that I've never worked on US equity markets, so if this rule is in place there then I wouldn't know about it.
The cheeseburger market is rigged.
I don't think the comparison with a hypothetical reality TV show is very meaningful.