Skip to content

Commit 4f36fff

Browse files
committed
docs(readme): improve README and AI policy
1 parent f90bd2e commit 4f36fff

File tree

1 file changed

+137
-18
lines changed

1 file changed

+137
-18
lines changed

README.md

Lines changed: 137 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,42 @@
11
# QuantResearchStarter
22

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.
4-
5-
![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)
6-
![License](https://img.shields.io/badge/license-MIT-green)
3+
[![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)
4+
[![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE)
75
[![CI](https://github.com/username/QuantResearchStarter/actions/workflows/ci.yml/badge.svg)](https://github.com/username/QuantResearchStarter/actions)
86

7+
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
12+
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.
18+
19+
---
20+
921
## Features
1022

11-
- **Data Management**: Download real data or generate synthetic data for testing
12-
- **Factor Library**: Implement momentum, value, size, and volatility factors
13-
- **Backtesting Engine**: Vectorized backtester with transaction costs and constraints
14-
- **Risk Metrics**: Comprehensive performance and risk analytics
15-
- **Modular Design**: Easy to extend with new factors and strategies
16-
- **Production Ready**: Type hints, tests, CI/CD, and documentation
23+
* **Data management** — download market data or generate synthetic price series for experiments.
24+
* **Factor library** — example implementations of momentum, value, size, and volatility factors.
25+
* **Vectorized backtesting engine** — supports transaction costs, slippage, and portfolio constraints.
26+
* **Risk & performance analytics** — returns, drawdowns, Sharpe, turnover, and other risk metrics.
27+
* **CLI & scripts** — small tools to generate data, compute factors, and run backtests from the terminal.
28+
* **Production-ready utilities** — type hints, tests, continuous integration, and documentation scaffolding.
1729

18-
## Quick Start
30+
---
1931

20-
### Installation
32+
## Quick start
33+
34+
### Requirements
35+
36+
* Python 3.10+
37+
* pip
38+
39+
### Install locally
2140

2241
```bash
2342
# Clone the repository
@@ -27,25 +46,125 @@ cd QuantResearchStarter
2746
# Install package in development mode
2847
pip install -e .
2948

30-
# Install development dependencies
49+
# Install development dependencies (tests, linters, docs)
3150
pip install -e ".[dev]"
3251

33-
# Optional UI
52+
# Optional UI dependencies
3453
pip install streamlit plotly
3554
```
3655

37-
### Quick Demo
56+
### Demo (one-line)
3857

3958
```bash
4059
make demo
4160
```
4261

43-
Or step-by-step:
62+
### Step-by-step demo
4463

4564
```bash
65+
# generate synthetic sample price series
4666
qrs generate-data -o data_sample/sample_prices.csv -s 5 -d 365
67+
68+
# compute example factors
4769
qrs compute-factors -d data_sample/sample_prices.csv -f momentum -f value -o output/factors.csv
70+
71+
# run a backtest
4872
qrs backtest -d data_sample/sample_prices.csv -s output/factors.csv -o output/backtest_results.json
4973

50-
# Streamlit dashboard (optional)
51-
streamlit run src/quant_research_starter/dashboard/streamlit_app.py
74+
# optional: start the Streamlit dashboard
75+
streamlit run src/quant_research_starter/dashboard/streamlit_app.py
76+
```
77+
78+
---
79+
80+
## Minimal example
81+
82+
```python
83+
from quant_research_starter.backtest import Backtester
84+
from quant_research_starter.data import load_prices
85+
from quant_research_starter.factors import Momentum
86+
87+
prices = load_prices("data_sample/sample_prices.csv")
88+
factor = Momentum(window=63)
89+
scores = factor.compute(prices)
90+
91+
bt = Backtester(prices, signals=scores, capital=1_000_000)
92+
results = bt.run()
93+
print(results.performance.summary())
94+
```
95+
96+
> 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.
169+
170+
---

0 commit comments

Comments
 (0)