63 comments

[ 2.9 ms ] story [ 138 ms ] thread
I'm pretty ignorant of investing services/brokers...

Is this a case of people putting all their eggs in one basket? Does Robinhood have a "guaranteed" 99.9xxx% uptime guarantee?

Sucks for a lot of people who evidently are putting a lot of money in the market and couldn't do anything due to a technical issue.

This is what $0 commissions gets you...
Most major discount brokerages are also at $0 commissions. They make their money off of net interest, asset management fees, margin, security lending arrangements, and order flow.
Well, it looks like they make money mostly through a product that doesn't work literally you need it most, but sure.
Robinhood is not a major discount brokerage.
(comment deleted)
A common adage is that the best service a brokerage can provide is to cut the phone lines during a crash :)

Regardless: Robinhood is aimed at individual consumers, not sophisticated investors. It's not uncommon for prosumers to have several brokerages, but of course you're limited in the size of the moves you can make (probably not a bad thing for the median Robinhood user).

If you cared this much, you probably had IBKR.

I get the feeling that the less RH is available, the less money their customers will lose.
Well in this case it saved me several hundreds of dollars because I wasn't able to sell my puts. Of course, it could have just as easily gone the other way and made me lose hundreds if the market reacted more positively to the fed cut.
Power Etrade was pretty sluggish today for awhile as well.
And this is why larger brokerages are worthwhile. Not to mention, if my bank's app freezes, I can call someone to place a trade if needed.
Seasoned traders probably have a second account to hedge.
almost certainly...the issue is that RH claims to be for the beginner trader. The last two days will push a ton of customers away especially with how volatile the market has been and will continue to be. No one with any sense would continue to trade on a platform where you might not be able to touch anything for an entire day or two.
I'm not a Robinhood user -- do they have guaranteed stop losses? This is something that could appease lots of users (assuming it's used correctly) even in this kind of situation (since _guaranteed_ stop losses exist pretty much for exactly this eventuality).
Stop losses are a feature you can use on the platform, but I don't know if they were executed on time if the whole platform was down...
Usually stop losses are an exchange feature, their atomicity is sort of the point. They wouldn’t be impacted by platform outages.

That said I don’t have any idea about how Robinhood implements them.

Stop loss and stop limit orders are brokerage features.
Interestingly when I was still writing trading platforms you would be dead wrong. But in the last few years at least nyse & bats no longer offer stops.

https://www.google.com/amp/s/www.cnbc.com/amp/2015/11/18/why...

Lots of other exchanges still offer them https://www.cmegroup.com/confluence/plugins/servlet/mobile?c...

I’d be curious how brokerages actually implement stops on exchanges that don’t offer them natively because synthetic stops have notoriously bad edge cases.

Sure, but guranteed stop losses are a form of insurance where, even if the platform's out and stop losses don't execute in time, the customer will be reimbursed for any money lost as a result -- this is what's really more valuable here.
The only guarantees on Robinhood is to the hedge funds they sell their order book to (i.e. actual customers) that the counterparty is dumb money.
I checked one of their backend engineering job postings, using Python and Go... mostly python? Probably should have chosen something ~~boring~~ safe, like Java. A dynamic language like python/ruby doesn't seem to be a good choice for critical financial applications.

I'm know it can be done in python, but its about curbing any potential for human errors. Interested in seeing the RCA for this.

Changing languages doesn't fix bottlenecks, it just moves it. A good team can make a high perf system in near any language, some will just require more $ per month in hardware...
Why is an "exciting" (antonym to boring) language bad for this, and what makes a language "exciting"?
Static typing makes it easier to discover errors before the code is running in production.
There is no rigorous study that has proven this. I wish there were because I strongly prefer static typing but it’s more a belief than anything proven.
Perhaps, but how does static typing make a language 'boring' or dynamic typing 'exciting'. I certainly consider Elm and Haskell more 'exciting' than Python or PHP.
replace boring with safe. you get the point.
Rigorous, non-optional type checking isn't such a bad idea for high reliability.
Counterpoint: Erlang.

Also, if "rigorous, non-optional" is good, why would you want _Java_ and not, I dunno, Haskell or ML or some other powerful type system? Is there any evidence this bug would have been prevented in Java? If anything, Java is prime ground for the related YYYY vs yyyy formatter bug.

Hiring pool for Java is orders of magnitude larger, let's not pretend this isn't an issue with esoteric languages like Haskell
So your argument is you need a language with static typing to prevent defects, but also the language must be proverbially this tall to ride, and so you end up with, say, Java?
You need a language that isn't prone to foot bullets in long lived code that will pass through many developers with varying degrees of experience. Ada, Rust, Java would be suitable. I'm not a huge fan of any of these but they are better than winging it on duck typing for mission critical code.
> Counterpoint: Erlang.

Not even that much of a couterpoint; if you want strict typing, you can do it in Erlang with pattern matching / guards and tagged tuples, and/or with Dialyzer and type annotations.

You can write extremely safe code in any language. Python isn’t even a bad choice (compared to other dynamic languages) because you can at least get static type checking via type hints.
> You can write extremely safe code in any language

I said that at the end of my comment. But like you said, you have to opt-in to more rigorous checks instead of being forced to do them.

Python is pretty boring, quite honestly, and it's as old as Java (4 years older than publicly-available Java). There are a variety of compelling engineering reasons to choose Java over Python, but a lack of boring conservatism is not one of them.
you're right. wrong word. changed to "safe", which would also include OCaml, Haskel, C#/F#, etc.
As far as I know, there’s no evidence of correlation between static types and bug density. Java should be no better a choice than Python or Ruby. You should still be testing your code.
It was pretty easy to miss if you're in the habit of blinking.
This suggests the outage was short. It lasted the entire trading day, during one of the largest single-day gains of the last few years, during one of the highest-volatility spikes of the decade.
No, this suggests that the rally was short.
I saw a tweet that showed they didn't 'account for' leap years.. And by account for I mean: use a standard date library to handle dates. I too have made this mistake when younger and tried to be smart with dates, but not on a f'ing multi million dollar service >_<
Could you stop spreading a hoax.....
>A hoax is a falsehood deliberately fabricated to masquerade as the truth

Perse probably didn't know it was a hoax.

(comment deleted)
People saying the leap year thing is a hoax need to review what happened precisely four years earlier. (Hint: the same damn thing)
Wouldn't that have happened on the first trading day following the 28th? People are saying that the outage four years ago hit on Wednesday the 2nd. That makes no sense for this narrative.
I would love to get on RH put down train, but my not no name 401k provider had issues with their website entire Thurs morning last week.

It is kinda like a bank rush, only really well heeled institutions can survive everyone and their mother jumping in the fray.

Now.. the common question is whether the company should have an infrastructure that can support its customer load at times like this.

I think to answer your question, yes, the company absolutely should have an infrastructure that can support this kind of load. The product that RH is selling is execution of trades, and failure to do so has drastic consequences. They are not some social network that can afford to go offline for a few hours due to high traffic, the stakes are significantly different.

Another thing to consider is that there are so many great alternatives to RH that were online, despite encountering similar load. If the whole stock trading network went down that would be a different conversation, but users of other platforms were able to trade, and thus RH not being able to provide the infrastructure to handle the load is a huge disservice to its customers.

Believe it or not, I agree with you. In cases like this I point to ISPs and their ability to sell more bandwidth than they can reasonably handle. Brokerages for regular clients know that lost uptime equals angry customers, who can and will move their money ( if not more ).
Quantitative hedge funds must be making an absolute killing these couple weeks from the number of individual traders trying to daytrade through all this volatility.
They are. A lot can just mint money in volatile markets.
Individual traders occasionally do beat the market makers. That’s why market makers need special rules to boost their profits... remember, nothing stopping individual billionaires from speculating in the market just like individual 9-5’ers.
May be it was a good thing. The market drops again today. The rally was a dead cat bouncing.
Meanwhile I hate the look of tightly manicured lawns. You should definitely grow long grasses.

Without a more rigorous set of criteria we are arguing opinion. While my opinion is the same on static types there are people with their own experience on the other side of the argument.

They too have lived it.