Thank you for your interest in contributing to QuantMarketLab! This document provides guidelines and instructions for contributing.
If you find a bug, please open an issue with:
- A clear title and description
- Steps to reproduce the issue
- Expected vs actual behavior
- Your environment (OS, Python version, etc.)
- Relevant error messages or logs
We welcome feature suggestions! Please open an issue with:
- A clear description of the feature
- Use cases and examples
- Potential implementation approach (if you have ideas)
-
Fork the repository
git clone https://github.com/Joe251/QuantMarketLab.git cd QuantMarketLab -
Create a branch
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Make your changes
- Follow the existing code style
- Add comments and docstrings for new functions/classes
- Update documentation if needed
- Add tests if applicable
-
Test your changes
- Ensure existing tests pass
- Test your new functionality
- Check for linting errors
-
Commit your changes
git add . git commit -m "Add: description of your changes"
Use clear commit messages:
Add:for new featuresFix:for bug fixesUpdate:for updates to existing featuresRefactor:for code refactoringDocs:for documentation changes
-
Push and create Pull Request
git push origin feature/your-feature-name
Then create a Pull Request on GitHub with:
- A clear title and description
- Reference to related issues (if any)
- Screenshots or examples (if applicable)
- Follow PEP 8 style guide
- Use type hints where appropriate
- Write docstrings for all public functions and classes
- Keep functions focused and single-purpose
- Use meaningful variable and function names
- Update README.md if adding new features
- Add docstrings to new functions/classes
- Include examples in docstrings when helpful
- Write tests for new functionality
- Ensure all tests pass before submitting PR
- Add edge case tests when relevant
When adding new features:
- Data loading: Add to
util/stock/,util/crypto/, orutil/news/ - Signals/Indicators: Add to
signals/ - Factors: Add to
factor/ - Models: Add to
multifactor/ - Backtesting: Add to
backtester/ - API endpoints: Add to
app.py
- Code follows the project's style guidelines
- All tests pass
- Documentation is updated
- No sensitive information (API keys, passwords) is committed
- Commit messages are clear and descriptive
- PR description explains the changes and motivation
Check existing issues before reporting bugs to avoid duplicates.
Feel free to open an issue for questions or discussions about contributions.
Thank you for contributing to QuantMarketLab! 🎉