Inspiration
When I was in high school, I had this capstone project for my financial securities course, where I had to analyze some of the stocks that I bought during the stock simulation that we did. I had traded over 30 different stocks, and I had to analyze each stock with 10 different ratios and comment on each of them. I remember it being a very tedious and boring project, and it took a lot of time as well. I ended up making a lot of minor mistakes as well when comparing and inputting the ratios. I remember wishing I could analyze the statistics of any stock with the click of a button.
What it does
This project will take a stock ticker as users input, and output basic information such as ticker, company name, market price, etc. Then it will output the ratios that will be taken into consideration, these ratios fall under 4 main categories: earnings, liquidity, profitability, and solvency. DesktopAnalyst will then analyze these ratios and compare them to its industry, and then output a tailored message pertaining to the strength of the stock in the above four categories. You may also wish to view the ratio comparisons for yourself. You can click the detailed analysis button to create a text file with each ratio comparison.
How we built it
I built this project using Python as the main programming language. I used Yahoo Finance to get the stock data, and I used Tkinter to build the GUI. I also got the industry median ratio values from websites that I cited on the project readme, and in the sector_medians.py file that is included.
Challenges we ran into
The main challenge I ran into was optimization. When I would enter the ticker symbol and hit "Analyze!" it would take more than 30 seconds to get the data. I realized that most of my functions were calling on the Yahoo Finance API for data, therefore I optimized my program by parsing the data into a dictionary, and then passing it into each function as a parameter, instead of calling for the API every time. This made the "Analyze!" function take less than 5 seconds on average to display an output.
Accomplishments that we're proud of
I am proud of the project that I have built, as I am still a beginner programmer, and this is my first hackathon. I am also proud of my work ethic during this hackathon, as a serial procrastinator, as I stayed on task the entire time, and never put off my work.
What we learned
I learned a lot during this hackathon. I learned a lot about creating a GUI in python using Tkinter. I learned more about using the Yahoo Finance API. What I have learned the most about is the types of ratios that I can use to analyze a company's books. I learned what each of the ratios means, and how to figure out if a company has a good financial standing.
What's next for DesktopAnalyst
I would love to implement more means of analysis for stocks, besides financial ratios. For example, I would like DesktopAnalyst to be able to find the target price for a stock based on its financial statistics. I would also like to implement a recommendation system, in the case, the stock that the user inputted has weak financial standing, Desktop Analyst will recommend a better stock in the same sector.
Built With
- python
- tkinter
- yfinanceapi
Log in or sign up for Devpost to join the conversation.