# QuantFinance 📊
[](https://www.python.org/downloads/)
[](https://badge.fury.io/py/quantfinance)
[](https://opensource.org/licenses/MIT)
[](https://github.com/Mafoya1er/quantfinance/actions)
[](https://codecov.io/gh/Mafoya1er/quantfinance)
[](https://quantfinance.readthedocs.io/en/latest/?badge=latest)
[](https://github.com/psf/black)
> Package Python professionnel pour la finance quantitative
[Documentation](https://quantfinance.readthedocs.io) | [PyPI](https://pypi.org/project/quantfinance/) | [GitHub](https://github.com/Mafoya1er/quantfinance)
## ✨ Fonctionnalités
### 📈 Pricing d'Instruments Financiers
- **Options** : Black-Scholes, Binomial Tree, Monte Carlo
- **Grecques** : Delta, Gamma, Vega, Theta, Rho
- **Volatilité Implicite** : Méthode de Newton-Raphson
- **Options Exotiques** : Asiatiques, Barrières
- **Obligations** : Pricing, YTM, Duration, Convexité
### ⚠️ Gestion des Risques
- **Value at Risk (VaR)** : Historique, Paramétrique, EWMA, Monte Carlo
- **Expected Shortfall (CVaR)**
- **Métriques** : Sharpe, Sortino, Calmar, Omega, Information Ratio
- **Drawdown** : Maximum, Duration, Série temporelle
- **Stress Testing** : Scénarios, Analyse historique, Simulation
### 📊 Optimisation de Portefeuille
- **Markowitz** : Variance minimale, Sharpe maximum, Frontière efficiente
- **Risk Parity** : Contribution égale au risque
- **Black-Litterman** : Intégration de vues d'investissement
- **Hierarchical Risk Parity (HRP)**
- **Maximum Diversification**
- **Rééquilibrage** : Périodique, Seuils, Bandes de tolérance
### 🔄 Backtesting
- Framework de backtesting flexible
- Stratégies prédéfinies (MA Crossover, Momentum, etc.)
- Prise en compte des coûts de transaction
- Analyse de performance détaillée
### 🛠️ Utilitaires
- Chargement de données (CSV, Yahoo Finance, API)
- Génération de données synthétiques
- Nettoyage et préparation de données
- Indicateurs techniques (SMA, EMA, RSI, MACD, Bollinger Bands)
- Visualisations avancées
## 🚀 Installation
### Via pip (recommandé)
```bash
pip install quantfinance
```
### Depuis les sources
```bash
git clone https://github.com/Mafoya1er/quantfinance.git
cd quantfinance
pip install -e .
```
### Avec dépendances optionnelles
```bash
# Pour l'analyse de données
pip install quantfinance[data]
# Pour le développement
pip install quantfinance[dev]
# Tout installer
pip install quantfinance[all]
```
## 📚 Démarrage Rapide
### Pricing d'Options
```python
from quantfinance.pricing.options import BlackScholes
# Option call européenne
bs = BlackScholes(S=100, K=105, T=1, r=0.05, sigma=0.25, option_type='call')
print(f"Prix: {bs.price():.2f}")
print(f"Delta: {bs.delta():.4f}")
print(f"Gamma: {bs.gamma():.6f}")
print(f"Vega: {bs.vega():.4f}")
# Volatilité implicite
market_price = 8.50
implied_vol = bs.implied_volatility(market_price)
print(f"Vol implicite: {implied_vol:.2%}")
```
### Optimisation de Portefeuille
```python
from quantfinance.portfolio.optimization import PortfolioOptimizer, EfficientFrontier
from quantfinance.utils.data import DataLoader
# Charger des données
prices = DataLoader.generate_synthetic_prices(n_assets=5, n_days=252*3)
returns = prices.pct_change().dropna()
# Optimiser
optimizer = PortfolioOptimizer(returns, risk_free_rate=0.02)
# Sharpe maximum
max_sharpe = optimizer.maximize_sharpe()
print(f"Rendement: {max_sharpe['return']:.2%}")
print(f"Sharpe: {max_sharpe['sharpe_ratio']:.3f}")
print("\nPoids:")
print(max_sharpe['weights'])
# Frontière efficiente
frontier = EfficientFrontier(optimizer)
frontier.plot()
```
### Analyse de Risque
```python
from quantfinance.risk.var import VaRCalculator
from quantfinance.risk.metrics import RiskMetrics, PerformanceAnalyzer
# VaR et CVaR
var_95 = VaRCalculator.historical_var(returns.iloc[:, 0], 0.95)
es_95 = VaRCalculator.expected_shortfall(returns.iloc[:, 0], 0.95)
print(f"VaR 95%: {var_95:.2%}")
print(f"CVaR 95%: {es_95:.2%}")
# Analyse complète
analyzer = PerformanceAnalyzer(returns.iloc[:, 0], risk_free_rate=0.02)
summary = analyzer.summary_statistics()
print(summary)
```
### Backtesting
```python
from quantfinance.portfolio.backtesting import Backtester, MovingAverageCrossover
from quantfinance.utils.data import DataLoader
# Données OHLCV
data = DataLoader.generate_ohlcv_data(n_days=500)
# Stratégie
strategy = MovingAverageCrossover(short_window=20, long_window=50)
# Backtest
backtester = Backtester(data, strategy, initial_capital=100000)
results = backtester.run()
print(f"Rendement: {results['Total Return']:.2%}")
print(f"Sharpe: {results['Sharpe Ratio']:.3f}")
print(f"Max DD: {results['Max Drawdown']:.2%}")
# Visualisation
backtester.plot_results()
```
## 📖 Documentation
Documentation complète disponible sur [ReadTheDocs](https://quantfinance.readthedocs.io).
### Guides
- [Installation](https://quantfinance.readthedocs.io/en/latest/user_guide/installation.html)
- [Démarrage Rapide](https://quantfinance.readthedocs.io/en/latest/user_guide/quickstart.html)
- [Tutoriels](https://quantfinance.readthedocs.io/en/latest/user_guide/tutorials.html)
- [Exemples](https://quantfinance.readthedocs.io/en/latest/user_guide/examples.html)
### Référence API
- [Pricing](https://quantfinance.readthedocs.io/en/latest/api/pricing.html)
- [Risk](https://quantfinance.readthedocs.io/en/latest/api/risk.html)
- [Portfolio](https://quantfinance.readthedocs.io/en/latest/api/portfolio.html)
- [Utils](https://quantfinance.readthedocs.io/en/latest/api/utils.html)
## 🧪 Tests
```bash
# Lancer tous les tests
pytest
# Avec couverture
pytest --cov=quantfinance --cov-report=html
# Tests rapides seulement
pytest -m "not slow"
```
## 🤝 Contribution
Les contributions sont les bienvenues ! Consultez [CONTRIBUTING.md](CONTRIBUTING.md).
1. Fork le projet
2. Créez une branche (`git checkout -b feature/AmazingFeature`)
3. Committez (`git commit -m 'feat: Add AmazingFeature'`)
4. Push (`git push origin feature/AmazingFeature`)
5. Ouvrez une Pull Request
## 📝 Licence
Ce projet est sous licence MIT. Voir [LICENSE](LICENSE) pour plus de détails.
## 🙏 Remerciements
- [NumPy](https://numpy.org/) - Calculs numériques
- [Pandas](https://pandas.pydata.org/) - Manipulation de données
- [SciPy](https://scipy.org/) - Outils scientifiques
- [Matplotlib](https://matplotlib.org/) - Visualisations
## 📧 Contact
Marcel ALOEKPO - [LinkedIn](https://www.linkedin.com/in/marcel-aloekpo-21b42619a) -marcelaloekpo@gmail.com
Projet: [https://github.com/Mafoya1er/quantfinance](https://github.com/Mafoya1er/quantfinance)
## ⭐ Support
Si vous trouvez ce projet utile, n'hésitez pas à lui donner une étoile ⭐ sur [GitHub](https://github.com/Mafoya1er/quantfinance) !
## 📊 Statistiques






---
**Made with ❤️ for quantitative finance**
Raw data
{
"_id": null,
"home_page": null,
"name": "quantfinance",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Marcel ALOEKPO <marcelaloekpo@gmail.com>",
"keywords": "finance, quantitative finance, portfolio optimization, risk management, options pricing, derivatives, black-scholes, var, backtesting",
"author": null,
"author_email": "Marcel ALOEKPO <marcelaloekpo@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/9c/a2/0d629d0d0f9e13b26721695e9c3b077a3e076cce14a448c4c112cbe0e5ed/quantfinance-0.1.1.tar.gz",
"platform": null,
"description": "# QuantFinance \ud83d\udcca\n\n[](https://www.python.org/downloads/)\n[](https://badge.fury.io/py/quantfinance)\n[](https://opensource.org/licenses/MIT)\n[](https://github.com/Mafoya1er/quantfinance/actions)\n[](https://codecov.io/gh/Mafoya1er/quantfinance)\n[](https://quantfinance.readthedocs.io/en/latest/?badge=latest)\n[](https://github.com/psf/black)\n\n> Package Python professionnel pour la finance quantitative\n\n[Documentation](https://quantfinance.readthedocs.io) | [PyPI](https://pypi.org/project/quantfinance/) | [GitHub](https://github.com/Mafoya1er/quantfinance)\n\n## \u2728 Fonctionnalit\u00e9s\n\n### \ud83d\udcc8 Pricing d'Instruments Financiers\n- **Options** : Black-Scholes, Binomial Tree, Monte Carlo\n- **Grecques** : Delta, Gamma, Vega, Theta, Rho\n- **Volatilit\u00e9 Implicite** : M\u00e9thode de Newton-Raphson\n- **Options Exotiques** : Asiatiques, Barri\u00e8res\n- **Obligations** : Pricing, YTM, Duration, Convexit\u00e9\n\n### \u26a0\ufe0f Gestion des Risques\n- **Value at Risk (VaR)** : Historique, Param\u00e9trique, EWMA, Monte Carlo\n- **Expected Shortfall (CVaR)**\n- **M\u00e9triques** : Sharpe, Sortino, Calmar, Omega, Information Ratio\n- **Drawdown** : Maximum, Duration, S\u00e9rie temporelle\n- **Stress Testing** : Sc\u00e9narios, Analyse historique, Simulation\n\n### \ud83d\udcca Optimisation de Portefeuille\n- **Markowitz** : Variance minimale, Sharpe maximum, Fronti\u00e8re efficiente\n- **Risk Parity** : Contribution \u00e9gale au risque\n- **Black-Litterman** : Int\u00e9gration de vues d'investissement\n- **Hierarchical Risk Parity (HRP)**\n- **Maximum Diversification**\n- **R\u00e9\u00e9quilibrage** : P\u00e9riodique, Seuils, Bandes de tol\u00e9rance\n\n### \ud83d\udd04 Backtesting\n- Framework de backtesting flexible\n- Strat\u00e9gies pr\u00e9d\u00e9finies (MA Crossover, Momentum, etc.)\n- Prise en compte des co\u00fbts de transaction\n- Analyse de performance d\u00e9taill\u00e9e\n\n### \ud83d\udee0\ufe0f Utilitaires\n- Chargement de donn\u00e9es (CSV, Yahoo Finance, API)\n- G\u00e9n\u00e9ration de donn\u00e9es synth\u00e9tiques\n- Nettoyage et pr\u00e9paration de donn\u00e9es\n- Indicateurs techniques (SMA, EMA, RSI, MACD, Bollinger Bands)\n- Visualisations avanc\u00e9es\n\n## \ud83d\ude80 Installation\n\n### Via pip (recommand\u00e9)\n\n```bash\npip install quantfinance\n```\n\n### Depuis les sources\n\n```bash\ngit clone https://github.com/Mafoya1er/quantfinance.git\ncd quantfinance\npip install -e .\n```\n\n### Avec d\u00e9pendances optionnelles\n\n```bash\n# Pour l'analyse de donn\u00e9es\npip install quantfinance[data]\n\n# Pour le d\u00e9veloppement\npip install quantfinance[dev]\n\n# Tout installer\npip install quantfinance[all]\n```\n\n## \ud83d\udcda D\u00e9marrage Rapide\n\n### Pricing d'Options\n\n```python\nfrom quantfinance.pricing.options import BlackScholes\n\n# Option call europ\u00e9enne\nbs = BlackScholes(S=100, K=105, T=1, r=0.05, sigma=0.25, option_type='call')\n\nprint(f\"Prix: {bs.price():.2f}\")\nprint(f\"Delta: {bs.delta():.4f}\")\nprint(f\"Gamma: {bs.gamma():.6f}\")\nprint(f\"Vega: {bs.vega():.4f}\")\n\n# Volatilit\u00e9 implicite\nmarket_price = 8.50\nimplied_vol = bs.implied_volatility(market_price)\nprint(f\"Vol implicite: {implied_vol:.2%}\")\n```\n\n### Optimisation de Portefeuille\n\n```python\nfrom quantfinance.portfolio.optimization import PortfolioOptimizer, EfficientFrontier\nfrom quantfinance.utils.data import DataLoader\n\n# Charger des donn\u00e9es\nprices = DataLoader.generate_synthetic_prices(n_assets=5, n_days=252*3)\nreturns = prices.pct_change().dropna()\n\n# Optimiser\noptimizer = PortfolioOptimizer(returns, risk_free_rate=0.02)\n\n# Sharpe maximum\nmax_sharpe = optimizer.maximize_sharpe()\nprint(f\"Rendement: {max_sharpe['return']:.2%}\")\nprint(f\"Sharpe: {max_sharpe['sharpe_ratio']:.3f}\")\nprint(\"\\nPoids:\")\nprint(max_sharpe['weights'])\n\n# Fronti\u00e8re efficiente\nfrontier = EfficientFrontier(optimizer)\nfrontier.plot()\n```\n\n### Analyse de Risque\n\n```python\nfrom quantfinance.risk.var import VaRCalculator\nfrom quantfinance.risk.metrics import RiskMetrics, PerformanceAnalyzer\n\n# VaR et CVaR\nvar_95 = VaRCalculator.historical_var(returns.iloc[:, 0], 0.95)\nes_95 = VaRCalculator.expected_shortfall(returns.iloc[:, 0], 0.95)\n\nprint(f\"VaR 95%: {var_95:.2%}\")\nprint(f\"CVaR 95%: {es_95:.2%}\")\n\n# Analyse compl\u00e8te\nanalyzer = PerformanceAnalyzer(returns.iloc[:, 0], risk_free_rate=0.02)\nsummary = analyzer.summary_statistics()\nprint(summary)\n```\n\n### Backtesting\n\n```python\nfrom quantfinance.portfolio.backtesting import Backtester, MovingAverageCrossover\nfrom quantfinance.utils.data import DataLoader\n\n# Donn\u00e9es OHLCV\ndata = DataLoader.generate_ohlcv_data(n_days=500)\n\n# Strat\u00e9gie\nstrategy = MovingAverageCrossover(short_window=20, long_window=50)\n\n# Backtest\nbacktester = Backtester(data, strategy, initial_capital=100000)\nresults = backtester.run()\n\nprint(f\"Rendement: {results['Total Return']:.2%}\")\nprint(f\"Sharpe: {results['Sharpe Ratio']:.3f}\")\nprint(f\"Max DD: {results['Max Drawdown']:.2%}\")\n\n# Visualisation\nbacktester.plot_results()\n```\n\n## \ud83d\udcd6 Documentation\n\nDocumentation compl\u00e8te disponible sur [ReadTheDocs](https://quantfinance.readthedocs.io).\n\n### Guides\n\n- [Installation](https://quantfinance.readthedocs.io/en/latest/user_guide/installation.html)\n- [D\u00e9marrage Rapide](https://quantfinance.readthedocs.io/en/latest/user_guide/quickstart.html)\n- [Tutoriels](https://quantfinance.readthedocs.io/en/latest/user_guide/tutorials.html)\n- [Exemples](https://quantfinance.readthedocs.io/en/latest/user_guide/examples.html)\n\n### R\u00e9f\u00e9rence API\n\n- [Pricing](https://quantfinance.readthedocs.io/en/latest/api/pricing.html)\n- [Risk](https://quantfinance.readthedocs.io/en/latest/api/risk.html)\n- [Portfolio](https://quantfinance.readthedocs.io/en/latest/api/portfolio.html)\n- [Utils](https://quantfinance.readthedocs.io/en/latest/api/utils.html)\n\n## \ud83e\uddea Tests\n\n```bash\n# Lancer tous les tests\npytest\n\n# Avec couverture\npytest --cov=quantfinance --cov-report=html\n\n# Tests rapides seulement\npytest -m \"not slow\"\n```\n\n## \ud83e\udd1d Contribution\n\nLes contributions sont les bienvenues ! Consultez [CONTRIBUTING.md](CONTRIBUTING.md).\n\n1. Fork le projet\n2. Cr\u00e9ez une branche (`git checkout -b feature/AmazingFeature`)\n3. Committez (`git commit -m 'feat: Add AmazingFeature'`)\n4. Push (`git push origin feature/AmazingFeature`)\n5. Ouvrez une Pull Request\n\n## \ud83d\udcdd Licence\n\nCe projet est sous licence MIT. Voir [LICENSE](LICENSE) pour plus de d\u00e9tails.\n\n## \ud83d\ude4f Remerciements\n\n- [NumPy](https://numpy.org/) - Calculs num\u00e9riques\n- [Pandas](https://pandas.pydata.org/) - Manipulation de donn\u00e9es\n- [SciPy](https://scipy.org/) - Outils scientifiques\n- [Matplotlib](https://matplotlib.org/) - Visualisations\n\n## \ud83d\udce7 Contact\n\nMarcel ALOEKPO - [LinkedIn](https://www.linkedin.com/in/marcel-aloekpo-21b42619a) -marcelaloekpo@gmail.com\n\nProjet: [https://github.com/Mafoya1er/quantfinance](https://github.com/Mafoya1er/quantfinance)\n\n## \u2b50 Support\n\nSi vous trouvez ce projet utile, n'h\u00e9sitez pas \u00e0 lui donner une \u00e9toile \u2b50 sur [GitHub](https://github.com/Mafoya1er/quantfinance) !\n\n## \ud83d\udcca Statistiques\n\n\n\n\n\n\n\n\n---\n\n**Made with \u2764\ufe0f for quantitative finance**\n",
"bugtrack_url": null,
"license": null,
"summary": "Package Python complet pour la finance quantitative",
"version": "0.1.1",
"project_urls": {
"Bug Tracker": "https://github.com/votre-username/quantfinance/issues",
"Changelog": "https://github.com/votre-username/quantfinance/blob/main/CHANGELOG.md",
"Documentation": "https://quantfinance.readthedocs.io",
"Homepage": "https://github.com/votre-username/quantfinance",
"Repository": "https://github.com/votre-username/quantfinance"
},
"split_keywords": [
"finance",
" quantitative finance",
" portfolio optimization",
" risk management",
" options pricing",
" derivatives",
" black-scholes",
" var",
" backtesting"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0611de0b95753b4963ad46e59f1443cddcc9452cf105bc08c21fc00e74535251",
"md5": "883beaaacf66684bf2f54d5cdd83366d",
"sha256": "ea6dcfbe719239af8a2cdd0fcb9086fa5baadabae0976cad05406bca1fc226b9"
},
"downloads": -1,
"filename": "quantfinance-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "883beaaacf66684bf2f54d5cdd83366d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 48551,
"upload_time": "2025-10-19T21:17:53",
"upload_time_iso_8601": "2025-10-19T21:17:53.786347Z",
"url": "https://files.pythonhosted.org/packages/06/11/de0b95753b4963ad46e59f1443cddcc9452cf105bc08c21fc00e74535251/quantfinance-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9ca20d629d0d0f9e13b26721695e9c3b077a3e076cce14a448c4c112cbe0e5ed",
"md5": "efa96ac117200b991f6d9f2cb3385841",
"sha256": "05d683eca224127cd26d55e7cac799d22ff330eaa69ba27337b8d149fce1bd5b"
},
"downloads": -1,
"filename": "quantfinance-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "efa96ac117200b991f6d9f2cb3385841",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 221506,
"upload_time": "2025-10-19T21:17:56",
"upload_time_iso_8601": "2025-10-19T21:17:56.012234Z",
"url": "https://files.pythonhosted.org/packages/9c/a2/0d629d0d0f9e13b26721695e9c3b077a3e076cce14a448c4c112cbe0e5ed/quantfinance-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-19 21:17:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "votre-username",
"github_project": "quantfinance",
"github_not_found": true,
"lcname": "quantfinance"
}