I was tired of manually researching common indicators, and decided to automate the process to save myself time.

What it does

ScreenPro uses the IEX API with extensive caching to implement a simple syntax for building stock screeners. Simply load a universe of stocks (for example, S&P 500, top 3000 US stocks, and much more), and apply chained filters to narrow that universe down to a small subset of stocks that match your conditions.

For example, to obtain a list of S&P 500 stocks trading for more than $10 that have fallen more than 10% in the past day, you'd simply call Filter(u.sp500(), c).percent_change(-0.10, False).price(10, True).

How I built it

ScreenPro was built using Python 3.6 for the backend screener and API, and PHP for the frontend interface and cron worker.

Challenges I ran into

Initially, when running screens on large universes, up to 3000 HTTP requests may have been required. This led to very slow response times. This was solved by implementing an HTTP cache, and batching requests to minimize the number of unique requests.

Accomplishments that I'm proud of

The platform works, and I'm planning on using it personally after Boston Hacks.

Built With

Share this project: