Bibliothèques de finance quantitative en Python

Apprenez quelques bibliothèques Python couramment utilisées dans le domaine de la finance quantitative, telles que :

  • zipline: une bibliothèque pour le backtesting et la mise en œuvre d'algorithmes de trading, commande d'installation :pip install zipline。

  • Quantlib: une bibliothèque pour l'évaluation des instruments financiers et l'exécution de calculs financiers, commande d'installation :pip install Quantlib。

  • TA-Lib: une bibliothèque pour l'analyse technique, commande d'installation :pip install TA-Lib。

  • pyfolio: est une bibliothèque pour évaluer la performance d'un portefeuille ; elle peut s'intégrer à des outils de backtesting tels que zipline, en fournissant des outils pour analyser les rendements, le risque, etc. d'un portefeuille, commande d'installation :pip install pyfolio。

  • statsmodels: est une bibliothèque pour estimer des modèles statistiques, notamment la régression linéaire, l'analyse de séries temporelles, etc. En finance quantitative, elle peut être utilisée pour construire et tester des stratégies de trading, commande d'installation :pip install statsmodels。


zipline

Zipline est un framework open source pour la recherche en finance quantitative et le trading algorithmique.

Il a été développé par Quantopian, visant à fournir aux chercheurs et aux développeurs un outil pratique pour construire, tester et exécuter des stratégies de trading quantitatives.

Avant d'utiliser Zipline, veuillez vous assurer que la bibliothèque est installée. Vous pouvez l'installer à l'aide de la commande suivante :

conda install -c conda-forge zipline

Ici, nous utilisonsAnacondapour installer Zipline, afin d'éviter d'étranges problèmes plus tard.

Ensuite, nous nous connectons àquandlle site officiel, nous nous inscrivons et obtenons la clé API :https://data.nasdaq.com/account/profile。

Ensuite, définissez la clé API et téléchargez le package de données. Les commandes spécifiques sont les suivantes :

set QUANDL_API_KEY=your_key

Pour les systèmes macOS, utilisez la commande suivante :

export QUANDL_API_KEY=your_key-zZQN

Télécharger le package de données :

zipline ingest -b quandl

Interroger le package de données :

# zipline bundles
csvdir <no ingestions>
quandl 2023-12-09 06:02:03.178299
quandl 2023-12-09 05:59:04.273082
quandl 2023-12-09 05:54:57.277732
quandl 2023-12-09 05:52:15.532504
quandl 2023-12-09 03:32:03.853032
quantopian-quandl <no ingestions>

Maintenant, utilisons Zipline pour un test simple.

Voici un script de stratégie Zipline simple pour le backtest du trading d'actions :

Exemple

from zipline.api import order, record, symbole


def initialize(context):
    pass


def handle_data(context, data):
    order(symbol('AAPL'), 10)
    record(AAPL=data.current(symbol('AAPL'), 'price'))

Ce qui précède est une stratégie simple qui achète 10 actions d'Apple au cours actuel à chaque jour de trading, et enregistre le cours actuel d'AAPL pour chaque jour de trading.

  • order(symbol('AAPL'), 10): Cette ligne signifie acheter 10 actions d'Apple Inc. (AAPL) au cours actuel à chaque jour de trading.symbol('AAPL')Utilisé pour obtenir le symbole boursier d'AAPL.

  • record(AAPL=data.current(symbol('AAPL'), 'price')): Cette ligne enregistre le cours actuel d'AAPL à chaque jour de trading.data.current(symbol('AAPL'), 'price')Utilisé pour obtenir le cours actuel de l'action AAPL.

Exécutez ensuite la commande suivante :

# zipline run -f my_strategy.py --start 2016-1-1 --end 2018-1-1 -o buyapple_out.pickle --no-benchmark
Simulated 503 trading days
 first open: 2016-01-04 14:30:00+00:00
 last close: 2017-12-29 21:00:00+00:00

Après une exécution réussie, il générera le fichierbuyapple_out.pickle, nous pouvons utiliser le modulepicklepour le lire.

Description de la commande :

  • zipline run:Lancez Zipline pour exécuter le backtest.

  • -f my_strategy.py:Spécifiez le fichier de stratégie. Dans cet exemple,my_strategy.pyest le fichier Python contenant la stratégie que vous avez écrite.

  • --start 2016-1-1et--end 2018-1-1:Spécifiez les dates de début et de fin du backtest. Dans cet exemple, la plage temporelle du backtest va du 1er janvier 2016 au 1er janvier 2018.

  • -o buyapple_out.pickle:Spécifiez le nom du fichier de sortie. Dans cet exemple, les résultats du backtest seront enregistrés sousbuyapple_out.picklefichier. Ce fichier contient diverses informations de sortie du backtest, telles que les enregistrements de transactions, les métriques de performance, etc.

  • --no-benchmark:Désactiver le benchmark. En backtesting, parfois un benchmark est utilisé pour comparer la performance de la stratégie. L'utilisation de--no-benchmarkl'option signifie qu'aucun benchmark n'est utilisé.

Le module pickle est utilisé pour sérialiser et désérialiser des objets, ce qui facilite l'enregistrement d'objets dans un fichier ou le chargement d'objets à partir d'un fichier.

Ce qui suit montre comment lire le contenu du fichier buyapple_out.pickle :

Exemple

import pickle

# Spécifier le chemin du fichier pickle
pickle_file_path = 'buyapple_out.pickle'

# Lire le fichier pickle
with open(pickle_file_path, 'rb') as fichier:
    buyapple_out_data = pickle.load(file)

# Afficher les données lues
print(buyapple_out_data)

La sortie est la suivante :

                                        period_open              period_close  short_value          pnl  long_exposure  ...  max_leverage  excess_return treasury_period_return trading_days  period_label
2016-01-04 21:00:00+00:00 2016-01-04 14:31:00+00:00 2016-01-04 21:00:00+00:00          0.0      0.00000            0.0  ...      0.000000            0.0                    0.0            1       2016-01
2016-01-05 21:00:00+00:00 2016-01-05 14:31:00+00:00 2016-01-05 21:00:00+00:00  
Autres extensions