Skip to main content

Package Python complet pour la finance quantitative

Project description

QuantFinance 📊

Python 3.8+ PyPI version License: MIT Build Status codecov Documentation Status Code style: black

Package Python professionnel pour la finance quantitative

Documentation | PyPI | GitHub

✨ 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é)

pip install quantfinance

Depuis les sources

git clone https://github.com/Mafoya1er/quantfinance.git
cd quantfinance
pip install -e .

Avec dépendances optionnelles

# 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

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

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_frontier()

Analyse de Risque

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

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()

📖 Documentation

Documentation complète disponible sur ReadTheDocs.

Guides

Référence API

🧪 Tests

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

  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 pour plus de détails.

🙏 Remerciements

📧 Contact

Marcel ALOEKPO - LinkedIn -marcelaloekpo@gmail.com

Projet: https://github.com/Mafoya1er/quantfinance

⭐ Support

Si vous trouvez ce projet utile, n'hésitez pas à lui donner une étoile ⭐ sur GitHub !

📊 Statistiques

GitHub stars GitHub forks GitHub watchers GitHub contributors GitHub issues GitHub pull requests


Made with ❤️ for quantitative finance

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quantfinance-0.1.0.tar.gz (53.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quantfinance-0.1.0-py3-none-any.whl (48.6 kB view details)

Uploaded Python 3

File details

Details for the file quantfinance-0.1.0.tar.gz.

File metadata

  • Download URL: quantfinance-0.1.0.tar.gz
  • Upload date:
  • Size: 53.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for quantfinance-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9aaa1255d2dd2f5cd41ca3898ce2b28abf0e1ed3f5eb628e986b3ff94a64b454
MD5 8e06c5694aa377a7eccb2f12ed836709
BLAKE2b-256 25c2dde403eb84f7578df6e8ab8b364117154dcd6c950b7cedcfd3692ebb2a56

See more details on using hashes here.

File details

Details for the file quantfinance-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: quantfinance-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 48.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for quantfinance-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e6c7e022007e93c005d2df1a34700830c816a52bd927e00ca1bf7380092ae604
MD5 8fb45c64aef98afff6d1698447f3bc76
BLAKE2b-256 d5b24ca72cf6906cd24c6792cac362e6766742ee41db45cec5896089f67bcc09

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page