Application Features | Requirements | Project Components | Resources and Inspirations | Hire Me
- I started investing on stock market 8 years ago and always wanted to make a comprehensive assessment of my portfolio performance. However, the only thing my broker could provide was the status quo of my portfolio and its holdings. Not much has changed until today.
- Sometimes, I also learn from somewhere very interesting investment strategies and stock picks but did not have a tool to keep track their performance for future usage.
- Today, with enough technical skills, I want to build an application that enables investors to manage hypothetical portfolios, experiment investment strategies, and automate their risks/returns performance assessment.
- Beside the above motivation, I also consider Trade Evaluation a means of demonstrating my technical skills and financial knowledge to the recruiters.
1. Log in with demonstration account: If you are a visitor and just want to know how the features look like, go to log in page and use the account that has been set up for demonstration purpose.
2. Three markets supported: U.S, Germany, Vietnam. 3. Get stock quote: select the market, enter the stock symbol (in Bloomberg standard) and hit "Quote" to see more details. Quote can be used to check whether a symbol is valid.
4. Make hypothetical trades: Select buy/sell, choose the symbol, type in volume, and hit "Buy/Sell".
5. Review current status of portfolios: individual holding level and aggregate portfolio level.
6. See transaction history and filter it by market.
7. Portfolio performance evaluation: select market to see how net asset value grew, then select a respective benchmark to compare portfolio returns against.
Try those features now: sphanfinance.com
- Python 2.7 or above.
- HTTP Server (e.g. Google Cloud server)
- MySQL
- U.S. and German markets: IEX, Yahoo Finance, Bloomberg
- Vietnam market: Saigon Securities Inc. (SSI), VietDragon Securities Corp. (VDS)
✍️ In order to minimize the database that needs storing and to save deployment costs, I only store data related to users and query market data from third-paty sources. This requires me to compromise the application performance a bit but I still managed to optimize data processing algorithm and limit reponse time to less than 20s for the most complicated requests.
The logic part of the app is written using Python Flask, a light-weight and easy-to-use web development package. Since I am not a professional web developer, using Python enable me to focus on my strengths in building algorithms and data analytics while minimizing complexity of the code for the web server. This logic part comprises of 3 python files: app.py
, evaluation.py
, and helpers.py
.
app.py
: Focuses on handling requests from client side, storing client-related data (e.g. their credentials, transaction data).evaluation.py
: Focuses on querying time-series data from external APIs to support the core-function performance evaluation of the application.helpers.py
: Provides functions to request basic data from APIs, perform analyses, and other logical tasks to support the main fileapp.py
.
A sample file finance.db
is included above to give you a perspective of how the relational database in this case looks like.
- 📘 Computational thinking courses - Mannheim university.
- 📖 Introduction to Computer Science (CS50) - Harvard University.
- ☁️ Google Cloud Tech - Youtube Channel.
- 🎁 Free Stock Data for Python Using Yahoo Finance API - Towards Data Science.
Looking for a finance professional who is interested in and capable of using programming to build financial and data analytics apps? Get in touch: pnthanhson.ftu2@gmail.com