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.3.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.3-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quantfinance-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 c857a34deab7148095394048659ff4e29f7be972c93d04b8f00b1afd947785be
MD5 ae044c3c26f738738a42ed3ad771e85d
BLAKE2b-256 fb7edaedae11cf2b496cc260b4004d5ec45d3373a0b9020640f9c18b43e9f8a8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quantfinance-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b2bca7bf051bb3478981915f8ed7085c7a8ff7de8ba7fdcb952621c31fa09daa
MD5 815d122bd99202897e8e665e75847830
BLAKE2b-256 4e6d64df359b2f302a4ce3382ac2a9ff6a6213e341daefdc032892b027d9c04d

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