How mdesgagnes/quant-backtest-studio works
Quant Backtest Studio is a Streamlit front end and standalone Python package for strategy backtests and price-based watchlist analysis. The main workflow loads Yahoo Finance or uploaded price data, builds signals and target weights, simulates execution and frictions, then analyses and exports results. Separate capabilities include imported-return analysis, exogenous signals, robustness checks, Canadian tax estimates, and Markets analytics. The graph reflects the documented workflow and sampled module responsibilities; app orchestration and several subsystem internals were not fully sampled, so uncertain call links are omitted.
Main entry points: app.py Streamlit app · data.py Price data · __init__.py Strategy registry · library.py Built-in strategies
Components 23
User interface
- Streamlit app
app.py
Backtest workflow
- Price data
qbt/data.py - Yahoo Finance
qbt/external.py - Exogenous data
qbt/exog.py - Strategy registry
qbt/strategies/__init__.py - Built-in strategies
qbt/strategies/library.py - Formula signals
qbt/formula.py - Simulation engine
qbt/engine.py - Trading frictions
qbt/costs.py - Portfolio allocation
qbt/allocation.py
Analysis and reports
- Imported returns
qbt/returns_input.py - Performance metrics
qbt/metrics.py - Robustness suite
qbt/robustness.py - Stress analysis
qbt/stress.py - Tax analysis
qbt/tax.py - Backtest charts
qbt/charts.py - Reports and exports
qbt/full_report.py - Workbook export
qbt/excel_export.py
Markets analytics
- Watchlist analytics
qbt/monitor.py - Markets charts
qbt/tvchart.py
Other components
- User
- CSV / Excel files
- Return files
Connections 23
- User → Streamlit app: configures
- Streamlit app → Price data: requests prices
- Price data → Yahoo Finance: fetches prices
- CSV / Excel files → Price data: supplies prices
- Streamlit app → Exogenous data: loads signals
- Streamlit app → Strategy registry: selects strategy
- Strategy registry → Built-in strategies: registers built-ins
- Built-in strategies → Formula signals: evaluates formulas
- Streamlit app → Simulation engine: runs simulation
- Streamlit app → Portfolio allocation: configures weights
- Simulation engine → Trading frictions: applies frictions
- Streamlit app → Performance metrics: requests statistics
- Streamlit app → Robustness suite: runs checks
- Streamlit app → Stress analysis: tests periods
- Streamlit app → Tax analysis: estimates taxes
- Streamlit app → Backtest charts: renders results
- Streamlit app → Reports and exports: builds report
- Streamlit app → Workbook export: exports workbook
- Return files → Imported returns: supplies returns
- Streamlit app → Imported returns: analyses returns
- Streamlit app → Watchlist analytics: analyses watchlist
- Watchlist analytics → Price data: uses price data
- Streamlit app → Markets charts: renders Markets charts