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 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 GitHub Pages.

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.4.tar.gz (311.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.4-py3-none-any.whl (48.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quantfinance-0.1.4.tar.gz
  • Upload date:
  • Size: 311.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.4.tar.gz
Algorithm Hash digest
SHA256 96534c02570fbf630897787ea4c138c9e829c9f203056036cd0555f5f05b47d5
MD5 56983f5c880901e46f9ec58802ff085c
BLAKE2b-256 ecdca50032ff87737d1cccd9ea7bd9631d3b433aaffd555ffd76c85899248095

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quantfinance-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 48.3 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 108cdb1a157fd42962fee03561ccafb53428c6f3df8a181459a32640066d7d18
MD5 84aee4f8d7daa4df9f226decdeeab436
BLAKE2b-256 15baa502804594cc52356d76ab95ad6ccfbbe09336532e94d6d59303cb05c8b3

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