Python im algorithmischen Handel - Seite 24

 

So berechnen Sie die Volatilität eines Aktienanlageportfolios mit Python, NumPy und Pandas


So berechnen Sie die Volatilität eines Aktienanlageportfolios mit Python, NumPy und Pandas

In diesem Video zeigt der Moderator, wie man die Volatilität eines Anlageportfolios mit Python berechnet und bezieht die dahinter stehenden mathematischen Gleichungen ein. Der Fokus liegt auf einem Zwei-Wertpapier-Portfolio, wie es einfach auf einem Taschenrechner berechnet werden kann. Der Referent erwähnt jedoch, dass bei Portfolios mit mehr als drei Wertpapieren die Matrixmultiplikation zur Berechnung der Volatilität verwendet wird. Der Moderator nutzt die NumPy-Bibliothek und andere unterstützende Bibliotheken, um die Berechnungen durchzuführen.

Das Video beginnt mit der Einrichtung der Python-Umgebung und dem Import der notwendigen Module. Anschließend definiert der Präsentator Variablen, die im gesamten Prozess verwendet werden.

Um Echtzeitdaten für das Portfolio zu erhalten, erwähnt der Moderator die Verwendung einer API und demonstriert insbesondere die Verwendung historischer Tagesenddaten. Sie erklären, dass für den Zugriff auf die Daten ein API-Schlüssel erforderlich ist und geben Anweisungen zur Registrierung und zum Erhalt des Schlüssels. Als Startdatum für die Daten wird ein Datum vor etwa einem Jahr festgelegt. Der Präsentator richtet das Portfolio ein, weist jedem Wertpapier die gleiche Gewichtung zu und erstellt eine leere Liste zum Speichern der heruntergeladenen Daten.

Mithilfe einer for-Schleife führt der Präsentator API-Aufrufe für jedes Symbol im Portfolio durch und ruft die Daten ab. Sie zeigen, wie der API-Aufruf erstellt wird, indem die Endpunkt-URL von der Website des Datenanbieters abgerufen und die erforderlichen Änderungen vorgenommen werden. Die Daten werden als JSON-String abgerufen, der zur weiteren Verarbeitung in einen Pandas-DataFrame konvertiert wird. Die Schlusskurse werden aus dem DataFrame extrahiert und der Datenliste hinzugefügt.

Nach Abschluss der for-Schleife wandelt der Präsentator die Datenliste in einen DataFrame um, transponiert ihn, benennt die Spalten mit den Symbolnamen um und ändert den Index in Datumsangaben. Anschließend zeigen sie den resultierenden DataFrame an, der die Schlusskurse für jedes Wertpapier enthält.

Zur Berechnung der Volatilität erklärt der Referent, dass die momentanen Renditen berechnet werden müssen. Sie erstellen einen neuen DataFrame mithilfe der Logarithmusfunktion von NumPy für die Schlusskurse und berechnen dann die Differenzen zwischen aufeinanderfolgenden Werten. Der resultierende DataFrame stellt die momentanen Renditen für jedes Wertpapier dar. Der Moderator entfernt die erste Zeile des DataFrame, um alle NaN-Werte zu verarbeiten, und demonstriert die Berechnung der Varianz für jedes Wertpapier.

Um die Volatilität für jedes Wertpapier zu berechnen, verwendet der Präsentator die Quadratwurzel der Varianz. Sie zeigen die resultierenden Volatilitäten in Prozent an.

Was die Portfoliovolatilität betrifft, erklärt der Vortragende, dass sie als gewichteter Durchschnitt der Volatilitäten jedes Wertpapiers berechnet werden kann. Da die Wertpapiere im Beispiel gleich gewichtet sind, benötigt der Präsentator lediglich den Mittelwert der Volatilitäten. Sie formatieren es als Prozentsatz.

Als Nächstes stellt der Moderator das Konzept einer Kovarianzmatrix vor und demonstriert, wie diese mithilfe des Returns DataFrame berechnet wird. Sie passen die tägliche Kovarianz an eine jährliche Kovarianz an und zeigen die resultierende Kovarianzmatrix an.

Abschließend berechnet der Vortragende die Portfoliovolatilität mittels Matrixmultiplikation. Sie multiplizieren die Gewichte mit der Kovarianzmatrix und ziehen die Quadratwurzel aus dem Ergebnis. Die Portfoliovolatilität wird als Prozentsatz angezeigt und stellt die Standardabweichung dar.

Abschließend zeigt das Video Schritt für Schritt, wie man die Portfoliovolatilität mit Python berechnet. Der Referent erklärt die notwendigen Berechnungen, stellt relevante Bibliotheken wie NumPy vor und betont die Vorteile der Diversifikation bei der Reduzierung der Portfoliovolatilität.

How to Calculate Stock Investment Portfolio Volatility with Python, NumPy & Pandas
How to Calculate Stock Investment Portfolio Volatility with Python, NumPy & Pandas
  • 2021.08.18
  • www.youtube.com
#python #numpy #pandaslearn how to use Python and NumPy to calculate investment portfolio volatilityhttps://alphabench.com/data/python-portfolio-volatil...
 

Erste Schritte mit Steamlit für Python – Erstellen Sie in wenigen Minuten eine funktionierende Web-App



Erste Schritte mit Steamlit für Python – Erstellen Sie in wenigen Minuten eine funktionierende Web-App

In diesem Video zeige ich, wie man mit Streamlit für Python eine Web-App erstellt. Streamlit ist eine webbasierte Benutzeroberfläche, die kostenlos verwendet werden kann und es Ihnen ermöglicht, hochwertige Apps zu erstellen und zu teilen, ohne Erfahrung in der Front-End-Entwicklung zu haben. Wir werden eine einfache App erstellen, die es uns ermöglicht, Aktienkursdaten mithilfe einer API herunterzuladen und grafisch darzustellen. Lass uns anfangen!

Zunächst werde ich PyCharm als meine IDE verwenden, Sie können jedoch jede IDE Ihrer Wahl verwenden. Wenn Sie mit PyCharm nicht vertraut sind, habe ich in der Videobeschreibung einen Link für ein Video „Erste Schritte mit PyCharm“ bereitgestellt. Schauen Sie gerne vorbei, wenn Sie mehr erfahren möchten.

Ich habe in PyCharm bereits ein neues Projekt namens „Streamlit Demo“ eingerichtet und eine Python-Datei hinzugefügt. Da wir mit einer neuen virtuellen Umgebung beginnen, müssen wir einige Abhängigkeiten installieren. Wir benötigen Pandas, die Requests-Bibliothek und Streamlit. Abhängig von Ihrer PyCharm-Konfiguration sind Pandas und Requests möglicherweise bereits installiert, Sie müssen jedoch unbedingt Streamlit installieren. Darüber hinaus werden wir für unsere App die API „End of Day Historical Data“ verwenden, die kostenlose API-Aufrufe mit einem Limit von etwa 20 pro Tag ermöglicht. Wenn Sie mehr benötigen, bieten sie auf ihrer Website Abonnementoptionen an.

Sobald Streamlit installiert ist, werfen wir einen Blick auf die Beispielanwendung. Ich öffne das Terminal und führe Streamlit aus, indem ich Python über die Befehlszeile aufrufe und dann den Streamlit-Befehl ausführe. Ihre Beispielanwendung befindet sich in einer Datei namens „hello“. Nach ein paar Sekunden startet die Anwendung und Sie sehen eine Webseite mit einer Kopfzeile, etwas Text und Hyperlinks. Auf der linken Seite gibt es verschiedene Demonstrationen, die Sie erkunden können. Das Schöne an ihren Demos ist, dass sie den Code bereitstellen, der zum Generieren der Ausgabe verwendet wird. Es gibt beispielsweise eine Demo mit einem Diagramm, und darunter können Sie den Code sehen, der zum Generieren dieses Diagramms verwendet wurde. Streamlit kümmert sich um die Formatierung und Platzierung von Inhalten auf der Webseite, sodass Sie sich nur auf das Schreiben des Codes konzentrieren müssen, um die gewünschte Ausgabe zu erzeugen.

Sobald Sie mit Ihrer Bewerbung zufrieden sind, können Sie bei Streamlit die Erlaubnis zur Live-Veröffentlichung einholen. Sie bieten weiterhin kostenlose Veröffentlichungen an, aber Sie müssen sie kontaktieren, um dies einzurichten. Anschließend können Sie Ihre Dateien auf GitHub übertragen und Ihre Live-Anwendung innerhalb von Sekunden teilen.

Kommen wir nun zur Erstellung unserer eigenen Anwendung. Ich werde einige Funktionen von Streamlit demonstrieren, bevor wir mit dem Schreiben unseres Anwendungscodes beginnen. Streamlit bietet verschiedene Elemente, die Sie verwenden können, z. B. Schaltflächen, Farbwähler, Seitenleisten, Textfelder und Datumswähler. Das am häufigsten verwendete Element ist die Funktion „Schreiben“, mit der Sie Text auf der Webseite anzeigen können. Sie können auch die Markdown-Syntax innerhalb der „write“-Funktion verwenden, um den Text zu formatieren. Wenn Sie außerdem Freiformtext anzeigen möchten, können Sie einfach einen Docstring verwenden, und Streamlit rendert ihn als Markdown.

Lassen Sie uns einige dieser Funktionen testen, indem wir eine einfache App schreiben. Ich werde ein paar Abhängigkeiten definieren und Ihnen dann zeigen, wie Sie die Streamlit-Elemente verwenden. Wir beginnen mit der „st“-Funktion und erkunden ihre verschiedenen Fähigkeiten. Beispielsweise können wir „st.button“ verwenden, um eine Schaltfläche anzuzeigen, „st.color_picker“ für einen Farbwähler und „st.sidebar“, um eine Seitenleiste zu erstellen. Die Funktion „Schreiben“ ist auch sehr nützlich zum Anzeigen von Text, und Sie können darin die Markdown-Syntax verwenden. Ich werde diese gemeinsamen Funktionen demonstrieren, aber bedenken Sie, dass Streamlit noch viel mehr Optionen bietet.

Um die Anwendung auszuführen, stoppe ich den aktuellen Streamlit-Server und starte ihn erneut, indem ich den Python-Befehl mit dem Namen ausführe.

Hier ist ein Beispiel einer einfachen Streamlit-App, mit der Sie Aktienkursdaten herunterladen und grafisch darstellen können:

import streamlit as st
import pandas as pd
import requests

# Set the title and page layout
st.title( "Stock Price Data" )
st.sidebar.header( "Settings" )

# Create input fields in the sidebar
symbol = st.sidebar.text_input( "Enter a stock symbol (e.g., AAPL)" , value= "AAPL" )
start_date = st.sidebar.text_input( "Enter the start date (YYYY-MM-DD)" , value= "2022-01-01" )
end_date = st.sidebar.text_input( "Enter the end date (YYYY-MM-DD)" , value= "2022-12-31" )

# Create a button to trigger the data retrieval
if st.sidebar.button( "Get Data" ):
     # Make an API request to retrieve the stock price data
    url = f " https://api.example.com/stock/ {symbol}/history?start_date={start_date}&end_date={end_date}"
    response = requests.get(url)
    
     # Check if the API request was successful
     if response.status_code == 200 :
        data = response.json()
        df = pd.DataFrame(data)
        
         # Display the downloaded data
        st.write(df)
        
         # Create a line chart of the stock prices
        st.line_chart(df[ "close" ])
     else :
        st.write( "Error retrieving data from the API" )

# Add some additional information to the sidebar
st.sidebar.info( "This is a simple app to download and graph stock price data." )
st.sidebar.info( "Enter the stock symbol and date range, then click 'Get Data' to retrieve the data." )

In diesem Beispiel importieren wir zunächst die notwendigen Bibliotheken: Streamlit, Pandas und Requests. Anschließend legen wir den Titel und das Seitenlayout mit den Funktionen st.title() und st.sidebar.header() fest.

Als nächstes erstellen wir Eingabefelder in der Seitenleiste mit der Funktion st.sidebar.text_input(). Benutzer können in diese Felder ein Börsensymbol, ein Startdatum und ein Enddatum eingeben.

Anschließend erstellen wir eine Schaltfläche mit der Funktion st.sidebar.button(). Wenn Sie auf die Schaltfläche klicken, wird der Datenabrufvorgang ausgelöst. Wir erstellen die API-Anfrage-URL anhand des eingegebenen Symbols, des Startdatums und des Enddatums. Mit der Funktion „requests.get()“ stellen wir eine GET-Anfrage an die API.

Wenn die API-Anfrage erfolgreich ist (Statuscode 200), rufen wir die Daten aus der Antwort ab und erstellen einen Pandas DataFrame. Wir zeigen die heruntergeladenen Daten mit der Funktion st.write() an und erstellen dann mit der Funktion st.line_chart() ein Liniendiagramm der Aktienkurse.

Wenn die API-Anfrage fehlschlägt, zeigen wir mithilfe der Funktion st.write() eine Fehlermeldung an.

Abschließend fügen wir der Seitenleiste mithilfe der Funktion st.sidebar.info() einige zusätzliche Informationen hinzu.

Um diese App auszuführen, können Sie sie in einer Python-Datei (z. B. stock_app.py) speichern und mit dem Befehl streamlit run stock_app.py in Ihrem Terminal ausführen.

Dies ist nur ein einfaches Beispiel, das Sie je nach Bedarf weiter anpassen können. Streamlit bietet viele weitere Funktionen zum Erstellen interaktiver Web-Apps, darunter Dropdowns, Kontrollkästchen, Schieberegler und mehr. Weitere Informationen und Beispiele finden Sie in der Streamlit-Dokumentation ( https://docs.streamlit.io/ ).

Getting Started with Steamlit for Python - Build a Functioning Web App in Minutes
Getting Started with Steamlit for Python - Build a Functioning Web App in Minutes
  • 2021.10.18
  • www.youtube.com
#python #streamlitHow to use streamlit - full-featured GUI for Pythonhttps://alphabench.com/data/python-streamlit-app.html*Please SUBSCRIBE:https://www.yo...
 

Verwenden Sie die API für historische End-of-Day-Daten (EOD), um die Zeit des Tageshochs/-tiefs zu ermitteln



Verwenden Sie die API für historische End-of-Day-Daten (EOD), um die Zeit des Tageshochs/-tiefs zu ermitteln

In diesem Video erkunden wir die API für historische End-of-Day-Daten, mit der wir die täglichen Höchst- und Tiefstkurse für eine Aktie extrahieren können. Diese API ist Teil eines Freemium-Modells für Finanzdaten und bietet 20 kostenlose API-Aufrufe pro Tag. Der Vorteil dieser API besteht darin, dass sie Zugriff auf Daten von über 70 globalen Börsen bietet. Den Link zur Website und die Sonderpreise finden Sie in der Videobeschreibung.

Zunächst müssen wir unsere Umgebung einrichten. Wir verwenden das Datetime-Modul zum Bearbeiten von Daten, die Hilfsbibliothek für den Zugriff auf historische Daten, Pandas für die Datenbearbeitung und -filterung sowie Anfragen zum Durchführen von API-Aufrufen. Als nächstes müssen wir unseren API-Schlüssel erhalten, der der Einfachheit halber in einer Datei oder direkt im Notebook gespeichert werden kann.

Wir definieren auch das Startdatum für unsere Daten, das normalerweise etwa 10 Tage zurückliegt. Für die API gelten je nach Datentyp unterschiedliche Einschränkungen: Minutenweise Daten sind auf 120 Tage und Fünf-Minuten-Intervalldaten auf 600 Tage begrenzt. Die API indiziert Daten mithilfe des Unix-Zeitstempels, der die Anzahl der seit dem 1. Januar 1970 verstrichenen Sekunden darstellt. Wir konvertieren das gewünschte Startdatum in einen Unix-Zeitstempel für die API-Anfrage.

Nachdem die erforderliche Einrichtung abgeschlossen ist, können wir mit unserem API-Schlüssel eine Instanz des Objekts „End of Day Historical Data“ erstellen. Mit diesem Objekt können wir die benötigten Daten abrufen. Die Hilfsbibliothek stellt verschiedene Endpunkte bereit, die für verschiedene Datentypen untersucht werden können. In diesem Beispiel konzentrieren wir uns auf das Abrufen von Intraday-Preisen für Tesla in Minutenintervallen, beginnend mit dem angegebenen Startdatum.

Um die Daten zu visualisieren, können wir den API-Aufruf in einen Konstruktor für einen Pandas DataFrame einschließen. Dies erleichtert die Arbeit mit und die Visualisierung der Daten. Wir zeigen die ersten Zeilen des DataFrame an, um die abgerufenen Daten zu überprüfen, einschließlich Unix-Zeitstempel, Datum und Uhrzeit.

Wenn Sie die Hilfsbibliothek lieber nicht verwenden möchten, bietet das Video einen alternativen Ansatz mit der Anforderungsbibliothek, um direkt auf den API-Endpunkt zuzugreifen und die JSON-Daten abzurufen.

Als nächstes führen wir eine Datenbereinigung durch. Wir ersetzen den ganzzahligen Index durch das Datum und die Uhrzeit aus den Daten. Wir fügen separate Spalten für Uhrzeit und Datum hinzu und entfernen unnötige Spalten wie den GMT-Offset und die ursprüngliche Datumszeit. Der resultierende DataFrame zeigt die überarbeitete Struktur mit den hinzugefügten Spalten.

Um uns auf die regulären Handelszeiten zu konzentrieren, erstellen wir eine Kopie der Originaldaten. Da der Index ein Datetime-Objekt ist, können wir die Methode between_time verwenden, um nach den gewünschten Zeiten zu filtern. Wie im Video erwähnt, ist die Zeitzone für diese Daten GMT-5, daher passen wir die Zeiten entsprechend an. Zur einfacheren Interpretation rechnen wir die Zeiten auch in Eastern Time (ET) um.

Um nur die Zeit aus der Spalte „Datum/Uhrzeit“ zu filtern, führen wir einige zusätzliche Schritte aus. Da wir bereits eine Berechnung durchgeführt haben, müssen wir die Daten erneut formatieren, bevor wir die datetime-Methode anwenden, um die Uhrzeit zu extrahieren. Der resultierende DataFrame zeigt die angepassten Zeiten in New York City an.

Abschließend gehen wir auf die ursprüngliche Frage ein, wann die Hochs und Tiefs während des Handelstages auftreten. Wir rufen zunächst die allgemeinen Höchst- und Tiefstwerte für jeden Tag mithilfe der Groupby-Funktion und der Min- und Max-Methoden ab. Um den spezifischen Zeitpunkt dieser Hochs und Tiefs zu bestimmen, suchen wir den Index der minimalen bzw. maximalen Werte im DataFrame. Dies liefert Einblicke in den Zeitpunkt dieser Preispunkte und ermöglicht es uns, etwaige Muster oder Trends zu beobachten.

Insgesamt bietet dieses Video eine Schritt-für-Schritt-Anleitung zur Verwendung der API für historische End-of-Day-Daten, zum Abrufen von Aktienkursdaten und zur Analyse des Zeitpunkts hoher und niedriger Handelspreise.

Use End of Day (EOD) Historical Data API to Find Time of Daily High/Low
Use End of Day (EOD) Historical Data API to Find Time of Daily High/Low
  • 2021.11.22
  • www.youtube.com
@MattMacarty #python #pandas #EODHistoricalDataUse a financial services API to find the time a stock trades at it lowest or highest each dayUse a financi...
 

So testen Sie Handelsalgorithmen und Portfoliometriken mit Python und QuantStats



So testen Sie Handelsalgorithmen und Portfoliometriken mit Python und QuantStats

Heute werde ich Sie durch einen umfassenden Überblick über Quant-Statistiken führen, eine umfangreiche Bibliothek mit Finanzkennzahlen, die als Portfolio-Profilierungstool entwickelt wurde. Mit Quant Stats können Sie mit nur einem einfachen Einzeiler mühelos detaillierte Berichte erstellen. Mit diesem Tool können Sie die Portfolio-Performance effektiv messen und Handelsalgorithmen Backtests durchführen.

Quant Stats stützt sich auf bekannte Data-Science-Bibliotheken, die Sie möglicherweise bereits kennen und verwenden. Für diese Demonstration arbeite ich in PyCharm und habe ein neues Projekt gestartet. Wenn Sie mitmachen, stellen Sie sicher, dass die erforderlichen Abhängigkeiten installiert sind. Ich verwende eine etwas ältere Version von Pandas, da Quant Stats seit etwa sechs Monaten nicht mehr aktualisiert wurde und es möglicherweise Kompatibilitätsprobleme mit den neuesten Pandas-Versionen gibt.

Um sicherzustellen, dass Sie über die erforderlichen Abhängigkeiten verfügen, können Sie diese zu einer Datei „requirements.txt“ hinzufügen und mit Pip installieren. Darüber hinaus besteht Quant Stats aus drei Modulen: Statistiken, Diagramme und Berichte. Aufgrund der umfangreichen Funktionalität kann ich in diesem einzelnen Video nicht alles abdecken. Ich gebe Ihnen jedoch einen Überblick und begleite Sie bei den ersten Schritten. Sie können dann basierend auf Ihren spezifischen Bedürfnissen und Interessen weitere Erkundungen durchführen.

Bevor wir uns mit den Details befassen, nehmen wir uns einen Moment Zeit, um von unserem Sponsor zu hören. Wenn Sie daran interessiert sind, zu lernen, wie man Handelsalgorithmen mit Python erstellt, lassen Sie sich von Looming Wealth bei seinem Kurs zum algorithmischen Handel unterstützen. In diesem Kurs lernen Sie, Bots zu erstellen, die automatisch in Ihrem Namen handeln, technische und finanzielle Kennzahlen implementieren und nutzen und maschinelles Lernen nutzen, um einzigartige Handelsalgorithmen zu entwickeln. Sie können in Ihrem eigenen Tempo lernen oder an Live-Kursen für ein gemeinsames Lernerlebnis teilnehmen. Folgen Sie dem Link unten, um mehr über Looming Wealth zu erfahren und 15 % Rabatt auf einen ihrer Handelskurse zu erhalten.

Kommen wir nun zurück zu den Quant-Statistiken. Beginnen Sie in einer neuen leeren Datei mit dem Importieren der Quant-Statistikbibliothek. Als nächstes legen Sie ein Aktiensymbol zur Analyse fest. Für dieses Beispiel verwende ich den S&P 500 ETF (SPY). Wir werden Quant-Statistiken verwenden, um seine Leistung in den letzten drei Jahren zu untersuchen.

Um die Retourendaten herunterzuladen, verwenden wir Quant Stats Utils, das auf Daten von Yahoo Finance basiert. Sie können jede beliebige Datenquelle verwenden; Hier gibt es keine Magie. Lassen Sie uns die Retouren ausdrucken, um zu sehen, was wir bekommen. Bei der Ausgabe handelt es sich um eine Pandas-Serie mit täglichen Renditen über den angegebenen Zeitraum.

Sobald wir die Retourendaten haben, können wir mithilfe von Quant Stats verschiedene Statistiken berechnen. Es stehen zahlreiche Funktionen zur Verfügung, weit mehr, als wir in diesem Video behandeln können. Sie können eine Liste der verfügbaren Statistiken erhalten, indem Sie das Attribut „available_stats“ drucken. Lassen Sie uns eine Liste der verfügbaren Statistiken anzeigen, mit Ausnahme der privaten Funktionen.

Ich werde einen Teil des Listenverständnisses auskommentieren, um es prägnant zu halten. Wir werden weiterhin einige allgemeine Statistiken für den S&P 500 der letzten drei Jahre drucken. Berechnen wir das Sharpe-Verhältnis mit qs.stats.sharpe_ratio(). Darüber hinaus finden wir den besten Tag und Monat, indem wir qs.stats.best_day() bzw. qs.stats.best_month() aufrufen. Sie können diese Aufrufe zum Aggregieren von Daten bei Bedarf anders ändern.

Alternativ stellt Quant Stats einen Wrapper für Pandas bereit, der es Ihnen ermöglicht, Methodenaufrufe direkt für das Portfolio-Objekt durchzuführen. Durch die Erweiterung von Pandas können Sie Einzeiler verwenden, um auf verschiedene Statistiken zuzugreifen. Sie können beispielsweise Quant stats.extend_pandas() aufrufen und dann das Portfolioobjekt verwenden, um Statistiken wie die zusammengesetzte jährliche Bruttorendite und den maximalen Drawdown abzurufen.

Neben Statistiken bietet Quant Stats auch die Möglichkeit, Portfolios aufzubauen.

Als Nächstes berechne ich die Signale basierend auf der Crossover-Strategie des gleitenden Durchschnitts. Liegt der schnelle gleitende Durchschnitt über dem langsam gleitenden Durchschnitt, handelt es sich um ein Kaufsignal. Ansonsten handelt es sich um ein Verkaufssignal. Ich werde diese Signale zum Datenrahmen hinzufügen.

Danach werde ich die Positionen anhand der Signale berechnen. Wenn es ein Kaufsignal ist, setze ich die Position auf 1 (was eine Long-Position anzeigt), und wenn es ein Verkaufssignal ist, setze ich die Position auf -1 (was eine Short-Position anzeigt). Alle anderen Fälle werden auf 0 gesetzt (was keine Position anzeigt).

Nachdem wir nun die Positionen haben, werde ich die Strategierenditen berechnen. Dazu multipliziere ich die Positionen mit den täglichen Erträgen des Vermögenswerts. Dadurch erhalten wir die täglichen Strategierenditen.

Als Nächstes berechne ich die kumulativen Renditen der Strategie, indem ich das kumulative Produkt der täglichen Renditen nehme. Dies wird uns das Wachstum der Strategie im Laufe der Zeit ermöglichen.

Zum Schluss erstelle ich den Bericht mit der Funktion quantstats.reports.html. Diese Funktion verwendet die kumulierten Retourendaten und generiert einen HTML-Bericht mit verschiedenen Leistungsmetriken und Visualisierungen. Ich speichere den Bericht als HTML-Datei.

Um den Bericht automatisch anzuzeigen, öffne ich die Datei mit dem Webbrowser. Und das war's für den Code.

Wenn Sie diesen Code nun mit den von Ihnen gewählten Parametern ausführen, generiert er die Crossover-Strategie für den gleitenden Durchschnitt, berechnet die Leistungsmetriken und generiert einen HTML-Bericht mit den Ergebnissen. Sie können die Strategieparameter, wie z. B. die gleitenden Durchschnittsperioden oder das Zeitfenster, an Ihre Bedürfnisse anpassen.

How to Backtest Trading Algorithms and Portfolio Metrics with Python and QuantStats
How to Backtest Trading Algorithms and Portfolio Metrics with Python and QuantStats
  • 2022.12.07
  • www.youtube.com
​@MattMacarty #python #trading #algotrading How to Backtest Trading Strategies and Algorithms, Generate Portfolio Metrics✅ Please SUBSCRIBE:https://w...
Grund der Beschwerde: