What Is This Project?
A personal research and development project built with Python, used for experimentation. The goal of the tool itself is to allow users to manually simulate trading strategies using real historical stock data.
Try the Simulator
Click here to start testing trading strategies.
Tech Stack
-
Python: Used for frontend and backend.
- Streamlit: Interactive UI for simulating trades and displaying data.
- Flask: Backend framework for handling API requests and data logic.
- PyTest: Unit tests for ensuring functionality.
- Poetry: Dependency management.
- Redis: In-memory cache to speed up data access.
- Docker: Ensures consistent environments for development and deployment.
- Heroku: Cloud platform for hosting the app.
-
CI/CD:
- Designed and implemented a highly effective, secure continuous integration and deployment workflow.
- Pre-commit: Configured automated checks (e.g., linting, formatting) to run before each commit, maintaining code quality and consistency. Also included local test runs that simulate the Heroku deployment environment, helping catch issues early and save development time.
- GitHub Actions: Integrated GitHub Actions to automate testing and deploy code after successful test runs and pull request approvals.
- Static Pages: Developed additional informational pages using HTML and CSS.
Highlighted Fix
-
Memory Leak: Tracked down and resolved by removing
lightweight_charts
. See the demo repo and my post on discuss.streamlit.io .
What's Next?
Check the roadmap for upcoming features and improvements.