Inspiration
During the lockdown, our team had a lot more time to explore our interests, and something we particularly enjoyed learning about was finance. It certainly didn't hurt that during this period, the markets saw a huge wave of new retail investors which inspired us to continue learning more regarding finance. In addition, through our volunteer experiences, we noticed that the main cause behind financial insecurity was the lack of education. This meant that individuals with financial insecurity were more likely to perpetuate their predicament, and thus be unable to pursue further opportunities. To mitigate this, we wanted to create an algorithm that combines our passion for finance and computer science and contributes to society, hence our StockSmart algorithm.
What it does
Through our endeavour into finance, we realized how time-intensive financial analysis was, so we sought to make it easier and thus, more accessible. As a result, we coded an algorithm to provide a comprehensive analysis derived from fundamental data to produce an accurate recommendation. We prioritized user-friendliness; consequently, all the user has to do is enter the desired ticker, press enter, and the algorithm outputs a "Buy", "Sell" or "Hold" recommendation, literally at a click of a button.
How we built it
In order to provide a comprehensive analysis of the desired security, we needed to pull data from a financial source to use for our analysis. As a result, we used the Yahoo Finance Python API to source data from and provide analysis based on these numbers.
Challenges we ran into
Our biggest challenge was being able to access the API, and subsequently, the parameters to use. In a lot of scenarios, financial metrics need to be used in conjunction with one another to be accurate. Since we ask the user for only one input, using financial metrics that require industry analysis would be inaccurate, hence their exclusion from our parameter list. As a result, our results may not be as accurate as they otherwise would be. In terms of accessing the API, our team is relatively new to hackathons and coding (this is our first one) in general, so we were unfamiliar with the syntax and how to access data stored within the API.
Accomplishments that we're proud of
Considering we have never participated in a hackathon before, nor have we coded much past print("Hello World"), we are proud of the fact that we were able to create a comprehensive analysis algorithm, especially with the time constraints. Since the markets are currently closed, we can't speak on how accurate the algorithm is, however, we used industry benchmarks to set our parameters so we will have to see.
What we learned
We learnt a lot through completing this hackathon. We learned python in general, and how to use API's and access dictionaries. We also learned a variety of financial metrics, what they mean, and what is considered a good value for said metrics, which will undoubtedly benefit us in the future. Most importantly, we learned how crucial teamwork is to complete a project on time and to the best of our abilities. We also can't forget coffee.
What's next for StockSmart
Had we had more time to complete our algorithm, we would want to improve/create a lot of new things. For example, to make it, even more, user-friendly, we would implement code within a site, so the user doesn't have to fool around with the console. The reason why we didn't do so for this project was since we are novice programmers and didn't have the time within the competition to learn the languages required to create a site. In addition, rather than have the user input the ticker themselves, we would add a function where it automatically analyses all stocks in the database and returns the top 10 or so best picks and worst picks, making it more functional and intuitive. Perhaps in the future, we can consider adding a trading function, where we allow the algorithm to identify and execute investing decisions entirely autonomously on our behalf using our analysis.
Built With
- python
- yahoo-finance
Log in or sign up for Devpost to join the conversation.