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