Back to projects

Quantitative Finance · Python · Streamlit

Python/Git Quant Dashboard (Quant A & Quant B)

Project completed as part of the course Python, Git, Linux for Finance. The deliverable is a single Streamlit application designed to simulate a quantitative asset-management team: market-data retrieval through APIs, strategy backtests, multi-asset portfolio analysis, visual reporting, and risk or return metrics. The project was developed in pairs with a clear split of responsibilities.

PythonStreamlitPandasyfinancePlotlyGitLinux

What this project demonstrates

Ability to deliver an end-to-end quantitative tool: financial-data ingestion, strategy logic, metric calculation, interactive interface, and collaborative integration through Git branches.

Python/Git Quant Dashboard (Quant A & Quant B) - detailed view

My role

Two-person group project. My main contribution was Quant A: loading CAC40 data through APIs, implementing Buy and Hold and Moving Average Crossover strategies, computing return, volatility, Sharpe, and drawdown metrics, and integrating the outputs into the Streamlit interface.

Context

The academic framework intentionally mirrored a professional workflow, with Quant A and Quant B ownership, merge requests, and final integration. The goal was to ship a usable dashboard, not just a demonstration notebook.

Objective

Build an interactive financial application that can analyze one asset, backtest strategies, and then extend the logic to a multi-asset portfolio with diversification and risk measures.

Deep dive

Technical reading of the project

The project is organized as a modular quantitative dashboard: a single-asset Quant A module and a multi-asset Quant B module combined inside one Streamlit interface.

  • Market-data loading through public APIs with OHLCV support and daily or intraday frequencies.
  • Single-asset backtests on CAC40 names with configurable quantitative strategies.
  • Multi-asset portfolio analysis with allocation and rebalancing rules.
  • Risk and return KPIs plus diversification indicators.
  • Interactive visual outputs such as curves, correlation matrices, covariance views, and risk contributions.

Gallery

Key screens and visualizations

Python/Git quantitative dashboard project

View of the quantitative dashboard combining single-asset and portfolio analysis.

Architecture

Technical organization

Quant A module

Subfolder app/quant_a with data_loader.py, strategies.py, metrics.py, and ui_quant_a.py to isolate data collection, strategy logic, and user-interface rendering.

Quant B module

Subfolder app/quant_b with portfolio.py, backtest.py, metrics.py, and a dedicated Streamlit page for multi-asset configuration.

Integration layer

Main entry point in main.py that orchestrates navigation between modules and keeps the user experience coherent.

Collaborative workflow

Development through dedicated quant_a and quant_b branches before merges to main, with explicit ownership of each workstream.

Pipeline

Data flow

  1. 1.User selects assets, period, frequency, and strategy parameters.
  2. 2.Prices are loaded through APIs and then cleaned and aligned.
  3. 3.Strategies are executed and returns or equity curves are computed.
  4. 4.Portfolio logic aggregates weights, rebalancing, and risk measures.
  5. 5.Indicators such as Sharpe, drawdown, correlations, and risk contributions are calculated.
  6. 6.Results are rendered in charts and tables inside Streamlit.

Technical choices

Structuring decisions

Quant A / Quant B separation

The modular split reduces development collisions and makes single-asset and portfolio logic easier to maintain independently.

Series normalization

The strategy layer forces homogeneous data structures so silent alignment errors are less likely.

Decision-oriented KPIs

Outputs prioritize directly interpretable financial metrics such as annualized return, Sharpe, max drawdown, and diversification ratio.

Configurable Streamlit UI

Strategy and allocation parameters are exposed through interactive controls so several assumptions can be tested quickly.

Reliability

Quality and controls

  • Explicit team responsibilities and branch-based integration.
  • Business modules kept separate between data, strategy, metrics, and UI to reduce regressions.
  • Handling of invalid interface cases such as inconsistent dates, missing data, and incompatible parameters.

Limitations

Current attention points

  • Still dependent on the quality and availability of public data APIs.
  • Backtest assumptions remain simplified, especially around real transaction costs, advanced slippage, and full liquidity constraints.
  • Linux deployment exists in the project context but is not yet industrialized as a full CI/CD chain.

Roadmap

Next steps

  • Add stress-test scenarios and more realistic transaction-cost assumptions.
  • Extend the strategy library with momentum, carry, and volatility-targeting approaches under the same comparison framework.
  • Strengthen observability and deployment automation through tests and CI.

Challenges

Main project challenges

Structure a modular codebase with a clear boundary between Quant A, focused on a single asset, and Quant B, focused on portfolio logic.

Handle real market data with multiple frequencies, changing column structures, and missing observations without breaking the UI flow.

Keep metrics coherent across strategies and periods while preserving readable outputs for the final user.

Merge branch contributions while keeping a single stable application after integration.

Outcomes and learnings

What I take away

Complete Quant A module with CAC40 data loader, single-asset strategies, and Streamlit performance outputs.

Integrated Quant B multi-asset module with allocation, rebalancing, portfolio backtesting, and diversification indicators.

Unified application with clear navigation, comparative visualizations, and summary tables to support decision-making.

Collaborative Git and GitHub workflow materialized through dedicated branches and structured merges.

Other projects

Continue exploring

Wealth Tracking Application - project preview

Personal Finance · Python · PyQt6

Wealth Tracking Application

PyQt6 + SQLite desktop application to centralize multi-asset accounts, rebuild weekly history, and analyze portfolio performance.

View this project
Portfolio Backtesting and Optimization - project preview

Quantitative Finance · Analysis · Python

Portfolio Backtesting and Optimization

Python environment to backtest strategies, compare risk and return metrics, and analyze portfolio behavior.

View this project

Discuss

I can detail technical choices and outcomes during an interview.

If this project is relevant for you, I can detail the initial need, data structure, assumptions, challenges encountered, and analysis limitations.