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.