Skip to content

Commit 5752987

Browse files
committed
docs: enhance README.md for Portfolio Optimization Module - Improve project structure documentation with English descriptions - Add comprehensive key features section - Include use cases for academic, professional, and institutional applications - Add performance benchmarks and model comparison - Enhance contributing and support sections - Fix language inconsistencies and improve clarity
1 parent e7a8023 commit 5752987

File tree

1 file changed

+110
-27
lines changed

1 file changed

+110
-27
lines changed

README.md

Lines changed: 110 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -65,39 +65,41 @@ This module implements and analyzes **7 portfolio optimization models**:
6565

6666
```
6767
SiraEdge_Optimisation/
68-
├── src/ # Code source Python
69-
│ ├── data_utils.py # Utilitaires de données et indicateurs
70-
│ ├── markowitz.py # Optimisation Markowitz
71-
│ ├── risk_parity.py # Parité de risque
72-
│ ├── monte_carlo.py # Simulation Monte Carlo
73-
│ ├── black_litterman.py # Modèle Black-Litterman
74-
│ ├── ml_predictor.py # Prédicteur ML
75-
│ ├── hybrid_model.py # Modèle hybride
76-
│ ├── custom_metrics_opt.py # Métriques personnalisées
77-
│ ├── metrics_utils.py # Calculs de métriques financières
78-
│ ├── walkforward_backtest.py # Backtest walk-forward
79-
│ └── hyperparams.py # Hyperparamètres centralisés
80-
├── figures/ # Graphiques et visualisations
68+
├── src/ # Python source code
69+
│ ├── data_utils.py # Data utilities and indicators
70+
│ ├── markowitz.py # Markowitz optimization
71+
│ ├── risk_parity.py # Risk parity optimization
72+
│ ├── monte_carlo.py # Monte Carlo simulation
73+
│ ├── black_litterman.py # Black-Litterman model
74+
│ ├── ml_predictor.py # ML predictor
75+
│ ├── hybrid_model.py # Hybrid model
76+
│ ├── custom_metrics_opt.py # Custom metrics optimization
77+
│ ├── metrics_utils.py # Financial metrics calculations
78+
│ ├── walkforward_backtest.py # Walk-forward backtesting
79+
│ └── hyperparams.py # Centralized hyperparameters
80+
├── figures/ # Charts and visualizations
8181
│ ├── markowitz_frontier.png
8282
│ ├── risk_parity_weights.png
8383
│ ├── monte_carlo_cloud.png
8484
│ ├── black_litterman_weights.png
8585
│ ├── ml_coefficients.png
8686
│ ├── hybrid_weights.png
8787
│ └── custom_opt_weights.png
88-
├── rapport/ # Sources LaTeX du rapport
89-
│ ├── rapport_siraedge_optimisation.tex
88+
├── rapport/ # LaTeX report sources
89+
│ ├── rapport_siraedge_en.tex # English report
90+
│ ├── rapport_siraedge_fr.tex # French report
9091
│ ├── portfolio_summary_included.tex
9192
│ └── walkforward_results_simulated.tex
92-
├── README.md # Ce fichier
93-
├── requirements.txt # Dépendances Python
94-
└── make_report.sh # Script de génération automatique
93+
├── README.md # This file
94+
├── requirements.txt # Python dependencies
95+
└── make_report.sh # Automated generation script
9596
```
9697
## 🛠️ Installation & Setup
9798

9899
### Requirements
99100
- Python 3.8+
100101
- pip or conda
102+
- Git (for cloning)
101103

102104
### Installation
103105

@@ -114,14 +116,14 @@ pip install -r requirements.txt
114116

115117
3. **Verify installation**
116118
```bash
117-
python -c "import pandas, numpy, matplotlib, yfinance; print('Installation réussie!')"
119+
python -c "import pandas, numpy, matplotlib, yfinance; print('Installation successful!')"
118120
```
119121

120122
## 🚀 Usage
121123

122124
### 1. **Generate Figures**
123125
```bash
124-
# Générer toutes les figures
126+
# Generate all figures and visualizations
125127
python src/data_utils.py
126128
python src/markowitz.py
127129
python src/risk_parity.py
@@ -141,24 +143,27 @@ chmod +x make_report.sh
141143

142144
# Or manual compilation
143145
cd rapport
144-
tectonic rapport_siraedge_optimisation.tex
146+
# For English report
147+
tectonic rapport_siraedge_en.tex
148+
# For French report
149+
tectonic rapport_siraedge_fr.tex
145150
```
146151

147152
### 3. **Interactive Usage**
148153
```python
149-
# Usage exemple of the Risk Parity module
154+
# Example usage of the Risk Parity module
150155
import numpy as np
151156
from src.risk_parity import risk_parity_weights
152157
from src.data_utils import download_prices
153158

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

159-
# Calculate the Risk Parity weigth
164+
# Calculate Risk Parity weights
160165
weights = risk_parity_weights(cov)
161-
print("Poids optimaux:", weights)
166+
print("Optimal weights:", weights)
162167
```
163168

164169
## 📈 Data & Assets
@@ -201,6 +206,22 @@ The module includes a robust walk-forward analysis:
201206
- **Effective diversification** – equivalent number of assets
202207
- **Average correlation** – portfolio cohesion
203208

209+
## 📈 Performance Benchmarks
210+
211+
### **Model Comparison**
212+
- **Markowitz**: Traditional mean-variance optimization
213+
- **Risk Parity**: Equal risk contribution approach
214+
- **Black-Litterman**: Institutional-grade equilibrium model
215+
- **ML Hybrid**: AI-enhanced optimization
216+
- **Custom Metrics**: Multi-objective solutions
217+
218+
### **Backtesting Results**
219+
- **Period**: 2020-2023 (3+ years)
220+
- **Assets**: 8+ ETFs and commodities
221+
- **Rebalancing**: Monthly walk-forward
222+
- **Transaction Costs**: 5 basis points
223+
- **Risk Management**: Dynamic correlation analysis
224+
204225
## 🎓 Educational Purpose
205226

206227
This project is designed to be **educational** and **accessible**:
@@ -211,6 +232,26 @@ This project is designed to be **educational** and **accessible**:
211232
- Commented and documented code
212233
- End-to-end workflow from start to finish
213234

235+
## 🚀 Key Features of Portfolio Optimization Module
236+
237+
### **Advanced Optimization Algorithms**
238+
- **7 state-of-the-art models** for portfolio construction
239+
- **Risk management** with multiple approaches
240+
- **Machine learning integration** for return forecasting
241+
- **Custom metrics** for specialized objectives
242+
243+
### **Professional-Grade Backtesting**
244+
- **Walk-forward analysis** with rolling windows
245+
- **Transaction costs** simulation (5 bps)
246+
- **Comprehensive metrics** (Sharpe, Sortino, Calmar, etc.)
247+
- **Performance attribution** and analysis
248+
249+
### **Data Management & Visualization**
250+
- **Automatic data download** via yfinance
251+
- **Fallback mechanisms** for data failures
252+
- **Professional charts** and visualizations
253+
- **Export capabilities** for reports
254+
214255
## 🔧 Customization
215256

216257
### Adjustable Hyperparameters
@@ -228,7 +269,11 @@ This project is designed to be **educational** and **accessible**:
228269
## 📚 Documentation
229270

230271
### LaTeX Report
231-
The full report (`rapport_siraedge_optimisation.pdf`) includes:
272+
The full reports are available in both French and English:
273+
- **English Report**: `rapport/pdf/rapport_siraedge_en.pdf`
274+
- **French Report**: `rapport/pdf/rapport_siraedge_fr.pdf`
275+
276+
Both reports include:
232277
- Detailed theoretical explanations
233278
- Mathematical formulations
234279
- Comparative analyses
@@ -249,17 +294,55 @@ This module integrates directly into the SiraEdge platform to allow users to:
249294
3. Understand risk–return trade-offs
250295
4. Learn by doing, with immediate feedback (educational focus)
251296

297+
## 🎯 Use Cases
298+
299+
### **Academic & Research**
300+
- **Portfolio theory** studies and research
301+
- **Algorithm comparison** and validation
302+
- **Risk management** research
303+
- **Machine learning** in finance applications
304+
305+
### **Professional Development**
306+
- **Quantitative finance** learning
307+
- **Portfolio management** skills development
308+
- **Risk analysis** training
309+
- **Financial modeling** practice
310+
311+
### **Institutional Applications**
312+
- **Backtesting** new strategies
313+
- **Risk assessment** tools
314+
- **Performance analysis** frameworks
315+
- **Educational platforms** for teams
316+
252317
> **Scope:** this module is intended for educational and comparative purposes only.
253318
> It does not constitute investment advice or performance guarantees.
254319
255320
## 📄 License
256321

257322
This project is licensed under the MIT License. See the [`LICENSE`](LICENSE) file for details.
258323

259-
## 📞 Contact
324+
## 📞 Contact & Support
260325

261326
- **Author:** [Ismail Moudden](https://github.com/IsmailMoudden)
262327
- **GitHub Repository:** https://github.com/IsmailMoudden/siraedge-portfolio-optimization
263328
- **Issues & Support:** https://github.com/IsmailMoudden/siraedge-portfolio-optimization/issues
329+
- **Documentation:** [Contributing Guide](CONTRIBUTING.md) | [Changelog](CHANGELOG.md)
330+
331+
## 🤝 Contributing
332+
333+
We welcome contributions to improve the Portfolio Optimization Module! Please see our [Contributing Guide](CONTRIBUTING.md) for details on:
334+
335+
- Code style and standards
336+
- Testing requirements
337+
- Pull request process
338+
- Issue reporting guidelines
339+
340+
## 📊 Project Status
341+
342+
- **Current Version:** 1.0.0
343+
- **Python Support:** 3.8+
344+
- **License:** MIT
345+
- **Status:** Active Development
346+
- **Last Updated:** January 2025
264347

265348
**SiraEdge** – Making finance accessible, transparent, and innovative for everyone. 🚀

0 commit comments

Comments
 (0)