Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
What stocks do I need to filter out for Robinhood?

Last week, every day I had a stock gets rejected by Robinhood, TISA. I added a filter to try and compensate:

morningstar.company_reference.country_id.latest.matches('USA')

and in the back traces it did remove TISA so I thought it might solve the issue. Now the pipeline is producing EGT, which is again rejected when ordered. All it says on Robinhood when looking at these stocks is that "This stock is not currently traceable on Robinhood". I've tried contacting Robinhood, but two attempts have met zero responses. Quantopian support doesn't have a good way to find out the reason for rejection. Does anyone know what are all the filters that need to be added so that Quantopian algorithms only produce stocks that Robinhood can trade with?

2 responses

Hi Wenqi,

Robinhood has some sensible controls to prevent trading penny stocks, foreign stocks, etc. as those are considered higher risk. Robinhood details these limitations on their webpage, but in a nutshell:

1) Price must be greater than $4.00.
2) Asset must be domiciled in the US (so no ADRs)
3) Must be traded on an exchange (so no OTCs)

You can get the full list on this page:
https://support.robinhood.com/hc/en-us/articles/208650286-Eligible-Securities

So to filter, I might try the Q500 or Q1500, then add a minimum price of $4.00. That should catch most of it!

Cheers,
Ian

I'm taking care of 2 and 3 already but 1 doesn't seem to be a strict bound since I've been trading below that limit. Below 4.00, is there's no way for the pipeline to check whether the stock is tradeable or not by Robinhood? I tried to keep a variable that keeps track of rejected stocks, but I don't see a way to update the pipeline with that list once it's created and attached in initialize. I think the next best thing is to get more stocks than I need out of the pipeline and eliminate the rejected stock list in before_trading_start, unless someone has a better idea on how to deal with this.