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

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

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.2.tar.gz (122.7 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.2-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quantfinance-0.1.2.tar.gz
  • Upload date:
  • Size: 122.7 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.2.tar.gz
Algorithm Hash digest
SHA256 a371254faa508debb80c8b5ae4698145d66b6128a0e3855b34543cc43f6ed35b
MD5 534259e1aaee17bd65a9e4f6721b6260
BLAKE2b-256 eceb2d8d78fd547a4a18e019cf5afb2fcb085ca4e25eceb276256f74f3febe49

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quantfinance-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 48.5 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 50cc9f91da59e8b18923d7986bac4c4cb3f5621dad434ab6355787d34ff74432
MD5 d5da89a2503e80449dd2f55239197434
BLAKE2b-256 64a7cf9b4ff1cd2ac8926748f5b811f1c26a7b121b63fb3eb22494fcd84f543d

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