Skip to content

Latest commit

 

History

History
122 lines (90 loc) · 3.15 KB

File metadata and controls

122 lines (90 loc) · 3.15 KB

Contributing to QuantMarketLab

Thank you for your interest in contributing to QuantMarketLab! This document provides guidelines and instructions for contributing.

🤝 How to Contribute

Reporting Bugs

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

Suggesting Features

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)

Code Contributions

  1. Fork the repository

    git clone https://github.com/Joe251/QuantMarketLab.git
    cd QuantMarketLab
  2. Create a branch

    git checkout -b feature/your-feature-name
    # or
    git checkout -b fix/your-bug-fix
  3. Make your changes

    • Follow the existing code style
    • Add comments and docstrings for new functions/classes
    • Update documentation if needed
    • Add tests if applicable
  4. Test your changes

    • Ensure existing tests pass
    • Test your new functionality
    • Check for linting errors
  5. Commit your changes

    git add .
    git commit -m "Add: description of your changes"

    Use clear commit messages:

    • Add: for new features
    • Fix: for bug fixes
    • Update: for updates to existing features
    • Refactor: for code refactoring
    • Docs: for documentation changes
  6. 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)

📝 Code Style Guidelines

Python Style

  • 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

Documentation

  • Update README.md if adding new features
  • Add docstrings to new functions/classes
  • Include examples in docstrings when helpful

Testing

  • Write tests for new functionality
  • Ensure all tests pass before submitting PR
  • Add edge case tests when relevant

🏗️ Project Structure

When adding new features:

  • Data loading: Add to util/stock/, util/crypto/, or util/news/
  • Signals/Indicators: Add to signals/
  • Factors: Add to factor/
  • Models: Add to multifactor/
  • Backtesting: Add to backtester/
  • API endpoints: Add to app.py

✅ Checklist Before Submitting PR

  • 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

🐛 Known Issues

Check existing issues before reporting bugs to avoid duplicates.

💬 Questions?

Feel free to open an issue for questions or discussions about contributions.

Thank you for contributing to QuantMarketLab! 🎉