Thank you for your interest in contributing to AlphaQuant β the open-source JavaScript framework for quantitative analysis and algorithmic trading.
We welcome contributions of all kinds: code, documentation, examples, bug reports, and suggestions.
AlphaQuant uses a monorepo structure:
/packages/ core/ # DataFrame & data utilities ta/ # Technical analysis indicators strategy/ # Strategy interfaces and helpers backtest/ # Backtesting engine report/ # Output and metrics formatter
/apps/ cli/ # Node.js CLI tool playground/ # Browser-based playground
-
Fork the repository on GitHub
-
Clone your fork locally:
git clone https://github.com/AlphaQuantJS/alphaquant.git cd alphaquant npm install -
Create a feature branch:
git checkout -b feature/my-awesome-feature
-
Make your changes inside the appropriate
packages/*orapps/*folder. -
Run tests and linting before pushing:
npm run lint && npm run test
-
Commit using conventional format (see below)
-
Push and open a Pull Request to
mainordevbranch
AlphaQuant is performance-critical financial software.
Please read our Coding Guidelines to understand:
- How to write high-performance, V8-optimized JavaScript;
- Best practices for financial accuracy (avoid rounding errors, use integers/BigInt/etc);
- Structuring modular code that runs in Node.js and browser;
- Error handling, testing, and profiling recommendations.
Following these practices ensures code correctness, maintainability, and speed.
- Code compiles and builds successfully
- Tests are added or updated
- Linting passes (Prettier/ESLint)
- No console.logs or debug code left
- Follows commit message convention (see below)
- Good description of the changes
We use Conventional Commits to generate changelogs and version bumps automatically.
<type>(scope): short description
feat(ta): add Bollinger Bands indicatorfix(backtest): fix division by zero bugdocs(core): improve merge() API documentation
| Type | Purpose |
|---|---|
feat |
A new feature |
fix |
A bug fix |
docs |
Changes to documentation |
refactor |
Code refactoring (no behavior change) |
test |
Adding or modifying tests |
chore |
Other changes (tooling, CI, etc) |
π‘ Commit messages are automatically checked via
commitlintandhusky.
Please use GitHub Issues and choose the appropriate template:
- Bug Report β something isn't working
- Feature Request β suggest a new idea
- Discussion β open-ended question or idea
We tag good beginner tasks as good first issue!
Documentation is located in /docs/ (or README.md in each package). You can also contribute:
- Code examples for the
/examples/folder - Improvements to API docs or tutorials
- Ask questions via GitHub Discussions
- Follow us on Twitter @AlphaQuantJS
- Contribute tutorials, videos or content β we love it!
Thank you again for contributing to AlphaQuant! π
Letβs build the future of JavaScript-based quant finance together πΉ