Releases: Asifdotexe/StoDir
v1.0.0
StoDir v0.1.1 - Portfolio Generalization & Professional Tooling
This is a major milestone release for StoDir, transforming it from a single-ticker forecasting tool into a robust, end-to-end machine learning system. This update focuses on three core pillars: a vastly improved ML methodology, a professional-grade system architecture, and a complete overhaul of the developer and user experience.
Major Features & Architectural Overhaul
-
Portfolio-Based Model Generalization: The model is no longer trained on a few hardcoded tickers. It is now trained on a diverse portfolio of stocks from major global indices (S&P 500, NASDAQ-100, etc.), leading to a more robust and generalized forecasting ability.
-
Decoupled Training & Inference: The system is now split into two distinct parts: a standalone Training Pipeline (train.py) that builds the model artifact, and a lightweight Inference Application (Streamlit App & CLI) that loads the pre-trained model for fast, on-demand predictions.
-
Hugging Face Hub Integration: The project now uses Hugging Face Hub as a model registry to store and version trained artifacts. The Streamlit app securely downloads the pinned model version, ensuring stable and reproducible deployments.
-
New Command-Line Interface (CLI): Alongside the web app, a new CLI (cli.py) has been introduced for programmatic forecasting and automated plot generation directly from the terminal.
Machine Learning Methodology Upgrades
-
Robust Backtesting Engine: A proper time-series backtesting module (stodir/validation.py) has been implemented. It uses a sliding-window approach to simulate historical performance, providing a much more realistic evaluation of the model's precision than a simple train-test split.
-
Probabilistic Forecasts: The model now outputs not just a direction ("UP"/"DOWN") but also a confidence probability, providing users with a clearer understanding of the model's certainty for each forecast.
User Experience & UI Redesign
- Complete UI Overhaul: The Streamlit application has been redesigned into a modern, two-column dashboard.
- New "Model Insights" Card: To improve transparency, the UI now displays the exact feature values that the model used to make its latest prediction.
- "Midnight Blue" Dark Theme: A custom, professional dark theme has been implemented for a better user experience. The data visualizations have been updated to match this theme, ensuring a seamless and polished look.
Developer Experience & Tooling
-
Migration to Poetry: The project has been migrated from requirements.txt to Poetry for dependency management. This ensures fully deterministic and reproducible builds via the poetry.lock file.
-
Centralized Configuration: All key parameters; from feature horizons and model settings to portfolio lists; are now managed in a single config.yaml file, making the system easy to configure and maintain.
-
Comprehensive Documentation: The project documentation has been significantly expanded, with a leaner main README.md and detailed explanations of the system architecture and methodology in the docs/ folder.
-
General Housekeeping: Added a LICENSE file, improved .gitignore, and configured static analysis tools for better code quality.
What's Changed
- 1 development by @Asifdotexe in #2
- 3 feature engineering and model selection by @Asifdotexe in #4
- #5 creating the model and visualising it by @Asifdotexe in #6
- 7 documentation by @Asifdotexe in #8
- 9 data collection new approach by @Asifdotexe in #10
- 11 data exploration and cleaning by @Asifdotexe in #12
- 13 model development by @Asifdotexe in #14
- 15 backtesting and model improvements by @Asifdotexe in #16
- Update README.md by @Asifdotexe in #17
- Update README.md by @Asifdotexe in #19
- 18 implementing command line execution by @Asifdotexe in #20
- 21 implementing streamlit application by @Asifdotexe in #22
- Update README.md by @Asifdotexe in #23
- #25 Update README.md by @Asifdotexe in #26
- 27 coding standard enhancements by @Asifdotexe in #28
- 29 yfinance isnt returning any values by @Asifdotexe in #30
- 31 project restructuring by @Asifdotexe in #32
- #33 added logic to perform backtesting by @Asifdotexe in #36
- 34 documentation by @Asifdotexe in #38
- 35 decouple training and inference by @Asifdotexe in #37
- 39 UI improvement by @Asifdotexe in #42
New Contributors
- @Asifdotexe made their first contribution in #2
Full Changelog: https://github.com/Asifdotexe/StoDir/commits/v1.0.0