Python-Bibliotheken für quantitative Finanzwirtschaft

Lernen Sie einige häufig verwendete Python-Bibliotheken im Bereich Quantitative Finance kennen, wie zum Beispiel:

  • zipline: Eine Bibliothek für Backtesting und Implementierung von Handelsalgorithmen, Installationsbefehl:pip install zipline。

  • Quantlib: Eine Bibliothek zur Bewertung von Finanzinstrumenten und zur Durchführung von Finanzberechnungen, Installationsbefehl:pip install Quantlib。

  • TA-Lib: Eine Bibliothek für technische Analyse, Installationsbefehl:pip install TA-Lib。

  • pyfolio: Ist eine Bibliothek zur Bewertung der Portfolio-Performance; sie kann mit Backtesting-Tools wie zipline integriert werden und bietet Werkzeuge zur Analyse von Portfolio-Renditen, Risiko usw., Installationsbefehl:pip install pyfolio。

  • statsmodels: Ist eine Bibliothek zur Schätzung statistischer Modelle, einschließlich linearer Regression, Zeitreihenanalyse usw. Im Bereich Quantitative Finance kann sie verwendet werden, um Handelsstrategien zu entwickeln und zu testen, Installationsbefehl:pip install statsmodels。


zipline

Zipline ist ein Open-Source-Framework für Forschung im Bereich Quantitative Finance und algorithmischen Handel.

Es wurde von Quantopian entwickelt, mit dem Ziel, Forschern und Entwicklern ein praktisches Werkzeug zum Erstellen, Testen und Ausführen quantitativer Handelsstrategien bereitzustellen.

Bevor Sie Zipline verwenden, stellen Sie bitte sicher, dass Sie die Bibliothek installiert haben. Sie können sie mit dem folgenden Befehl installieren:

conda install -c conda-forge zipline

Hier verwenden wirAnaconda, um Zipline zu installieren, um später seltsame Probleme zu vermeiden.

Als Nächstes melden wir uns beiquandl, der offiziellen Website, an, registrieren uns und holen den API-Schlüssel:https://data.nasdaq.com/account/profile。

Legen Sie dann den API-Schlüssel fest und laden Sie das Datenpaket herunter. Die konkreten Befehle lauten wie folgt:

set QUANDL_API_KEY=your_key

Verwenden Sie für macOS-Systeme den folgenden Befehl:

export QUANDL_API_KEY=your_key-zZQN

Datenpaket herunterladen:

zipline ingest -b quandl

Datenpaket abfragen:

# 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>

Nun wollen wir Zipline für einen einfachen Test verwenden.

Das Folgende ist ein einfaches Zipline-Strategieskript für das Backtesting des Aktienhandels:

Beispiel

from zipline.api import order, record, Symbol


def initialize(context):
    pass


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

Das Obige ist eine einfache Strategie, die an jedem Handelstag 10 Aktien von Apple zum aktuellen Preis kauft und den aktuellen AAPL-Preis für jeden Handelstag aufzeichnet.

  • order(symbol('AAPL'), 10): Diese Zeile bedeutet, 10 Aktien von Apple Inc. (AAPL) zum aktuellen Preis an jedem Handelstag zu kaufen.symbol('AAPL')Wird verwendet, um das Aktiensymbol für AAPL zu erhalten.

  • record(AAPL=data.current(symbol('AAPL'), 'price')): Diese Zeile zeichnet den aktuellen Preis von AAPL an jedem Handelstag auf.data.current(symbol('AAPL'), 'price')Wird verwendet, um den aktuellen Aktienkurs von AAPL abzurufen.

Führen Sie dann den folgenden Befehl aus:

# 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

After successful execution, it will generatebuyapple_out.pickleerzeugt, wir können das Modulpickleverwenden, um sie zu lesen.

Befehlsbeschreibung:

  • zipline run:Starten Sie Zipline, um den Backtest auszuführen.

  • -f my_strategy.py:Geben Sie die Strategiedatei an. In diesem Beispielmy_strategy.pyist die Python-Datei, die die von Ihnen geschriebene Strategie enthält.

  • --start 2016-1-1und--end 2018-1-1:Geben Sie das Start- und Enddatum des Backtests an. In diesem Beispiel reicht der Backtest-Zeitraum vom 1. Januar 2016 bis zum 1. Januar 2018.

  • -o buyapple_out.pickle:Geben Sie den Namen der Ausgabedatei an. In diesem Beispiel werden die Backtest-Ergebnisse gespeichert alsbuyapple_out.pickleDatei. Diese Datei enthält verschiedene Ausgabeinformationen des Backtests, wie Handelsaufzeichnungen, Leistungskennzahlen usw.

  • --no-benchmark:Benchmark deaktivieren. Beim Backtesting wird manchmal eine Benchmark verwendet, um die Performance der Strategie zu vergleichen. Die Verwendung der--no-benchmarkOption bedeutet, dass keine Benchmark verwendet wird.

Das pickle-Modul wird verwendet, um Objekte zu serialisieren und zu deserialisieren, wodurch es praktisch ist, Objekte in einer Datei zu speichern oder Objekte aus einer Datei zu laden.

Das Folgende zeigt, wie der Inhalt der Datei buyapple_out.pickle gelesen wird:

Beispiel

import pickle

# Pfad zur Pickle-Datei angeben
pickle_file_path = 'buyapple_out.pickle'

# Pickle-Datei lesen
with open(pickle_file_path, 'rb') as Datei:
    buyapple_out_data = pickle.load(file)

# Gelesene Daten ausgeben
print(buyapple_out_data)

Die Ausgabe sieht wie folgt aus:

                                        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  
Andere Erweiterungen