Skip to main content

A comprehensive backtesting framework designed to evaluate and compare various investment strategies using historical data. This framework enables users to implement, test, and analyze trading strategies by providing detailed performance metrics and customizable visualizations. It supports data input in CSV or Parquet formats and offers multiple visualization backends, including matplotlib, seaborn, and plotly.

Project description

Framework de Backtesting de Stratégies d’Investissement

Overview

Ce dépôt contient un framework de backtesting conçu pour tester, analyser et comparer différentes stratégies d’investissement sur des données historiques. Il est flexible, extensible, et adapté à divers types d'actifs financiers tels que les actions, les crypto-monnaies ou autres instruments financiers.


Fonctionnalités principales

  • Gestion des données :

    • Prise en charge des fichiers CSV et Parquet, ou directement des DataFrame pandas.
    • Compatible avec des sources de données externes telles que yfinance ou pandas-datareader.
    • Données indexées par des dates avec prise en charge de colonnes personnalisées (e.g., Close, Open, indicateurs financiers).
  • Stratégies d’investissement :

    • Définition des stratégies via une classe abstraite ou des décorateurs pour une flexibilité maximale.
    • Stratégies prédéfinies incluses : Moyenne Mobile, Quality, Value, MinVariance, PairsTrading, etc.
    • Support pour des stratégies mono-actif ou multi-actifs.
  • Backtesting performant :

    • Gestion des coûts de transaction, slippage, et ajustements basés sur la volatilité cible.
    • Options de rebalancement flexibles : journalier, hebdomadaire, mensuel, etc.
  • Analyse des résultats :

    • Statistiques détaillées : rendement total, ratio de Sharpe, drawdown maximum, VaR, etc.
    • Comparaison des performances entre plusieurs stratégies.
  • Visualisation avancée :

    • Graphiques interactifs avec matplotlib, seaborn ou plotly :
      • Rendements cumulés.
      • Heatmaps des rendements mensuels.
      • Distribution des rendements quotidiens.

Installation

Installez le framework directement depuis PyPI :

pip install Backtesting-Framework

Les dépendances sont gérées via pyproject.toml.


Structure

Backtesting-Framework/ 
├── backtesting_framework/ 
├── Core/ # Composants principaux du framework. 
│ ├── init.py # Initialisation du module Core. 
│ ├── app.py # Gestionnaire principal de l'application. 
│ ├── Backtester.py # Composant central pour exécuter les backtests. 
│ ├── Calendar.py # Gestion des calendriers de trading et des dates. 
│ ├── Main.py # Point d'entrée pour l'exécution du framework. 
│ ├── Result.py # Classe pour gérer et analyser les résultats du backtest. 
│ └── Strategy.py # Classe abstraite définissant la structure des stratégies. 
├── Strategies/ # Implémentations des stratégies prédéfinies. 
│ ├── Utils/ # Fonctions utilitaires pour le traitement des données et autres. 
│ │ ├── init.py # Initialisation du module Utils. 
│ │ └── Tools.py # Fonctions utilitaires spécifiques. 
│ └── init.py # Fichier d'initialisation du module principal. 
├── Datasets/ # Données d'exemple utilisées pour les tests et le développement. 
├── tests/ # Tests unitaires pour valider le fonctionnement du framework. 
│ ├── init.py # Initialisation du module de tests. 
│ └── test_backtester.py # Tests pour le composant Backtester. 
├── Framework de Backtesting de Stratégies d’Investissement.ipynb # Jupyter Notebook de démonstration du framework. 
├── pyproject.toml # Configuration du projet et gestion des dépendances avec Poetry. 
├── README.md # Documentation du projet (vous y êtes).

Utilisation

Le fichier Jupyter Notebook Framework de Backtesting de Stratégies d’Investissement.ipynb agit comme un guide utilisateur complet. Il présente les principales classes du framework, leurs arguments et leur fonctionnement. Vous y trouverez des exemples concrets pour la gestion des données, la création et l'exécution de stratégies, ainsi que l'analyse et la visualisation des résultats. Ce notebook est un excellent point de départ pour comprendre comment utiliser efficacement le framework et pour expérimenter avec vos propres stratégies d'investissement.


Auteurs

  • Nassim BOUSSAID
  • Nicolas COUTURAUD
  • Kartty MOUROUGAYA
  • Hugo SOULIER

Sous la supervision de M. Rémi Genet.


Licence

Ce projet est sous licence MIT.

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

backtesting_framework-0.1.3.tar.gz (75.6 kB view details)

Uploaded Source

Built Distribution

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

backtesting_framework-0.1.3-py3-none-any.whl (38.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: backtesting_framework-0.1.3.tar.gz
  • Upload date:
  • Size: 75.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.11.1 Windows/10

File hashes

Hashes for backtesting_framework-0.1.3.tar.gz
Algorithm Hash digest
SHA256 39bfb2c90f5e2c2838a003f4d6e5d05712b57c82e59d40880de80b9caf4109af
MD5 0b7a91c969f0f0ad73d01255bd0c1398
BLAKE2b-256 a08ac3093ab5ad8e1bd0953b614c5822b88a8b9cf84920e7ef9decbfea395012

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for backtesting_framework-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 12c237d7bdb09b78701431a973888f8be138528daeae7bfee803ff6447580a79
MD5 44d20f77f923611e76ed9c6fe47c0031
BLAKE2b-256 a81bdea3e57b849f84a7ae34bdb9c6603b55c93503ec2242ce5c62dd587fc1b8

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