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 designed for clarity and extensibility. Perfect for researchers, students, and developers interested in quantitative finance.
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.
51
+
52
+
---
53
+
54
+
## Why this project
55
+
56
+
QuantResearchStarter aims to provide a clean, well-documented starting point for quantitative research and backtesting. It focuses on:
57
+
58
+
* **Readability**: idiomatic Python, type hints, and small modules you can read and change quickly.
59
+
* **Testability**: deterministic vectorized backtests with unit tests and CI.
60
+
* **Extensibility**: plug-in friendly factor & data adapters so you can try new ideas fast.
61
+
62
+
---
63
+
64
+
## Key features
65
+
66
+
* **Data management** — download market data or generate synthetic price series for experiments.
67
+
* **Factor library** — example implementations of momentum, value, size, and volatility factors.
- `"W"`: Weekly rebalancing (rebalances when the week changes)
161
+
- `"M"`: Monthly rebalancing (rebalances when the month changes)
162
+
163
+
> The code above is illustrative—see `examples/` for fully working notebooks and scripts.
164
+
165
+
---
166
+
167
+
## CLI reference
168
+
169
+
Run `qrs --help` or `qrs <command> --help` for full usage. Main commands include:
170
+
171
+
* `qrs generate-data` — create synthetic price series or download data from adapters
172
+
* `qrs compute-factors` — calculate and export factor scores
173
+
* `qrs backtest` — run the vectorized backtest and export results
174
+
175
+
---
176
+
177
+
## Project structure (overview)
178
+
179
+
```
180
+
QuantResearchStarter/
181
+
├─ src/quant_research_starter/
182
+
│ ├─ data/ # data loaders & adapters
183
+
│ ├─ factors/ # factor implementations
184
+
│ ├─ backtest/ # backtester & portfolio logic
185
+
│ ├─ analytics/ # performance and risk metrics
186
+
│ ├─ cli/ # command line entry points
187
+
│ └─ dashboard/ # optional Streamlit dashboard
188
+
├─ examples/ # runnable notebooks & example strategies
189
+
├─ tests/ # unit + integration tests
190
+
└─ docs/ # documentation source
191
+
```
192
+
193
+
---
194
+
195
+
## Tests & CI
196
+
197
+
We include unit tests and a CI workflow (GitHub Actions). Run tests locally with:
198
+
199
+
```bash
200
+
pytest -q
201
+
```
202
+
203
+
The CI pipeline runs linting, unit tests, and builds docs on push/PR.
204
+
205
+
---
206
+
207
+
## Contributing
208
+
209
+
Contributions are very welcome. Please follow these steps:
210
+
211
+
1. Fork the repository
212
+
2. Create a feature branch
213
+
3. Add tests for new behavior
214
+
4. Open a pull request with a clear description and rationale
215
+
216
+
Please review `CONTRIBUTING.md` and the `CODE_OF_CONDUCT.md` before submitting.
217
+
218
+
---
219
+
220
+
## AI policy — short & practical
221
+
222
+
**Yes — you are allowed to use AI tools** (ChatGPT, Copilot, Codeium, etc.) to help develop, prototype, or document code in this repository.
223
+
224
+
A few friendly guidelines:
225
+
226
+
* **Be transparent** when a contribution is substantially generated by an AI assistant — add a short note in the PR or commit message (e.g., "Generated with ChatGPT; reviewed and adapted by <your-name>").
227
+
* **Review and test** all AI-generated code. Treat it as a helpful draft, not final production-quality code.
228
+
* **Follow licensing** and attribution rules for any external snippets the AI suggests. Don’t paste large verbatim copyrighted material.
229
+
* **Security & correctness**: double-check numerical logic, data handling, and anything that affects trading decisions.
230
+
231
+
This policy is intentionally permissive: we want the community to move fast while keeping quality and safety in mind.
232
+
233
+
---
234
+
235
+
## License
236
+
237
+
This project is licensed under the MIT License — see the `LICENSE` file for details.
238
+
239
+
---
240
+
241
+
## Acknowledgements
242
+
243
+
Built with inspiration from open-source quant libraries and the research community. If you use this project in papers or public work, a short citation or mention is appreciated.
0 commit comments