
View of the quantitative dashboard combining single-asset and portfolio analysis.
Quantitative Finance · Python · Streamlit
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.
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.

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
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.
Gallery

View of the quantitative dashboard combining single-asset and portfolio analysis.
Architecture
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.
Subfolder app/quant_b with portfolio.py, backtest.py, metrics.py, and a dedicated Streamlit page for multi-asset configuration.
Main entry point in main.py that orchestrates navigation between modules and keeps the user experience coherent.
Development through dedicated quant_a and quant_b branches before merges to main, with explicit ownership of each workstream.
Pipeline
Technical choices
The modular split reduces development collisions and makes single-asset and portfolio logic easier to maintain independently.
The strategy layer forces homogeneous data structures so silent alignment errors are less likely.
Outputs prioritize directly interpretable financial metrics such as annualized return, Sharpe, max drawdown, and diversification ratio.
Strategy and allocation parameters are exposed through interactive controls so several assumptions can be tested quickly.
Reliability
Limitations
Roadmap
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
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

Personal Finance · Python · PyQt6
PyQt6 + SQLite desktop application to centralize multi-asset accounts, rebuild weekly history, and analyze portfolio performance.
View this project
Quantitative Finance · Analysis · Python
Python environment to backtest strategies, compare risk and return metrics, and analyze portfolio behavior.
View this projectDiscuss
If this project is relevant for you, I can detail the initial need, data structure, assumptions, challenges encountered, and analysis limitations.