You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A modular, open-source quantitative research and backtesting framework built for clarity, reproducibility, and extensibility. Ideal for researchers, students, and engineers building and testing systematic strategies.
8
-
9
-
---
10
-
11
-
## Why this project
3
+
A modular, open-source quantitative research and backtesting framework designed for clarity and extensibility. Perfect for researchers, students, and developers interested in quantitative finance.
12
4
13
-
QuantResearchStarter provides a clean, well-documented starting point for quantitative research and backtesting. Its priorities are:
14
-
15
-
***Readability**: idiomatic Python, type hints, and small modules you can read and change quickly.
16
-
***Testability**: deterministic vectorized backtests with unit tests and CI.
17
-
***Extensibility**: plugin-friendly factor & data adapters so you can try new ideas fast.
> See the `examples/` directory for fully working notebooks and scripts.
97
-
98
-
---
99
-
100
-
## CLI reference
101
-
102
-
Run `qrs --help` or `qrs <command> --help` for full usage. Main commands include:
103
-
104
-
*`qrs generate-data` — create synthetic price series or download data from adapters
105
-
*`qrs compute-factors` — calculate and export factor scores
106
-
*`qrs backtest` — run the vectorized backtest and export results
107
-
108
-
---
109
-
110
-
## Project structure (overview)
111
-
112
-
```
113
-
QuantResearchStarter/
114
-
├─ src/quant_research_starter/
115
-
│ ├─ data/ # data loaders & adapters
116
-
│ ├─ factors/ # factor implementations
117
-
│ ├─ backtest/ # backtester & portfolio logic
118
-
│ ├─ analytics/ # performance and risk metrics
119
-
│ ├─ cli/ # command line entry points
120
-
│ └─ dashboard/ # optional Streamlit dashboard
121
-
├─ examples/ # runnable notebooks & example strategies
122
-
├─ tests/ # unit + integration tests
123
-
└─ docs/ # documentation source
124
-
```
125
-
126
-
---
127
-
128
-
## Tests & CI
129
-
130
-
Run unit tests locally with:
131
-
132
-
```bash
133
-
pytest -q
134
-
```
135
-
136
-
CI runs linting (ruff), formatting checks (black), and unit tests across supported Python versions. The workflow is defined in `.github/workflows/ci.yml`.
137
-
138
-
---
139
-
140
-
## Contributing
141
-
142
-
Contributions are welcome. Please follow these steps:
143
-
144
-
1. Fork the repository
145
-
2. Create a descriptive branch (feature or fix)
146
-
3. Add tests for new behavior
147
-
4. Open a pull request with a clear description and rationale
148
-
149
-
Before submitting, ensure your tests pass and formatting/linting checks succeed.
150
-
151
-
---
152
-
153
-
## AI policy (short & practical)
154
-
155
-
**Yes — you may use AI tools** (ChatGPT, Copilot, etc.) to help write or review code and documentation. Please follow these guidelines:
156
-
157
-
***Disclose** substantial AI assistance in the PR or commit message (e.g., "Generated with ChatGPT; reviewed and adapted by @your-username").
158
-
***Review thoroughly** all AI-generated code for correctness, security, numerical stability, and licensing concerns.
159
-
***Add tests** for AI-generated logic when applicable.
160
-
***Respect licenses**: do not paste or rely on large verbatim copyrighted snippets without appropriate permission or attribution.
161
-
162
-
This policy encourages fast iteration while maintaining quality and transparency.
163
-
164
-
---
165
-
166
-
## License
167
-
168
-
This project is available under the MIT License — see the `LICENSE` file for details.
0 commit comments