Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you offer something for sale at a certain price and someone says "I'll buy it!" you have a contract at that moment.

I don't fully understand the conditions under which you can cancel an order but it seems all the cancellations happened on exchanges where no orders had yet been fulfilled so I assume this means that the order had not yet arrived. This seems ethically just about OK to me but a sign that there is not one single stockmarket and that the system could be far better designed.

There is the single front-running trade which is suspicious but it seems plausible (unless it happens every time) that it was just a small random trade that happened to coincide with the timing of the big trade. It should be monitored though.

My conclusions:

1. There is not one single market with a number of available shares but a number of linked markets. Send your trade to a single exchange (first at least) with enough offered shares that it should execute before offers can be cancelled. Wait, repeat.

2. Much of the liquidity supposedly offered by HFT is illusory and disappears if you try to use it.

I think that the market could probably be improved if cancellation weren't free or at least weren't instant. If cancellations took a second (maybe 100ms or 10ms would be enough) to process and the offers could still be accepted in that period the offers made would be more serious and although the spread might be slightly larger it would more honestly reflect reality.



Plucking from throwaway's example. You have 20,000 copies of a book you just wrote. You put half of them on Amazon, and the other half on eBay, so Amazon has 10,000 and ebay has 10,000 of them.

You see an order come in for 5,000 of them on Amazon. You think "Hot dog, these books are popular. I must be selling them too cheaply!" You immediately raise the price of all the books by 25 cents to capitalize on this.

The books you sold on Amazon are sold, so they're gone. The remaining books on Amazon are slightly more expensive.

The guy who bought the books on Amazon also bought the same number of books on eBay, but the order hadn't arrived there yet, so between when he hit the buy button and the time the order arrived, the price had changed, so those orders aren't filled.


Using the analogy of the books you are raising the price in the milliseconds between the customer clicking buy and packets of that request reaching ebay's servers and all after the user has seen your price and stock availability a second ago. I don't think this acceptable business practice, if you have seen a price and a stock you should be able to place the order and (unless another order that isn't front running has arrived first to deplete the stock) the order should be fulfilled even if you show a different price to the next visitor to the product page.

I can sort of see that but I don't quite understand why there are different exchanges. I can't see the benefit except to those for whom it is an arbitrage opportunity.

I would also expect there to be low cost systems by which you could place simultaneous orders on all exchanges (at the cost of a slight delay in the order starting to allow them all to be posted at the same time as the furthest one.

The HFT still seems to add little real liquidity. The spreads that are shown may be narrower but the real spread seems much higher.


> Using the analogy of the books you are raising the price in the milliseconds between the customer clicking buy and packets of that request reaching ebay's servers and all after the user has seen your price and stock availability a second ago. I don't think this acceptable business practice

Speed shouldn't be the factor for why this isn't acceptable. The seller doesn't know that there are orders in the queue for the eBay order, they're just raising the price. That they're doing it quickly is just a matter of efficiency.

> I can sort of see that but I don't quite understand why there are different exchanges.

Yeah. No idea there.

> I would also expect there to be low cost systems by which you could place simultaneous orders on all exchanges

There are.


Fair enough speed isn't really the criteria. In the Ebay example Ebay know what price they showed the customer on the product page when they went to the checkout and should fulfil it if they can (provided the transaction is completed in reasonable time - a couple of minutes in the book buying world). This is maybe an illustration of the problem with the analogy rather than being a useful insight into the trading system.


I think that the analogy works pretty well, surprisingly. I see no functional difference between changing the price in near real time as a reaction to another order on another exchange as I do "Hey, let's wait til midnight", which might equally screw the guy trying to put his order in at 11:59:59.

That said, I'm not an expert in the field, and I've just pieced this information from other posts. I have no strong opinion on the matter, but after throwaway's explanation (and all the subsequent discussion), my uninformed position agrees with his; that this article is exaggerative, and not indicative of anything being 'rigged'.

Moving fast, at least in my opinion, isn't cheating.

If they were raising the price on Ebay in response to the same customer's buy offer on Ebay, I would consider that unseemly, but not even necessarily unfair, as it only assumes that the buyer is willing to pay the newly raised price, and has approximately as much risk of losing the sale as making it.


As far as I understand it a contract is made when there is an offer and an acceptance of that offer. If you are Ebay/Amazon I don't think that you can show one price and then just happen to change it as the user accepts it. The price charged should be the one offered. If the product page shows a price and user puts it in their basket and orders in within a reasonable time (5-10 minutes) the offered price should be honoured even if the price changed in the 5-10 minutes and all customers going to the product page at that point see the new price.

Note: This is not the behaviour I expect to see of share trading platforms but it is the way consumer goods sales should behave.


With the advent of electronic price labeling in retail stores we will soon live in a world where the price can change after you've picked up an item of the shelf and before you check out at the front of the store.

http://www.marketingmagazine.co.uk/article/1181195/real-time...


I don't think that this would be legal in the UK unless on upwards changes the labels changed a reasonable[0] time before the prices. Unfair Commercial Practices Directive and probably some other laws would probably cover it.

[0] A small shop could probably do it much quicker than a large supermarket which might have to allow for people being in there for an hour.


Ya, I'm sure there will be tricky regulatory issues here both in the UK and elsewhere. I'm just pointing it out as I find it interesting.


The difference would be that you cancel all the orders currently in progress, so a bunch of people who've clicked "buy" are now in the lurch.


Yeah, and if this happened at, let's say, 10 hour intervals, I'm sure the average layman would have no problem with the "fairness" of this. People are getting their panties in knot because it's somehow "unfair" that this can happen at the millisecond level.

I personally don't have a problem with this type of trading activity. A few guys are making easy money. So what?


Actually it's not easy money at all. It is very risky money done on razor thin margins.


I don't think that makes the case for allowing it any stronger.

What I do wonder is if these market reactions are so automatic and predictable whether there is a way to game them (I'm sure people already do this). It is probably a deterrent to front running on a large scale.


A) Repeat after me. There is no front running in these scenarios. Front running happens between a client and his intermediary that has a fiduciary duty to him. Other market participants do not have that duty.

B) Yes, market making HFT are routinely fighting against other HFT that are designed to predict their behavior and make money from them.

The case for allowing it is simple. How do you disallow it without having even worse outcomes. There is quite a bit of evidence that suggests that for the average market participant HFT market makers are a positive not a negative.


A) I wasn't saying that there was front running in the scenario, just that the exploitability of front running by deliberately trying to trigger it was probably a deterrent.

Not convinced about that statement about average market participants, also define average market participant and explain where the HFT's profits come from if not other participants.

How do you disallow it?

My initial suggestion was to slow down cancellations so that they take substantially longer than a new trade does to pass through the system. My perception is that it might reduce the visible liquidity/availability but not the real liquidity as much of the visible liquidity disappears when someone tries to trade against it.

Another suggestion would be to move to a single exchange


Yes, HFTs profit from other participants because they are selling a service: liquidity.

There have ALWAYS been sellers of liquidity. Due to automation human sellers have been replaced by computers that cost far far less. So the cost of liquidity has gone down DRAMATICALLY. Spreads used to be a quarter (or higher). Now they are a penny. That's a 25x reduction!

Here's the chief executive of Vanguard (the world's largest mutual fund company) talking about how HFTs have lowered trading costs for their clients:

http://www.cnbc.com/id/101615521

If you slow down cancellations or otherwise try to slow information flow to HFTs you will simply raise their risk which will force them to raise the price they charge for selling liquidity by increasing spreads.

Stop thinking of HFTers as parasites and think of them as service providers and you'll have a clearer picture of reality.


Cancellations aren't free and they aren't instant. Every (reputable) exchange out there requires you maintain a fill ratio or you will be fined. That is, you have to maintain a minimum number of quotes that get filled before they are cancelled.


I don't know how "fill ratio" is defined. I don't see a problem in unfilled orders at prices that are never reached but if you pull out from the market as soon as someone offers the other side to your trade that doesn't sit well with me. I wouldn't mind companies offering small quantities at the current price and other quantities at progressively higher prices and cancellations/adjustments being made after a particular trade had been processed which would be a transparent way to handle it

What do you mean that the cancellations aren't instant? If they can outrun a bid to accept them that is instant as far as I'm concerned.


Well "fill ratios" are defined differently by each different exchange, but the simplest definition is the number of orders entered divided by the number of orders traded must be above a certain threshold or you will have negative consequences (fees, trade bans, etc).

Your description of how companies are pricing orders is exactly what's happening. On a given exchange no cancel can outrun a bid to accept a resting order. In fact, you don't have any idea that the bid has arrived until after a trade has happened.

What is being described in the article is that a trader is viewing an aggregate of all exchanges as if they were one exchange (either due to ignorance, naivety, bad tools, or due to misrepresentation). The trader then takes out an entire price level at one exchange (none of those orders are cancelled) before trying to do the same thing at the other exchanges. The participants who just got filled at exchange A, then cancel their orders at exchange B. To the trader who was viewing multiple exchanges as a single entity this seemed like it happened all at once, but to the traders who were viewing the exchanges, correctly, as different entities there is a timeline that is observable and public (in fact nanex describes it).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: