Skip to content

SiraEdge Portfolio Optimization Module - Complete implementation with 7 optimization models, ML integration, and comprehensive documentation

License

Notifications You must be signed in to change notification settings

IsmailMoudden/Portfolio-Optimization-Module-SiraEdge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SiraEdge - Portfolio Optimization Module

GitHub Release GitHub Stars GitHub License Python Version Test Status

πŸ‡«πŸ‡· Ce README est aussi disponible en franΓ§ais.

Overview

This project presents the portfolio optimization module developed for the SiraEdge platform β€” an innovative solution designed to democratize access to professional-grade asset management tools.

Mission of SiraEdge

SiraEdge was born from a simple yet ambitious vision: to democratize access to professional portfolio management tools.
Our mission is to make finance accessible to everyone by combining mathematical rigor with an intuitive user experience.

Core Values

  • Accessibility: Democratizing finance through pedagogy
  • Innovation: Leveraging the latest advances in quantitative finance
  • Excellence: Robust code, optimal performance, and reliability

Implemented Optimization Models

This module implements and analyzes 7 portfolio optimization models:

1. Markowitz (Mean-Variance)

  • Foundation of modern portfolio theory
  • Maximization of the Sharpe ratio
  • Balancing risk and return

2. Risk Parity

  • Equalizing risk contributions across assets
  • Robustness to return uncertainty
  • Natural diversification

3. Monte Carlo (10,000 Portfolios)

  • Random exploration of the solution space
  • Visualization of the efficient frontier
  • Validation of candidate solutions

4. Black-Litterman

  • Combining market equilibrium with investor views
  • Adjusted equilibrium portfolio
  • Institutional-grade approach

5. Machine Learning (Ridge Regression)

  • Forecasting returns using AI
  • Analysis of technical patterns (RSI, momentum, volatility)
  • Objective quantitative signals

6. Hybrid Model

  • Combination of Risk Parity + ML signals
  • Stable foundation + smart opportunism
  • Core-satellite approach

7. Custom Metrics

  • Tailor-made objectives (Sharpe + Stability + MDD + Turnover)
  • Adapted to investor preferences
  • Multi-objective optimization

πŸ—οΈ Project Structure

SiraEdge_Optimisation/
β”œβ”€β”€ src/                          # Python source code
β”‚   β”œβ”€β”€ data_utils.py            # Data utilities and indicators
β”‚   β”œβ”€β”€ markowitz.py             # Markowitz optimization
β”‚   β”œβ”€β”€ risk_parity.py           # Risk parity optimization
β”‚   β”œβ”€β”€ monte_carlo.py           # Monte Carlo simulation
β”‚   β”œβ”€β”€ black_litterman.py       # Black-Litterman model
β”‚   β”œβ”€β”€ ml_predictor.py          # ML predictor
β”‚   β”œβ”€β”€ hybrid_model.py          # Hybrid model
β”‚   β”œβ”€β”€ custom_metrics_opt.py    # Custom metrics optimization
β”‚   β”œβ”€β”€ metrics_utils.py         # Financial metrics calculations
β”‚   β”œβ”€β”€ walkforward_backtest.py  # Walk-forward backtesting
β”‚   └── hyperparams.py           # Centralized hyperparameters
β”œβ”€β”€ figures/                      # Charts and visualizations
β”‚   β”œβ”€β”€ markowitz_frontier.png
β”‚   β”œβ”€β”€ risk_parity_weights.png
β”‚   β”œβ”€β”€ monte_carlo_cloud.png
β”‚   β”œβ”€β”€ black_litterman_weights.png
β”‚   β”œβ”€β”€ ml_coefficients.png
β”‚   β”œβ”€β”€ hybrid_weights.png
β”‚   └── custom_opt_weights.png
β”œβ”€β”€ rapport/                      # LaTeX report sources
β”‚   β”œβ”€β”€ rapport_siraedge_en.tex  # English report
β”‚   β”œβ”€β”€ rapport_siraedge_fr.tex  # French report
β”‚   β”œβ”€β”€ portfolio_summary_included.tex
β”‚   └── walkforward_results_simulated.tex
β”œβ”€β”€ README.md                     # This file
β”œβ”€β”€ requirements.txt              # Python dependencies
└── make_report.sh               # Automated generation script

πŸ› οΈ Installation & Setup

Requirements

  • Python 3.8+
  • pip or conda
  • Git (for cloning)

Installation

  1. Clone the repository
git clone https://github.com/IsmailMoudden/siraedge-module.git
cd siraedge-module
  1. Install dependencies
pip install -r requirements.txt
  1. Verify installation
python -c "import pandas, numpy, matplotlib, yfinance; print('Installation successful!')"

πŸš€ Usage

1. Generate Figures

# Generate all figures and visualizations
python src/data_utils.py
python src/markowitz.py
python src/risk_parity.py
python src/monte_carlo.py
python src/black_litterman.py
python src/ml_predictor.py
python src/hybrid_model.py
python src/custom_metrics_opt.py
python src/walkforward_backtest.py

2. Compile Report

# Use automatic script
chmod +x make_report.sh
./make_report.sh

# Or manual compilation
cd rapport
# For English report
tectonic rapport_siraedge_en.tex
# For French report
tectonic rapport_siraedge_fr.tex

3. Interactive Usage

# Example usage of the Risk Parity module
import numpy as np
from src.risk_parity import risk_parity_weights
from src.data_utils import download_prices

# Download asset prices
prices = download_prices(["SPY", "QQQ", "GLD", "DBA"], "2020-01-01", "2023-12-31", mode="auto")
rets = np.log(prices / prices.shift(1)).dropna()
cov = (rets.cov().values) * 252

# Calculate Risk Parity weights
weights = risk_parity_weights(cov)
print("Optimal weights:", weights)

πŸ“ˆ Data & Assets

Asset Universe

  • ETFs : SPY, QQQ, IWM, EFA
  • Commodities : GLD, SLV, USO, DBA

Analysis Period

  • Window : 2020-2023
  • FrΓ©quency : Daily data
  • Rebalancing : Monthly (walk-forward)

Technical Indicators

  • RSI (Relative Strength Index)
  • Momentum (20-day returns)
  • Rolling volatility (20-day window)
  • Dynamic correlations

Walk-Forward Analysis

The module includes a robust walk-forward analysis:

  • Rolling window: 252 days (1 trading year)
  • Rebalancing: Monthly
  • Transaction costs: 5 bps
  • Metrics: Sharpe, Calmar, Sortino, Stability, Turnover

Performance Metrics

Classic Metrics

  • Sharpe Ratio – risk-adjusted return
  • Sortino Ratio – downside risk-adjusted return
  • Calmar Ratio – return vs. max drawdown
  • Volatility – annualized risk

Advanced Metrics

  • Weight stability – allocation consistency
  • Turnover – trading activity
  • Effective diversification – equivalent number of assets
  • Average correlation – portfolio cohesion

πŸ“ˆ Performance Benchmarks

Model Comparison

  • Markowitz: Traditional mean-variance optimization
  • Risk Parity: Equal risk contribution approach
  • Black-Litterman: Institutional-grade equilibrium model
  • ML Hybrid: AI-enhanced optimization
  • Custom Metrics: Multi-objective solutions

Backtesting Results

  • Period: 2020-2023 (3+ years)
  • Assets: 8+ ETFs and commodities
  • Rebalancing: Monthly walk-forward
  • Transaction Costs: 5 basis points
  • Risk Management: Dynamic correlation analysis

πŸŽ“ Educational Purpose

This project is designed to be educational and accessible:

  • Detailed explanations of each concept
  • Concrete examples with numbers
  • Simple analogies for complex ideas
  • Commented and documented code
  • End-to-end workflow from start to finish

πŸš€ Key Features of Portfolio Optimization Module

Advanced Optimization Algorithms

  • 7 state-of-the-art models for portfolio construction
  • Risk management with multiple approaches
  • Machine learning integration for return forecasting
  • Custom metrics for specialized objectives

Professional-Grade Backtesting

  • Walk-forward analysis with rolling windows
  • Transaction costs simulation (5 bps)
  • Comprehensive metrics (Sharpe, Sortino, Calmar, etc.)
  • Performance attribution and analysis

Data Management & Visualization

  • Automatic data download via yfinance
  • Fallback mechanisms for data failures
  • Professional charts and visualizations
  • Export capabilities for reports

πŸ”§ Customization

Adjustable Hyperparameters

  • Estimation windows (126, 252, 504 days)
  • ML signal intensity (alpha)
  • Confidence in Black-Litterman views (tau)
  • Weights for custom metrics

Configurable Constraints

  • Asset weight limits
  • Sector/asset class constraints
  • Turnover penalties
  • Leverage constraints

πŸ“š Documentation

LaTeX Report

The full reports are available in both French and English:

  • English Report: rapport/pdf/rapport_siraedge_en.pdf
  • French Report: rapport/pdf/rapport_siraedge_fr.pdf

Both reports include:

  • Detailed theoretical explanations
  • Mathematical formulations
  • Comparative analyses
  • Results and interpretations
  • Practical limitations and considerations

Source Code

  • Complete implementations of the models
  • Lightweight comments and docstrings for key functions
  • Data fallback: automatic switch to synthetic series if download fails

Integration with SiraEdge

This module integrates directly into the SiraEdge platform to allow users to:

  1. Test different optimization models
  2. Compare performance in real time
  3. Understand risk–return trade-offs
  4. Learn by doing, with immediate feedback (educational focus)

🎯 Use Cases

Academic & Research

  • Portfolio theory studies and research
  • Algorithm comparison and validation
  • Risk management research
  • Machine learning in finance applications

Professional Development

  • Quantitative finance learning
  • Portfolio management skills development
  • Risk analysis training
  • Financial modeling practice

Institutional Applications

  • Backtesting new strategies
  • Risk assessment tools
  • Performance analysis frameworks
  • Educational platforms for teams

Scope: this module is intended for educational and comparative purposes only.
It does not constitute investment advice or performance guarantees.

πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.

πŸ“ž Contact & Support

🀝 Contributing

We welcome contributions to improve the Portfolio Optimization Module! Please see our Contributing Guide for details on:

  • Code style and standards
  • Testing requirements
  • Pull request process
  • Issue reporting guidelines

πŸ“Š Project Status

  • Current Version: 1.0.0
  • Python Support: 3.8+
  • License: MIT
  • Status: Active Development
  • Last Updated: January 2025

SiraEdge – Making finance accessible, transparent, and innovative for everyone. πŸš€