Python Finanzdaten abrufen
In diesem Abschnitt betrachten wir zunächst ein einfaches Python-Beispiel für quantitative Trading, das die Moving-Average-Strategie mit Daten von Yahoo Finance verwendet.
Die Grundidee dieser Strategie besteht darin, Kauf- und Verkaufssignale durch den Vergleich kurzfristiger und langfristiger gleitender Durchschnitte zu erzeugen.
Bevor Sie dieses einfache Beispiel umsetzen, müssen Sie drei Pakete installieren:
pip install pandas numpy matplotlib yfinance
Paketbeschreibungen:
- pandasist eine leistungsstarke Open-Source-Bibliothek zur Datenverarbeitung und -analyse, die speziell für effiziente Datenanalyse und -manipulation entwickelt wurde.
- numpyBietet Unterstützung für Arrays und Matrizen für mathematische Berechnungen.
- yfinanceist eine Bibliothek zum Abrufen von Finanzdaten, die den Abruf von Aktien, Indizes und anderen Finanzmarktdaten von Yahoo Finance unterstützt.
- matplotlibist eine 2D-Diagrammbibliothek, die zum Erstellen statischer, animierter und interaktiver Datenvisualisierungsdiagramme verwendet wird.
Historische Aktiendaten abrufen
Verwenden Sie yfinance, um historische Aktiendaten abzurufen. Hier ist ein einfaches Beispiel:
Beispiel
# Aktiendaten abrufen
symbol = "600519.SS"
start_date = "2022-01-01"
end_date = "2023-01-01"
data = yf.download(symbol, start=start_date, end=end_date)
print(data.head())
Die Ausgabe sieht wie folgt aus:
Open High Low Close Adj Close Volume
Date
2022-01-04 2055.00000 2068.949951 2014.000000 2051.229980 1973.508057 3384262
2022-01-05 2045.00000 2065.000000 2018.000000 2024.000000 1947.309937 2839551
2022-01-06 2022.01001 2036.000000 1938.510010 1982.219971 1907.112915 5179475
2022-01-07 1975.00000 1988.880005 1939.319946 1942.000000 1868.416870 2981669
2022-01-10 1928.01001 1977.000000 1917.550049 1966.000000 1891.507446 2962670
Einfache Datenanalyse und Visualisierung
Verwenden Sie pandas für die Datenanalyse und matplotlib für die Visualisierung:
Beispiel
import pandas as pd
import matplotlib.pyplot as plt
# Aktiendaten abrufen
symbol = "600519.SS"
start_date = "2022-01-01"
end_date = "2023-01-01"
data = yf.download(symbol, start=start_date, end=end_date)
# Einfache Datenanalyse
print(data.describe())
# Aktienkurs-Trenddiagramm zeichnen
data['Close'].plot(figsize=(10, 6), label=Symbol)
plt.title(f"{symbol} Aktienkurs")
plt.xlabel("Datum")
plt.ylabel("Preis")
plt.legend()
plt.show()
Das Trenddiagramm ist unten dargestellt:

Crossover-Strategie mit gleitendem Durchschnitt
Anschließend können wir die Yahoo-Finance-Bibliothek (yfinance) verwenden, um Aktiendaten für Guizhou Moutai (600519.SS) abzurufen und eine einfache Demonstration basierend auf der Strategie mit gleitendem Durchschnitt zu geben:
Beispiel
import yfinance as yf
import matplotlib.pyplot as plt
# Guizhou-Moutai-Aktiendaten abrufen
symbol = "600519.SS"
start_date = "2022-05-01"
end_date = "2023-12-01"
data = yf.download(symbol, start=start_date, end=end_date)
# Berechne kurzfristige (50-Tage) und langfristige (200-Tage) gleitende Durchschnitte
data['MA_50'] = data['Close'].rolling(window=50).mean()
data['MA_200'] = data['Close'].rolling(window=200).mean()
# Kauf-/Verkaufssignale generieren
data['Signal'] = 0
data['Signal'][data['MA_50'] > data['MA_200']] = 1 # Kurzfristiger MA kreuzt über langfristigen MA und erzeugt ein Kaufsignal
data['Signal'][data['MA_50'] < data['MA_200']] = -1 # Kurzfristiger MA kreuzt unter langfristigen MA und erzeugt ein Verkaufssignal
# Aktienkurs und gleitende Durchschnitte darstellen
plt.figure(figsize=(10, 6))
plt.plot(data['Close'], label='Schlusskurs')
plt.plot(data['MA_50'], label='50-Tage-gleitender Durchschnitt')
plt.plot(data['MA_200'], label='200-Tage-gleitender Durchschnitt')
# Kauf-/Verkaufssignale markieren
plt.scatter(data[data['Signal'] == 1].index, data[data['Signal'] == 1]['MA_50'], marker='^', color='g', label='Kaufsignal')
plt.scatter(data[data['Signal'] == -1].index, data[data['Signal'] == -1]['MA_50'], marker='v', color='r', label='Verkaufssignal')
plt.title("Maotai-Aktienkurs mit gleitenden Durchschnitten")
plt.xlabel("Datum")
plt.ylabel("Preis (CNY)")
plt.legend()
plt.show()
Der obige Beispielcode verwendet Aktiendaten von Guizhou Moutai (600519.SS), um gleitende Durchschnitte über 50 Tage und 200 Tage zu berechnen und erzeugt Kauf-/Verkaufssignale, indem er die Beziehung zwischen den beiden vergleicht.
Schließlich wird Matplotlib verwendet, um das Trenddiagramm des Aktienkurses zu zeichnen und die Kauf-/Verkaufssignale zu markieren.
Denken Sie daran, Strategien im tatsächlichen Handel sorgfältig zu recherchieren und zu testen, und tätigen Sie keine realen Investitionen direkt auf der Grundlage des Obigen.
Führen Sie den obigen Code aus; das Ausgabediagramm sieht wie folgt aus: Die grünen Teile sind Kaufsignale, die roten Teile sind Verkaufssignale. Klicken Sie auf das Bild, um Details zu vergrößern:
Backtesting-Strategie
Ich habe die positiven oder negativen täglichen Aktienrenditen verwendet, um Handelssignale zu erzeugen und ein einfaches Beispiel zu demonstrieren. Sie können diese Bedingung entsprechend Ihrer eigenen Strategie anpassen.
Beispiel
import pandas as pd
import matplotlib.pyplot as plt
# Aktiendaten abrufen
symbol = "600519.SS"
start_date = "2023-01-01"
end_date = "2023-12-01"
data = yf.download(symbol, start=start_date, end=end_date)
# Crossover-Signal-Spalte initialisieren
data['Signal'] = 0
# Tagesrenditen berechnen
data['Daily_Return'] = data['Close'].pct_change()
# Strategie-Signale berechnen
data['Signal'] = 0
data.loc[data['Daily_Return'] > 0, 'Signal'] = 1 # Kursanstieg als Signal verwenden; Bedingung nach Bedarf anpassen
# Strategie-Renditen berechnen
data['Strategy_Return'] = data['Signal'].shift(1) * data['Daily_Return']
# Kumulierte Renditen berechnen
data['Cumulative_Return'] = (1 + data['Strategy_Return']).cumprod()
# Kumulative Renditekurve plotten
plt.figure(figsize=(10, 6))
plt.plot(data['Cumulative_Return'], label='Kumulative Rendite der Strategie', color='b')
plt.plot(data['Close'] / data['Close'].iloc[0], label='Kumulative Rendite der Aktie', color='g')
plt.title("Kumulative Rendite der Strategie vs. Aktie")
plt.xlabel("Datum")
plt.ylabel("Kumulative Rendite")
plt.legend()
plt.show()
Führen Sie den obigen Code aus; das Ausgabediagramm sieht wie folgt aus:

Grundlegende quantitative Handelsstrategien
Der quantitative Handel basiert auf mathematischen Modellen, Statistiken und Computeralgorithmen und identifiziert und führt Handelsmöglichkeiten durch systematische Methoden aus.
Im Folgenden finden Sie einige gängige grundlegende quantitative Handelsstrategien:
Der quantitative Handel basiert auf mathematischen Modellen, Statistiken und Computeralgorithmen und identifiziert und führt Handelsmöglichkeiten durch systematische Methoden aus.
Im Folgenden finden Sie einige gängige grundlegende quantitative Handelsstrategien:
1. Gleitende-Durchschnitt-Strategie
Strategieidee:Basierend auf dem historischen Durchschnitt der Aktienkurse werden Kauf- und Verkaufssignale durch die Berechnung der Differenz zwischen kurz- und langfristigen gleitenden Durchschnitten erzeugt.
Implementierungsmethode:Berechnen Sie kurz- und langfristige gleitende Durchschnitte. Wenn der kurzfristige MA den langfristigen MA nach oben durchkreuzt, wird ein Kaufsignal erzeugt; umgekehrt wird ein Verkaufssignal erzeugt.
2. Mean-Reversion-Strategie
Strategieidee:Basierend auf historischen Preisschwankungen wird angenommen, dass Preise nach Schwankungen auf ihr durchschnittliches Niveau zurückkehren.
Implementierungsmethode:Durch Berechnung der Differenz zwischen dem Preis und dem Mittelwert wird ein Kauf- oder Verkaufssignal erzeugt, wenn der Preis zu stark vom Mittelwert abweicht.
3. Momentum-Strategie
Strategieidee:Basierend auf Preistrends wird angenommen, dass Preistrends für eine gewisse Zeit andauern werden.
Implementierungsmethode:Kauf- oder Verkaufssignale werden durch Berechnung der Änderungsrate des Preises oder anderer Trendindikatoren erzeugt.
4. Marktneutrale Strategie
Strategieidee:Durch gleichzeitiges Kaufen und Verkaufen wird die relative Stärke des Marktes genutzt.
Implementierungsmethode:Handelssignale werden basierend auf der Preisdifferenz oder Korrelation zwischen zwei oder mehr verwandten Vermögenswerten generiert.
5. Statistische Arbitrage-Strategie
Strategieidee:Basierend auf statistischen Prinzipien werden vorübergehende Ungleichgewichte zwischen Preisen gesucht, um Arbitrage zu erzielen.
Implementierungsmethode:Handelssignale werden generiert, indem nach Ausreißern bei Preisen, Volatilität oder anderen statistischen Indikatoren gesucht wird.
6. Ereignisgesteuerte Strategie
Strategieidee:Handelssignale auf Basis des Auftretens bestimmter Ereignisse oder Informationen generieren.
Implementierungsmethode:Überwachen Sie Nachrichten, Finanzberichte, Wirtschaftsindikatoren usw. und führen Sie Trades aus, wenn bestimmte Ereignisse eintreten.
7. Machine-Learning-Strategie
Strategieidee:Verwenden Sie Algorithmen des maschinellen Lernens, um Muster aus großen Datenmengen zu lernen und zukünftige Preistrends vorherzusagen.
Implementierungsmethode:Verwenden Sie Regressions-, Klassifikations- oder Deep-Learning-Modelle und trainieren Sie die Modelle, um Markttrends vorherzusagen.
8. Hochfrequenzhandelsstrategie
Strategieidee:Nutzen Sie kleine Preisunterschiede in extrem kurzen Zeiträumen, indem Sie schnell eine große Anzahl von Trades ausführen.
Implementierungsmethode:Verwenden Sie leistungsstarke Algorithmen und schnelle Ausführungssysteme, die normalerweise eine große Anzahl von Trades und kurze Haltedauern umfassen.
Diese Strategien sind nur ein kleiner Teil des Bereichs des quantitativen Handels. Tatsächlich gibt es quantitative Handelsstrategien in vielen Formen, und sie können je nach Markt, Anlageklasse und Präferenzen des Traders angepasst werden. Wichtig ist, dass das Design quantitativer Strategien gründliches Backtesting und Überlegungen zum Risikomanagement erfordert, um ihre Wirksamkeit in verschiedenen Marktumgebungen sicherzustellen.
Andere Erweiterungen