Python im algorithmischen Handel - Seite 20

 

So codieren Sie einen Trail Stop im Python-Strategie-Backtesting



So codieren Sie einen Trail Stop im Python-Strategie-Backtesting

Heute habe ich ein spannendes Coding-Tutorial in Python für Sie. Wir werden lernen, wie wir einen Trailing Stop in unsere Handelsstrategie integrieren und seine Auswirkungen auf unser Eigenkapital und unsere Renditen analysieren. Wenn Sie neu auf diesem Kanal sind, empfehle ich Ihnen, sich die vorherigen Videos in dieser Playlist anzusehen, insbesondere die letzten zwei oder drei, in denen wir die Strategie ausführlich besprochen haben. Den Python-Code finden Sie auch im Jupiter-Notizbuch, das über den Link in der Beschreibung zum Download verfügbar ist. Dadurch können Sie die Parameter feinabstimmen und selbst experimentieren.

Bevor wir in den Codierungsteil eintauchen, lassen Sie uns kurz die Strategie zusammenfassen, die wir verwenden werden. Kurz gesagt, wir haben die Erkennung von Unterstützungs- und Widerstandsniveaus sowie die Identifizierung von Candlestick-Mustern, die um diese Niveaus herum auftreten, automatisiert. Basierend auf diesen Signalen werden wir unsere Handelsaufträge ausführen. Wenn wir beispielsweise ein Kaufsignal erkennen, etwa ein bullisches Engulfing-Muster, dem eine starke Ablehnungskerze vorausgeht, gehen wir eine Long-Position ein. Um das Risiko zu steuern, müssen wir eine Stop-Loss-Order festlegen, die den maximalen Verlust festlegt, den wir zu tolerieren bereit sind. Traditionell wird der Stop-Loss in einem bestimmten Abstand zum Einstiegspreis festgelegt. In diesem Tutorial werden wir es jedoch durch einen Trailing Stop ersetzen.

Ein Trailing Stop folgt der Preisbewegung in die profitable Richtung und ermöglicht es uns, während eines Aufwärtstrends mehr Gewinne zu erzielen. Da wir uns in unserem Beispiel in einer Kaufposition befinden, folgt der Trailing-Stop dem steigenden Preis und behält einen gewissen Abstand dahinter. Wenn der Preis jedoch versucht, sich umzukehren und das Stop-Loss-Niveau erreicht, wird unser Handel geschlossen, um weitere Verluste zu verhindern. Dieser Trailing-Stop-Mechanismus trägt zur Gewinnmaximierung bei, insbesondere bei längeren Preistrends, anstatt ein festes Take-Profit-Niveau zu verwenden, das unsere potenziellen Gewinne begrenzen könnte.

Wenden wir dieses Konzept nun auf unsere zuvor besprochene Strategie an. Wir werden dasselbe Programm verwenden, das wir zuvor beschrieben haben. Wenn Sie damit nicht vertraut sind, sehen Sie sich bitte die Playlist an und schauen Sie sich die letzten zwei oder drei Videos an, in denen es um Candlestick-Muster und die Automatisierung der Erkennung von Unterstützungs- und Widerstandsniveaus geht. Der einzige Unterschied besteht dieses Mal darin, dass wir anstelle eines festen Stop-Loss- oder Take-Profit-Verhältnisses den Trailing-Stop implementieren. Gegen Ende dieses Tutorials werde ich die Strategie einem Backtest unterziehen und die potenziellen Renditen demonstrieren, die mit dieser Trailing-Stop-Methode erreichbar sind.

Zunächst laden wir unsere Daten, das tägliche Candlestick-Chart für das Währungspaar EUR/USD von 2003 bis 2021. Wir verfügen über eine Reihe von Funktionen, die dabei helfen, Unterstützungs- und Widerstandsniveaus sowie verschiedene Candlestick-Muster wie Engulfing-Muster zu erkennen. Sternschnuppen und Ablehnungsmuster. Wenn Sie an den Implementierungsdetails dieser Funktionen interessiert sind, sehen Sie sich bitte die vorherigen Videos an.

Als nächstes generieren wir unsere Handelssignale. Ein Kaufsignal wird durch den Wert 2 gekennzeichnet, ein Verkaufssignal durch den Wert 1, und wenn kein Signal vorhanden ist, wird der Wert auf 0 gesetzt. Diese Informationen werden als neue Spalte in unserem Datenrahmen hinzugefügt. So sieht unser Datenrahmen jetzt aus, mit Spalten für den Eröffnungspreis, Höchst- und Tiefstkurs, Schlusskurs, Volumen (das wir in dieser Strategie nicht verwenden) und der Signalspalte.

Zum Backtest unserer Strategie nutzen wir das Backtesting-Paket, das im letzten Video dieser Playlist vorgestellt wurde. Wir definieren eine Klasse namens „MyCandleStrategy“, die von der vom Backtesting-Paket bereitgestellten Klasse „Strategy“ erbt. Wir überschreiben zwei Funktionen: „initialize“ und die nächste Funktion, die bei jedem Candlestick aufgerufen wird. In der Initialisierungsfunktion definieren wir die Variable „stop_loss_trail“, die den Abstand (in Pips) für unseren Trailing Stop darstellt. Mit diesem Wert kann experimentiert werden, um den optimalen Trailing-Stop-Wert für unsere Strategie zu finden.

In der nächsten Funktion implementieren wir die Logik für unseren Trailing Stop. Wir prüfen zunächst, ob wir eine offene Position haben. Wenn wir das tun, berechnen wir das aktuelle Stop-Loss-Niveau, indem wir den Trailing-Stop-Wert vom höchsten Preis seit Eingabe der Position abziehen. Dadurch wird sichergestellt, dass das Stop-Loss-Niveau bei steigendem Preis hinter dem Preis zurückbleibt. Anschließend prüfen wir, ob der aktuelle Preis das Stop-Loss-Niveau erreicht oder unterschritten hat. Ist dies der Fall, schließen wir die Position und aktualisieren unsere Handelsstatistiken.

Nachdem wir nun die Trailing-Stop-Logik implementiert haben, können wir mit der Durchführung des Backtests und der Analyse der Ergebnisse fortfahren. Hier ist ein Beispiel für die Durchführung des Backtests und das Drucken der Eigenkapitalkurve: Dadurch wird ein Diagramm erstellt, das die Eigenkapitalkurve unserer Strategie mit angewendetem Trailing-Stop zeigt. Sie können auch auf andere Leistungsmetriken und Statistiken zugreifen, die vom Backtesting-Paket bereitgestellt werden, um die Leistung der Strategie zu bewerten.

Schließlich können Sie zur Feinabstimmung des Trailing-Stop-Werts über einen Wertebereich iterieren und mehrere Backtests durchführen, um die Ergebnisse zu vergleichen. Dies wird Ihnen helfen, den optimalen Trailing-Stop-Wert zu finden, der Ihre Rendite maximiert.

Damit ist unser Tutorial zur Implementierung eines Trailing Stops in unserer Handelsstrategie abgeschlossen. Denken Sie daran, mit verschiedenen Werten zu experimentieren und die Strategie gründlich zu testen, bevor Sie sie auf den echten Handel anwenden. Wenn Sie Fragen haben oder weitere Hilfe benötigen, können Sie uns gerne fragen. Viel Spaß beim Codieren und viel Spaß beim Handeln!

How To Code A Trail Stop In Python Strategy Backtesting
How To Code A Trail Stop In Python Strategy Backtesting
  • 2021.10.22
  • www.youtube.com
Trailing stop, or stop loss strategy is presented and coded in python for algorithmic trading methods. The strategy is Backtested showing high profitability...
 

So testen Sie eine Handelsstrategie in Python



So testen Sie eine Handelsstrategie in Python

Hallo zusammen und willkommen zurück zu einem weiteren Video. Heute möchte ich ein Thema besprechen, das für unsere Handelsstrategien sehr wichtig ist, nämlich das Backtesting. Bisher haben wir verschiedene Strategien vorgestellt und uns nur auf statistische Zählungen verlassen, um die Zuverlässigkeit der Schätzungen unseres Modells für den Handel zu überprüfen. Das Backtesting unserer Strategie liefert jedoch zusätzliche Informationen, nämlich die Höhe des Gewinns, der innerhalb einer bestimmten Zeit erzielt werden kann.

Es ist wichtig, diesen Gewinnprozentsatz zu definieren, wenn Sie eine Investition in Ihre Strategie in Betracht ziehen. Bevor wir wie üblich fortfahren, handelt es sich bei dem Code um ein Jupyter-Python-Notizbuch, das Sie über den Link in der Beschreibung dieses Videos herunterladen können. Dieses Thema wurde in einer Ihrer Nachrichten vorgeschlagen. Vielen Dank noch einmal, dass Sie uns Ihre Gedanken mitgeteilt haben. Wir bekommen durch Ihr Feedback wirklich interessante Ideen, und es tut mir leid, wenn ich nicht die Zeit hatte, alle vorgeschlagenen Ideen zu besprechen, aber ich führe eine Liste und denke, dass wir sie in Zukunft behandeln werden.

Lassen Sie uns nun über Backtesting-Tools sprechen. Es gibt viele verfügbare Bibliotheken online, aber ich persönlich bevorzuge es, meine eigenen Funktionen zu programmieren. Auf diese Weise weiß ich genau, was in meinem Code passiert, insbesondere wenn es um Backtesting geht. Wir brauchen etwas Zuverlässiges und Robustes. Unter den vorgeschlagenen Paketen hatte ich jedoch zwei Möglichkeiten. Eine davon war die Verwendung eines Pakets namens „vectorbt“, das ich etwas schwierig fand, es innerhalb weniger Stunden zu erlernen und für meine eigenen Strategien zu verwenden. Die Dokumentation war rar und ich musste Foren und Online-Beispiele durchsuchen, um viele Details zu finden. Obwohl es ein riesiges Potenzial hat und viele Optionen bietet, wollte ich nicht einen Monat damit verbringen, mich mit den notwendigen Funktionen vertraut zu machen, nur um eine einfache Strategie zu testen.

Für dieses Video habe ich mich also für die zweite Wahl entschieden, nämlich ein Paket namens „backtesting.py“. Meiner Meinung nach bietet es einen einfacheren Ansatz. Lassen Sie uns nun darauf eingehen und sehen, wie viel Geld unsere Strategie verdient hätte. In diesem Beispiel werde ich die vorherige Strategie testen, die wir im Video zur automatischen Widerstands- und Unterstützungserkennung und zur Erkennung von Candlestick-Mustern besprochen haben. Dies sind zwei Indikatoren, die wir in diesem Video kombinieren und verwenden werden.

Zuerst lade und bereinige ich die Daten. Dann wende ich die Unterstützungs- und Widerstandsfunktionen zur Erkennung an. Wenn Sie sich diesen Kanal zum ersten Mal ansehen, empfehle ich Ihnen, sich die vorherigen Videos zum Erkennen von Unterstützungs- und Widerstandsfunktionen sowie das Video anzusehen, in dem wir erklären, wie Sie Engulfing-Muster, Sternschnuppen, hängende Männer usw. erkennen andere Kerzenmuster.

Als Nächstes berechnen wir unser Signal, unabhängig davon, ob es sich um ein Kaufsignal, ein Verkaufssignal oder gar kein Signal handelt, basierend auf dem zuvor erwähnten Ansatz. Wir beschriften unsere beiden Signale und füllen eine Spalte in unserem Datenrahmen. Wir können die Anzahl der empfangenen Signale überprüfen, um sicherzustellen, dass unsere Funktionen ordnungsgemäß funktionieren.

Jetzt ändere ich die Spaltentitel, um sie mit dem Paket backtesting.py kompatibel zu machen. Bei diesem Schritt wird die Groß-/Kleinschreibung beachtet, daher müssen wir sicherstellen, dass die Namen genau übereinstimmen. Dann wähle ich eine Reihe von Zeilen aus, mit denen ich arbeiten möchte.

Nachdem wir unseren Datenrahmen eingerichtet haben, gehen wir zum interessantesten Teil über: der Definition unserer Strategie und dem Backtesting dieser. Ich importiere die erforderlichen Bibliotheken, einschließlich des Moduls „Strategie“, und entferne das Beispiel für den Übergang von langsamen und schnellen gleitenden Durchschnitten.

Als Nächstes definiere ich eine neue Klasse namens „MyCandlesStrategy“, die die Klasse „Strategy“ erweitert und ihre beiden abstrakten Methoden überschreibt: __init__ und next. Die Methode __init__ wird verwendet, um die ersten Variablen oder Funktionen zu Beginn der Strategie zu initialisieren. Es wird nur einmal ausgeführt, idealerweise, um alle Indikatoren und Signale vorab zu berechnen, von denen die Strategie abhängt.

Insgesamt ist Backtesting ein entscheidender Aspekt von Handelsstrategien, da es wertvolle Informationen über die potenzielle Rentabilität einer Strategie über einen bestimmten Zeitraum liefert. In diesem Video befassen wir uns mit Backtesting und seiner Bedeutung für unsere Handelsstrategien.

Bevor wir wie üblich fortfahren, steht der Code für diese Diskussion als Jupyter-Python-Notizbuch zur Verfügung, das Sie über den in der Videobeschreibung angegebenen Link herunterladen können. Das Thema Backtesting wurde von einem unserer Zuschauer vorgeschlagen und ich freue mich über die interessanten Ideen und das Feedback, die ich von Ihnen allen bekomme. Obwohl ich möglicherweise nicht die Gelegenheit habe, alle vorgeschlagenen Ideen sofort zu diskutieren, führe ich eine Liste und bemühe mich, sie in zukünftigen Videos zu behandeln.

Wenn es um Backtesting-Tools geht, stehen online zahlreiche Bibliotheken zur Verfügung. Auch wenn ich nicht alle davon kenne, bevorzuge ich es persönlich, meine eigenen Funktionen zu programmieren. Dieser Ansatz ermöglicht mir die vollständige Kontrolle und das Verständnis des Innenlebens des Codes, was besonders für Backtesting von entscheidender Bedeutung ist. Wir benötigen eine robuste und zuverlässige Lösung zur Bewertung unserer Handelsmodelle.

Unter den vorgeschlagenen Paketen hatte ich zwei Optionen. Das erste war ein Paket namens „Vectorbt“, das zwar leistungsstark und funktionsreich war, aber eine steile Lernkurve aufwies. Die Dokumentation für dieses Paket war etwas begrenzt und ich musste Foren und Online-Beispiele durchsuchen, um die notwendigen Informationen zu sammeln. Obwohl Vectorbt über ein enormes Potenzial verfügt, wollte ich nicht übermäßig viel Zeit damit verschwenden, mich mit seinen Funktionen vertraut zu machen, nur um in diesem Video eine einfache Strategie zu testen.

Daher habe ich mich für die zweite Wahl entschieden, ein Paket namens „backtesting.py“. Meiner Meinung nach bietet dieses Paket einen einfacheren Ansatz für das Backtesting und ist daher besser für unsere Bedürfnisse geeignet. Lassen Sie uns nun näher darauf eingehen und sehen, wie viel Gewinn unsere Strategie generiert hätte.

In diesem Beispiel werde ich die zuvor besprochene Strategie testen, die die automatische Erkennung von Widerstands- und Unterstützungsniveaus sowie die Erkennung von Candlestick-Mustern beinhaltete. Diese beiden Indikatoren werden zu unserer Strategie kombiniert. Für eine detaillierte Erklärung zum Erkennen von Unterstützungs- und Widerstandsniveaus und Candlestick-Mustern empfehle ich Ihnen, sich die entsprechenden Videos auf unserem Kanal anzusehen.

Zunächst laden und bereinigen wir die Daten wie gewohnt. Als nächstes implementieren wir die Unterstützungs- und Widerstandsfunktionen zur Erkennung. Wenn Sie neu auf diesem Kanal sind, empfehle ich Ihnen, sich zum besseren Verständnis die vorherigen Videos zur Unterstützungs- und Widerstandserkennung sowie zur Identifizierung von Candlestick-Mustern anzusehen.

Sobald wir unsere Signale berechnet haben, die bestimmen, ob es sich um eine Kauf-, Verkaufs- oder keine Signalsituation handelt, zählen wir die Anzahl der Signale, um sicherzustellen, dass unsere Funktionen ordnungsgemäß funktionieren.

In Zukunft müssen wir die Spaltennamen in unserem DataFrame anpassen, damit sie mit dem Paket „backtesting.py“ kompatibel sind. Es ist wichtig, die vom Paket geforderte Groß-/Kleinschreibung und die Namenskonventionen zu beachten. Zusätzlich wählen wir eine Reihe von Zeilen aus und nehmen die erforderlichen Spaltenänderungen vor.

Zusammenfassend enthält unser DataFrame die folgenden Spalten: Zeit, Eröffnungs-, Höchst-, Tiefst- und Schlusskurse sowie Volumen (das wir im Moment nicht verwenden) und die Signalspalte, die wir zuvor berechnet haben.

Als nächstes definieren wir eine Signalfunktion, die die Signalspalte aus unserem DataFrame zurückgibt. Diese Funktion wird später benötigt, wenn wir unsere Strategieklasse definieren.

Jetzt kommen wir zum interessantesten Teil, wo wir unsere Strategie definieren und ein Backtesting durchführen. Um dies zu erreichen, befolgen wir die Richtlinien in der Dokumentation zu backtesting.py. Sie schlagen vor, dass eine neue Strategie die Strategy-Klasse erweitern und ihre beiden abstrakten Methoden überschreiben sollte: init und next.

Die Init-Methode ist für die Initialisierung der für die Strategie erforderlichen Variablen und Funktionen verantwortlich. Es wird aufgerufen, bevor die Strategie ausgeführt wird, und wird normalerweise verwendet, um alle Indikatoren oder Signale vorab zu berechnen, auf denen die Strategie basiert. Durch Überladen dieser Funktion können wir die erforderlichen Indikatoren mithilfe regulärer Python-Funktionen und Beispielen definieren, die in der Dokumentation zu backtesting.py bereitgestellt werden.

In unserer init-Methode definieren wir die notwendigen Indikatoren für unsere Strategie. In diesem Fall verwenden wir die zuvor erstellte Signalfunktion, um die Signalspalte aus unserem DataFrame abzurufen. Auch die Provisionsgebühr setzen wir auf Null, da wir in diesem Beispiel keine Handelsgebühren berücksichtigen.

Die nächste Methode ist das Herzstück unserer Strategie. Es wird für jede Handelsbar aufgerufen und ist dafür verantwortlich, die Handelsentscheidungen auf der Grundlage der aktuellen Marktbedingungen zu treffen. In unserer Implementierung prüfen wir, ob ein Kaufsignal vorliegt (Signal gleich 1) und wir derzeit keine Position haben. Sind diese Bedingungen erfüllt, gehen wir eine Long-Position ein (Kauf).

Wenn es ein Verkaufssignal gibt (Signal gleich -1) und wir eine Long-Position haben, verlassen wir die Position entsprechend (Verkauf). Wir berücksichtigen in diesem Beispiel keine Short-Positionen, daher haben wir nur Kauf- und Verkaufssignale.

Sobald wir unsere Strategie definiert haben, erstellen wir eine Instanz davon und übergeben unseren DataFrame und unsere Signalfunktion als Argumente. Anschließend erstellen wir eine Instanz der Backtest-Klasse aus dem Paket backtesting.py und übergeben unsere Strategieinstanz und DataFrame als Argumente.

Schließlich führen wir den Backtest durch, indem wir die run-Methode auf unserer Backtest-Instanz aufrufen. Diese Methode führt die Strategie aus und erzeugt die Ergebnisse.

Die Ergebnisse umfassen verschiedene Leistungskennzahlen wie Gesamtrendite, Jahresrendite, maximaler Drawdown und mehr. Wir können auf diese Metriken zugreifen, indem wir die entsprechenden Attribute der Backtest-Instanz verwenden.

Zusätzlich zu den Leistungsmetriken bietet die Backtest-Instanz verschiedene Plotfunktionen zur Visualisierung der Ergebnisse. Wir können die Eigenkapitalkurve zeichnen, die das Wachstum des Handelskontos im Laufe der Zeit zeigt, sowie andere nützliche Darstellungen wie Drawdowns und Handelsprotokoll.

In unserem Beispiel zeichnen wir die Aktienkurve auf und drucken die Zusammenfassung der Backtest-Ergebnisse, einschließlich der Leistungskennzahlen.

Nachdem wir den Code ausgeführt haben, können wir das Diagramm der Eigenkapitalkurve beobachten, das das Wachstum unseres Handelskontos im Laufe der Zeit zeigt. Die Zusammenfassung der Backtest-Ergebnisse liefert wertvolle Informationen über die Performance unserer Strategie.

Durch Backtesting unserer Strategie können wir ihre Rentabilität beurteilen und ihre Leistung bewerten. Dieser Prozess ermöglicht es uns, Einblicke in die Wirksamkeit unseres Handelsmodells zu gewinnen und fundierte Entscheidungen über seinen möglichen Einsatz in realen Handelsszenarien zu treffen.

Damit ist unsere Diskussion über Backtesting mit dem Paket backtesting.py abgeschlossen. Ich hoffe, dass Sie dieses Video informativ fanden und dass es Ihnen einen praktischen Ansatz zum Backtesting Ihrer Handelsstrategien vermittelte. Denken Sie daran, mit verschiedenen Strategien, Indikatoren und Parametern zu experimentieren, um diejenigen zu finden, die für Ihre Handelsziele am besten geeignet sind.

Wie immer können Sie gerne Kommentare, Fragen oder Vorschläge für zukünftige Videos hinterlassen. Ihr Feedback wird sehr geschätzt. Vielen Dank fürs Zuschauen, wir sehen uns im nächsten Video!

How To Backtest A Trading Strategy in Python
How To Backtest A Trading Strategy in Python
  • 2021.10.07
  • www.youtube.com
In this video I am presenting a backtesting method using the backtesting.py package. We will backtest a winning strategy using python, we already detailed th...
 

Automatisierte Preisaktions-Handelsstrategie in Python



Automatisierte Preisaktions-Handelsstrategie in Python

In diesem Video besprechen wir eine Handelsstrategie, die Candlestick-Muster sowie Unterstützungs- und Widerstandsniveaus nutzt. Das Hauptziel dieser Strategie besteht darin, den Prozess der Erkennung von Preisaktionsmustern zu automatisieren und ihn auf historische Daten des Euro gegenüber dem US-Dollar anzuwenden.

Werfen wir zunächst einen Blick auf die Schlüsselkomponenten dieser Strategie. Candlestick-Muster sind grafische Darstellungen von Preisbewegungen in Form von Balken oder Kerzen. Diese Muster liefern wertvolle Informationen über die Marktstimmung und mögliche Trendumkehrungen. Durch die Analyse dieser Muster können Händler fundierte Entscheidungen darüber treffen, wann sie Geschäfte eingehen oder beenden.

Unterstützungs- und Widerstandsniveaus hingegen sind spezifische Preispunkte, an denen der Markt in der Vergangenheit eine Tendenz zur Umkehr oder zum Stillstand gezeigt hat. Diese Niveaus wirken als psychologische Barrieren für Händler und können zur Identifizierung potenzieller Ein- und Ausstiegspunkte genutzt werden.

Kommen wir nun zur Implementierung dieser Strategie in Python. Wir verwenden historische Daten des Euro gegenüber dem US-Dollar, die aus verschiedenen Finanzdatenquellen oder APIs bezogen werden können. Für dieses Beispiel gehen wir davon aus, dass wir die notwendigen Daten bereits gesammelt und vorverarbeitet haben.

Wir werden die Strategie mithilfe von Python und einigen beliebten Bibliotheken automatisieren. Der erste Schritt besteht darin, die erforderlichen Bibliotheken zu importieren, darunter Pandas für die Datenbearbeitung, Matplotlib für das Plotten und Talib für technische Analyseindikatoren. Talib ist eine weit verbreitete Bibliothek, die eine Sammlung technischer Analysefunktionen bereitstellt, einschließlich der Erkennung von Candlestick-Mustern.

Sobald die Bibliotheken importiert sind, können wir die historischen Daten in einen Pandas DataFrame laden. Der DataFrame sollte die erforderlichen Spalten wie Datum, Eröffnung, Hoch, Tief, Schluss und Volumen enthalten. Diese Spalten werden häufig in der technischen Analyse verwendet und zur Berechnung von Indikatoren und Mustern benötigt.

Als nächstes können wir eine Funktion zum Erkennen von Candlestick-Mustern definieren. In diesem Beispiel konzentrieren wir uns auf ein einfaches Muster, das bullische Engulfing-Muster. Dieses Muster tritt auf, wenn auf eine kleine bärische Kerze eine größere zinsbullische Kerze folgt, die die vorherige Kerze vollständig verschlingt. Die Funktion iteriert über den DataFrame und identifiziert Instanzen des bullischen Engulfing-Musters.

Um die Strategie zu verbessern, können wir auch Unterstützungs- und Widerstandsniveaus einbeziehen. Diese Niveaus können manuell durch Analyse des historischen Preisdiagramms oder mithilfe technischer Analysetechniken identifiziert werden. In diesem Beispiel gehen wir davon aus, dass wir die relevanten Unterstützungs- und Widerstandsniveaus bereits identifiziert und in einem separaten DataFrame gespeichert haben.

Sobald wir die Candlestick-Muster sowie die Unterstützungs- und Widerstandsniveaus haben, können wir mit der Automatisierung der Strategie fortfahren. Wir werden den DataFrame durchlaufen und prüfen, ob der aktuelle Balken die Bedingungen für ein bullisches Engulfing-Muster erfüllt und ob der aktuelle Preis in der Nähe eines Unterstützungsniveaus liegt. Sind diese Bedingungen erfüllt, generieren wir ein Kaufsignal.

Wenn umgekehrt der aktuelle Balken die Bedingungen für ein bärisches Engulfing-Muster erfüllt und der aktuelle Preis in der Nähe eines Widerstandsniveaus liegt, erzeugen wir ein Verkaufssignal. Diese Signale werden verwendet, um Kauf- oder Verkaufsaufträge in einer Live-Handelsumgebung auszulösen.

Um die Ergebnisse unserer Strategie zu visualisieren, können wir das historische Preisdiagramm mit den identifizierten Candlestick-Mustern sowie Unterstützungs- und Widerstandsniveaus darstellen. Dies wird uns helfen, die Wirksamkeit unserer Strategie zu verstehen und Verbesserungsmöglichkeiten zu identifizieren.

Schließlich können wir die Leistung unserer Strategie bewerten, indem wir sie anhand der historischen Daten testen. Beim Backtesting werden Trades anhand historischer Daten simuliert und die Rentabilität und das Risiko der Strategie bewertet. Wir können verschiedene Leistungskennzahlen wie Gesamtrendite, Jahresrendite, maximalen Drawdown und mehr berechnen.

Durch Backtesting unserer Strategie können wir Einblicke in ihre Leistung gewinnen und fundierte Entscheidungen über ihren potenziellen Einsatz in realen Handelsszenarien treffen. Es ist wichtig zu beachten, dass Backtesting ein entscheidender Schritt in der Strategieentwicklung ist, da es uns hilft, die Durchführbarkeit und Rentabilität unseres Ansatzes zu beurteilen.

In diesem Video wird eine einfache Handelsstrategie vorgestellt, die Candlestick-Muster sowie Unterstützungs- und Widerstandsniveaus kombiniert. Die Strategie wurde in Python anhand historischer Daten des Euro gegenüber dem US-Dollar automatisiert und getestet. Durch den Einsatz dieser technischen Analysetechniken können Händler potenziell profitable Handelsmöglichkeiten identifizieren und fundierte Entscheidungen auf den Finanzmärkten treffen.

Automated Price Action Trading Strategy In Python
Automated Price Action Trading Strategy In Python
  • 2021.09.09
  • www.youtube.com
This video presents a simple trading strategy using candlestick patterns and support and resistance values. The strategy can be automated for price action d...
 

Automatisierte Unterstützungs- und Widerstandserkennung in PYTHON



Automatisierte Unterstützungs- und Widerstandserkennung in PYTHON

Hallo zusammen und willkommen zurück zu diesem Video. In diesem Video erklären wir ausführlich, wie Sie die Erkennung von Unterstützungs- und Widerstandsniveaus mithilfe von Python automatisieren können. Diese Idee wurde von einem der Kommentare vorgeschlagen, daher ein großes Dankeschön dafür. Vergessen Sie wie immer nicht, dass das Programm über den Link in der Beschreibung unten zum Download verfügbar ist. Es handelt sich um eine Jupyter Notebook-Datei, die Sie für Ihre eigenen Experimente verwenden können. Möglicherweise möchten Sie dies mit anderen Währungen oder anderen Zeitrahmen ausprobieren. Sie können auch die im Code bereitgestellten Variablen ändern.

Während es einfach ist, Unterstützungs- und Widerstandsniveaus anhand eines Preisbewegungsdiagramms visuell zu identifizieren, kann es kompliziert erscheinen, sie programmatisch zu definieren. Mit einem geeigneten Algorithmus kann der Prozess jedoch automatisiert werden. Es ist wichtig zu beachten, dass der in diesem Video vorgestellte Algorithmus nicht der einzige zur Erkennung von Unterstützungs- und Widerstandsniveaus ist. Es gibt verschiedene Ansätze, wir haben uns jedoch für einen entschieden, der relativ einfach im Code umzusetzen ist.

Die Abbildung, die Sie hier sehen, wurde mit dem Code erstellt, den wir gleich erklären werden, und wie Sie sehen können, wurden die Unterstützungs- und Widerstandsniveaus von unserem Programm korrekt erkannt. Dieser Ansatz funktioniert für jede Währung und unter allen Marktbedingungen. Es handelt sich jedoch nicht um einen perfekten Algorithmus, und Sie werden möglicherweise feststellen, dass einige Ebenen nicht erkannt wurden. Wir werden später im Video darauf eingehen.

Die Grundidee bei der Definition von Unterstützungs- und Widerstandsniveaus besteht darin, innerhalb eines bestimmten Zeitraums, beispielsweise eines oder zweier Monate, zurückzublicken, je nachdem, wie viele Niveaus Sie in Ihre Strategie einbeziehen möchten. Je mehr Daten Sie haben, desto mehr Ebenen werden Sie entdecken. Wenn Sie beispielsweise einen Tages-Chart wie den hier gezeigten in Betracht ziehen und an einem bestimmten Datum mit einem Handel fortfahren möchten, würden Sie innerhalb eines bestimmten Zeitrahmens, beispielsweise eines Monats, zurückblicken, um die Unterstützungs- und Widerstandsniveaus zu ermitteln geschah in diesem Zeitraum. Dies simulieren wir in unserem Programm, indem wir einen begrenzten Zeitraum für die Füllstandserkennung berücksichtigen. Wenn wir versuchen würden, Unterstützungs- und Widerstandsniveaus anhand aller verfügbaren Daten zu ermitteln, würden wir am Ende eine große Anzahl von Niveaus erhalten, was für eine Handelsstrategie nicht praktikabel ist. Daher ist es am besten, sich auf einige Monate vor dem aktuellen Datum zu konzentrieren.

Lassen Sie uns nun in den Algorithmus selbst eintauchen. Bei den Unterstützungsniveaus suchen wir nach einer bestimmten Anzahl abnehmender Tiefststände, die der interessierenden Kerze vorausgehen. Die interessierende Kerze sollte einen niedrigeren Tiefstwert haben als die anderen Kerzen. Darüber hinaus müssen wir nach der interessierenden Kerze drei ansteigende Tiefs haben. Wenn alle diese Bedingungen für eine Gruppe von Kerzen erfüllt sind, können wir ein Unterstützungsniveau identifizieren, das als der niedrigste Preis unter diesen Kerzen definiert ist. Das gleiche Prinzip gilt für Widerstandsstufen. Wir benötigen steigende Hochs vor der interessierenden Kerze und ein höheres Hoch für die interessierende Kerze. Dann sollten wir nach der interessierenden Kerze sinkende Höchstwerte haben. Dies ermöglicht es uns, das Widerstandsniveau zu finden, das den höchsten Preis unter diesen Kerzen darstellt.

Ein interessanter Parameter in dieser Phase ist, wie viele Kerzen wir vor und nach der interessierenden Kerze berücksichtigen sollten. Dies kann je nach den Vorlieben des Benutzers angepasst werden, und es wäre gut, mit verschiedenen Werten zu experimentieren. In unserem Programm definieren wir diese als zwei Variablen namens n1 und n2. Der Index der interessierenden Kerze wird durch die Variable l dargestellt.

Sehen wir uns nun an, wie wir diesen Algorithmus in Python implementieren können. Für diese Demonstration verwenden wir ein Jupyter-Notebook. Zuerst importieren wir die notwendigen Bibliotheken, einschließlich Pandas für die Datenmanipulation. Wir laden die Daten mit der Funktion read_csv und verwenden in diesem Beispiel die EUR/USD-Tagescharts von 2003 bis 2021, also etwa 18 Jahre an Daten.

Als Nächstes verwenden wir die in den SS- und RR-Listen gespeicherten Unterstützungs- und Widerstandsniveaus, um Linien im Kerzendiagramm zu zeichnen. Wir durchlaufen jedes Unterstützungsniveau in ss und fügen dem Diagramm bei diesem Preisniveau eine horizontale Linie hinzu. In ähnlicher Weise durchlaufen wir jede Widerstandsstufe in rr und fügen für jede Stufe eine horizontale Linie hinzu. Dies erleichtert die Visualisierung der Unterstützungs- und Widerstandsniveaus im Verhältnis zur Preisbewegung.

Durch Ausführen des Codes erstellen Sie ein Candlestick-Diagramm, in dem die Unterstützungsniveaus als violette gestrichelte Linien und die Widerstandsniveaus als blaue gestrichelte Linien angezeigt werden. Das Diagramm bietet eine visuelle Darstellung der erkannten Unterstützungs- und Widerstandsniveaus und erleichtert so die Identifizierung wichtiger Preisniveaus für Handelsentscheidungen.

Denken Sie daran, dass der hier vorgestellte Algorithmus einer von mehreren Ansätzen zur Erkennung von Unterstützungs- und Widerstandsniveaus ist. Sie können mit verschiedenen Werten von n1 und n2 experimentieren, um zu sehen, wie sie sich auf die Erkennung und Zusammenführung von Ebenen auswirken. Darüber hinaus können Sie die Bedingung für das Zusammenführen von Ebenen ändern, indem Sie den Schwellenwert im Code anpassen.

Bedenken Sie, dass die automatische Erkennung von Unterstützungs- und Widerstandsniveaus ein nützliches Werkzeug ist, aber in Verbindung mit anderen technischen Analysetechniken und Markteinblicken verwendet werden sollte, um fundierte Handelsentscheidungen zu treffen.

Automated Support and Resistance Detection in PYTHON
Automated Support and Resistance Detection in PYTHON
  • 2021.08.19
  • www.youtube.com
This video describes an algorithm to detect support and resistance levels in python language. 🍓 If you want to follow structured courses with more details a...
 

Automatisierte Analyse von Preisaktionsmustern in Python


Automatisierte Analyse von Preisaktionsmustern in Python

Dieses Video erklärt, wie man Candlestick-Analysemuster in Python kombiniert und die Anzahl der Signale sowie die Genauigkeit der Preisaktionsvorhersagen überprüft. Die Methoden sind mit dem automatisierten Handel kompatibel. Eine gute Methode, um nach relativ starken Signalen von Preisbewegungen zu suchen: Candle-Stick-Analyse, Engulfing-Muster, Preisaktionsanalyse.

00:00 Einführung in die Price Action Candles
00:35
Sternschnuppe, Hammer, hängender Mann, verschlingendes Muster
03:10 Python-Preisaktionserkennung
12:13 Ergebnisse der Preisaktionsanalyse
18:45 Preiskerzen in Python zeichnen

Automated Price Action Patterns Analysis In Python
Automated Price Action Patterns Analysis In Python
  • 2021.08.05
  • www.youtube.com
This video provides an explanation on how to combine Candlestick Analysis Patterns in Python and check the number of signals as well as the accuracy of the p...
 

Verschlingende Preisaktionsmuster, automatisiert in Python



Verschlingende Preisaktionsmuster, automatisiert in Python

Hallo zusammen und willkommen zurück zu diesem Video. In der heutigen Diskussion werden wir uns auf Engulfing-Kerzen konzentrieren, insbesondere auf die bullischen und bärischen Engulfing-Muster. Diejenigen unter Ihnen, die diese Muster bereits kennen, wissen, wie wichtig sie als Indikatoren im Handel sind.

Um die Gültigkeit dieser Muster zu analysieren, werden wir historische Daten des EUR/USD-Währungspaares über einen Zeitraum von etwa 10 Jahren verwenden. Unser Ziel ist es, einfache statistische Techniken in Python anzuwenden, um festzustellen, ob diese Muster statistisch signifikant sind oder ob es sich lediglich um einen Mythos handelt. Diese Informationen sind von entscheidender Bedeutung, insbesondere wenn Sie erwägen, Candlestick-Muster als Indikatoren in Ihre Handelsstrategie zu integrieren.

Der Einfachheit halber können Sie den vollständigen Code, der in dieser Analyse verwendet wird, finden, indem Sie dem Link in der Beschreibung unten folgen. Der Code ist als Jupyter-Notebook-Datei verfügbar, sodass Sie dieses Video entspannt genießen und gleichzeitig den Code erkunden können.

Engulfing-Muster können in zwei verschiedenen Formen beobachtet werden. Das bullische Muster tritt auf, wenn auf mehrere Abwärtstrendkerzen eine einzelne Aufwärtstrendkerze folgt. Diese Aufwärtstrendkerze beginnt bei oder unter dem Schlusskurs der letzten Abwärtstrendkerze und schließt höher als der Eröffnungskurs der vorherigen Kerze. Dieses Muster weist typischerweise auf einen bevorstehenden Aufwärtstrend auf dem Markt hin.

Andererseits ist das bärische Engulfing-Muster das symmetrische Gegenteil des bullischen Musters. Es tritt auf, wenn auf Aufwärtstrendkerzen eine bärische Engulfing-Kerze folgt. Eine bärische Engulfing-Kerze beginnt bei oder über dem Schlusskurs der vorherigen Kerze und schließt unter dem Eröffnungskurs derselben Kerze. Dieses Muster deutet auf eine bevorstehende Abwärtsbewegung des Preises hin.

In diesem Video möchten wir überprüfen, ob diese Behauptungen wahr sind. Unser Ziel ist es festzustellen, ob diese Muster tatsächlich auf bestimmte Marktverhaltensweisen hinweisen. Typischerweise deutet ein bullisches Engulfing-Muster darauf hin, dass die Käufer auf dem Markt stärker sind als die Verkäufer, während ein bärisches Engulfing-Muster das Gegenteil vermuten lässt. Um diese Überprüfung durchzuführen, werden wir Python-Code schreiben, um bullische und bärische Engulfing-Kerzen zu erkennen. Anschließend analysieren wir die folgenden paar Kerzen (im Bereich von einer bis drei Kerzen oder mehr), um festzustellen, ob sich der Preis in die erwartete Richtung bewegt.

Genauer gesagt betrachten wir den Schlusskurs der letzten Engulfing-Kerze. Im Falle eines bullischen Engulfing-Musters berücksichtigen wir die Höchstwerte der nachfolgenden Kerzen und berechnen die Differenz zwischen dem Höchst- und Schlusskurs der Engulfing-Kerze. Dies führt zu drei unterschiedlichen Werten, die wir als „d“ bezeichnen. Als nächstes testen wir, ob einer dieser Unterschiede einen bestimmten Grenzwert überschreitet, der durch eine von mir definierte Variable dargestellt wird. Dieses Limit kann je nach Wunsch auf 20, 30 oder 40 Pips eingestellt werden. Anschließend berechnen wir den Prozentsatz, in dem diese Differenz das Pip-Limit überschreitet.

In ähnlicher Weise werden wir für das bärische Engulfing-Muster die niedrigen Werte der nachfolgenden Kerzen berücksichtigen. Wir vergleichen die Differenz zwischen dem Schlusskurs der Engulfing-Kerze und diesen Tiefstwerten mit der Variablen Schwellenwert innerhalb von zwei bis drei Kerzen, die dem Engulfing-Muster folgen. Wir berechnen den Prozentsatz der Fälle, in denen sich der Preis nach Auftreten dieser Muster wie erwartet verhält.

Es ist wichtig zu beachten, dass nur eine dieser Differenzen die Variable X überschreiten muss. Wir verlangen nicht, dass alle drei Differenzen gleichzeitig diese Pip-Grenze überschreiten. Wenn der Preis daher um eine bestimmte Anzahl von Pips unter den Schlusswert der Engulfing-Kerze fällt, gilt die Vorhersage dieses Musters als erfolgreich. Das gleiche Prinzip gilt für das bullische Engulfing-Muster, jedoch in Aufwärtsrichtung.

Fahren wir nun mit der Überprüfung des Python-Codes und der Beobachtung seines Verhaltens fort.

Wenn ich dies für den Trend gleich eins mache, also für das bärische Engulfing-Muster und die Abwärtstrendvorhersage, kann ich die Genauigkeit berechnen, indem ich die Werte in der Ergebnisspalte, in der der Trend gleich eins ist, summiere und durch die Gesamtzahl dividiere von Signalen für das bärische Engulfing-Muster. Ebenso kann ich die Präzision für das bullische Engulfing-Muster und die Aufwärtstrendvorhersage berechnen.

Erstellen wir nun eine neue Funktion namens „calculate_precision“, die den Datenrahmen als Eingabe verwendet und die Genauigkeit für beide Muster berechnet. Zuerst initialisieren wir die Variablen „bearish_signals“ und „bullish_signals“, um die Gesamtzahl der Signale für jedes Muster zu zählen. Anschließend durchlaufen wir den Datenrahmen und erhöhen den entsprechenden Signalzähler basierend auf dem Signalwert.

Als nächstes berechnen wir die Präzision für das bärische Engulfing-Muster, indem wir die Werte in der Ergebnisspalte, bei denen der Trend gleich eins ist, summieren und durch die Gesamtzahl der bärischen Signale dividieren. Dasselbe machen wir für das bullische Engulfing-Muster und die Aufwärtstrendvorhersage.

Schließlich geben wir die Präzisionswerte für beide Muster zurück. Rufen wir nun diese Funktion in unserem Datenrahmen auf, um die Genauigkeit zu berechnen.

Nachdem wir die Präzision berechnet haben, können wir die Ergebnisse ausdrucken, um zu sehen, wie gut unsere Vorhersagen mit dem tatsächlichen Trend übereinstimmen. Es ist wichtig zu beachten, dass diese Präzisionswerte auf den spezifischen Parametern und Bedingungen basieren, die wir in unserem Code festgelegt haben. Sie können mit verschiedenen Parametern und Bedingungen experimentieren, um die Präzision für Ihre spezifische Handelsstrategie zu optimieren.

Abschließend konzentrierte sich dieses Video auf die Verschlingungskerzenmuster im Handel und zielte darauf ab, festzustellen, ob diese Muster statistische Bedeutung haben oder ob sie lediglich ein Mythos sind. Durch die Analyse historischer Daten des Währungspaars EUR/USD mit Python haben wir bärische und bullische Engulfing-Kerzenmuster erkannt und das anschließende Trendverhalten innerhalb einer bestimmten Anzahl von Kerzen untersucht. Durch die Berechnung der Präzision haben wir Erkenntnisse über die Genauigkeit unserer Vorhersagen gewonnen. Denken Sie daran, die Einschränkungen dieser Analyse zu berücksichtigen und Ihre Handelsstrategie basierend auf Ihren eigenen Vorlieben und Zielen weiter zu verfeinern.

Vielen Dank fürs Zuschauen. Vergessen Sie nicht, den Link in der Videobeschreibung zu überprüfen, um den vollständigen Code im Jupyter Notebook-Format herunterzuladen. Genießen Sie Ihre Handelsreise und viel Glück bei Ihren Bemühungen!

Engulfing Price Action Patterns Automated in Python
Engulfing Price Action Patterns Automated in Python
  • 2021.07.08
  • www.youtube.com
This video describes the Engulfing Candlestick Patterns, bullish and bearish engulfing candles and statistics are carried out in python to check if these pat...
 

Automatisierte Candlestick-Strategie in Python | Testen der Sternschnuppe



Automatisierte Candlestick-Strategie in Python | Testen der Sternschnuppe

In der heutigen Sitzung tauchen wir in die faszinierende Welt der Candlestick-Muster ein und lernen, wie man sie in Python programmiert. Unser Ziel ist es, einen Code zu erstellen, der spezifische Muster identifizieren und möglicherweise Preistrendumkehrungen erkennen kann. Darüber hinaus werden wir ein Backtesting einer Strategie durchführen, die Candlestick-Signale nutzt und dabei einen einfachen statistischen Ansatz verwendet, um die Chancen für die Entwicklung eines erfolgreichen automatisierten Bots auf der Grundlage von Candlestick-Vorhersagen zu bewerten. Wenn Sie an diesem Inhalt interessiert sind, können Sie die Programmdatei über den in der Beschreibung unten angegebenen Link herunterladen. Wir wünschen Ihnen viel Spaß bei dieser informativen Sitzung.

Bevor wir fortfahren, möchten wir klarstellen, dass in diesem Video davon ausgegangen wird, dass Sie bereits über Kenntnisse über Candlestick-Muster verfügen. Wir gehen nicht näher auf die einzelnen Muster ein, sondern konzentrieren uns auf die bekanntesten Formen. Bitte beachten Sie, dass diese Liste keinen Anspruch auf Vollständigkeit erhebt, da es noch viele weitere Muster gibt. Vorerst bleiben wir bei den Grundlagen. Möglicherweise kennen Sie bereits den Doji, der einen unentschlossenen Markt darstellt. Ein weiteres wichtiges Muster ist der Shooting Star, der durch einen langen Schwanz über dem Körper der Kerze gekennzeichnet ist. Es kann in zwei Formen auftreten, am wichtigsten ist jedoch das Vorhandensein des langen Schwanzes. Wenn Sie während eines Aufwärtstrends auf einen Shooting Star stoßen, könnte dies auf eine Trendumkehr und einen Wechsel in einen Abwärtstrend hinweisen. Ebenso haben wir das Hammer-Muster, das dem Shooting Star ähnelt, aber umgekehrt ist. Es bedeutet einen Ablehnungspunkt während eines Aufwärtstrends mit einem langen unteren Ende. Dieses Muster deutet darauf hin, dass sich der Aufwärtstrend seinem Ende nähert und ein Abwärtstrend-Retracement folgen könnte.

Lassen Sie uns nun das Bullish-Engulfing-Muster besprechen. Dies geschieht während eines Abwärtstrends, bei dem die letzte rote Kerze vollständig von einer größeren Aufwärtskerze abgedeckt wird. Dieses Umkehrmuster signalisiert das Ende des Abwärtstrends und den Beginn eines Aufwärtstrends. Umgekehrt haben wir das Bearish-Engulfing-Muster, das das Gegenteil des Bullish-Engulfing-Musters ist. Es tritt während eines Aufwärtstrends auf, bei dem auf eine nach oben gerichtete Kerze eine größere Kerze folgt, die die vorherige überdeckt. Dies zeigt das Ende des Aufwärtstrends und den Beginn eines Abwärtstrends an. Bedenken Sie, dass es mehrere andere Candlestick-Muster gibt, auf die wir hier nicht im Detail eingehen, wie zum Beispiel die Three Crows und andere. In diesem Video konzentrieren wir uns jedoch speziell auf die Muster „Shooting Star“ und „Hammer“, insbesondere wenn sich ein Abwärtstrend in einen Aufwärtstrend umkehrt.

Die Muster „Shooting Star“ und „Hammer“ gehören zu meinen persönlichen Favoriten, da sie eindeutig auf die Reaktion des Marktes auf einen Aufwärtstrend hinweisen. Es ist offensichtlich, dass Verkäufer in den Markt eingestiegen sind und ein bestimmtes Preisniveau abgelehnt haben. Aus diesem Grund neige ich dazu, diesen Mustern mehr zu vertrauen als anderen. Natürlich können individuelle Präferenzen variieren, je nachdem, wie Sie diese Muster nutzen und mit anderen Indikatoren oder Strategien kombinieren. Betrachten wir für dieses Video den Shooting Star als überzeugendes Beispiel für die Preisablehnung und die starke Reaktion der Verkäufer, die diesem Candlestick seine besondere Form verleihen. Wir konzentrieren uns darauf, dieses Muster in Python zu codieren und unserem Bot beizubringen, solche Muster zu erkennen. Während Sie die von uns besprochenen Konzepte auf andere Muster erweitern können, die Sie interessieren, wird unser Hauptaugenmerk auf der Sternschnuppe und dem Hammer liegen.

Es ist wichtig zu beachten, dass es nicht ausreicht, sich ausschließlich auf Candlestick-Muster zu verlassen, um genaue Kauf- oder Verkaufssignale zu generieren. Diese Muster sollten mit Ihren Lieblingsindikatoren kombiniert werden. In unserem Fall kombinieren wir sie mit dem Relative Strength Index (RSI). Sie können neben Candlestick-Mustern auch verschiedene technische Indikatoren oder sogar eine Fundamentalanalyse integrieren. Die alleinige Verwendung von Candlesticks ist nicht umfassend.

Um die Erfolgsquote unseres Vorhersageansatzes zu bewerten, müssen wir ihn mit dem RSI in Kombination mit dem Candlestick-Muster kombinieren, um dem Signal eine zusätzliche Bestätigung hinzuzufügen. Ein höherer RSI-Wert weist auf einen stärkeren Kaufdruck hin, was mit der möglichen Trendumkehr übereinstimmt, die das Shooting-Star-Muster nahelegt.

Wenn alle Bedingungen erfüllt sind, können wir ein Kaufsignal generieren. Wir weisen der Signalspalte für die entsprechende Zeile im Datenrahmen den Wert 1 zu. Andernfalls weisen wir den Wert 0 zu, was bedeutet, dass kein Signal vorhanden ist. Dieser Vorgang wird für jede Zeile im Datenrahmen wiederholt, wodurch effektiv der gesamte Datensatz gescannt wird, um potenzielle Kaufsignale zu identifizieren.

Als Nächstes definieren wir die Stop-Loss- und Take-Profit-Niveaus für die identifizierten Kaufsignale. Wir berechnen den Stop-Loss-Wert, indem wir die durchschnittliche wahre Reichweite (ATR) vom Kaufpreis abziehen. Der ATR bietet ein Maß für die Volatilität und hilft bei der Bestimmung eines angemessenen Abstands für den Stop-Loss. Eine größere ATR weist auf einen volatileren Markt hin, der einen größeren Stop-Loss erfordert, während eine kleinere ATR auf einen weniger volatilen Markt hindeutet, was einen engeren Stop-Loss ermöglicht.

Für das Take-Profit-Niveau multiplizieren wir das Take-Profit-Stop-Loss-Verhältnis (das wir auf 2 gesetzt haben) mit der ATR und addieren es zum Kaufpreis. Dadurch wird sichergestellt, dass das Take-Profit-Niveau doppelt so weit vom Kaufpreis entfernt ist wie das Stop-Loss-Niveau. Das Take-Profit-Niveau stellt das potenzielle Gewinnziel für den Handel dar.

Nachdem wir nun die Kaufsignale und die entsprechenden Stop-Loss- und Take-Profit-Level haben, können wir mit dem Backtesting der Strategie fortfahren. Wir durchlaufen jede Zeile im Datenrahmen und simulieren die Trades basierend auf den generierten Signalen.

Wenn der Preis zuerst das Stop-Loss-Niveau erreicht, betrachten wir es als Verlustgeschäft. Wenn umgekehrt der Preis zuerst das Take-Profit-Niveau erreicht, betrachten wir es als gewinnbringenden Trade. Wir verfolgen die Anzahl der gewonnenen und verlorenen Trades.

Um die Leistung der Strategie zu bewerten, berechnen wir die Gewinnquote als Prozentsatz der erfolgreichen Trades an der Gesamtzahl der Trades. Da wir in diesem Fall das Take-Profit-Stop-Loss-Verhältnis auf 2 setzen, gleicht jeder Gewinn-Trade zwei Verlust-Trades aus. Um ein erfolgreiches System zu haben, müssen wir daher in mindestens 34 % der Fälle Recht haben.

Es ist wichtig zu beachten, dass diese Bewertung keine Handelskosten wie Gebühren und Overnight-Swap-Werte berücksichtigt. Darüber hinaus handelt es sich hierbei um ein vereinfachtes Beispiel, und im realen Handel ist es wichtig, andere Faktoren wie Marktbedingungen, Risikomanagement und allgemeine Marktanalyse zu berücksichtigen.

Durch die Kombination von Candlestick-Mustern, RSI und einem systematischen Ansatz für das Handelsmanagement wollen wir eine Handelsstrategie entwickeln, die potenziell profitable Geschäfte generieren kann. Es ist jedoch von entscheidender Bedeutung, die Strategie anhand historischer Daten gründlich zu testen und zu validieren und eine laufende Marktanalyse in Betracht zu ziehen, um sie an veränderte Marktbedingungen anzupassen.

Abschließend bietet dieses Video-Tutorial eine Einführung in die Programmierung von Candlestick-Mustern in Python, zeigt, wie man bestimmte Muster erkennt, und skizziert einen Backtesting-Ansatz zur Bewertung der Leistung einer Strategie basierend auf diesen Mustern. Es ist eine Gelegenheit, das Potenzial von Candlestick-Mustern als Werkzeug zur Vorhersage von Preistrendumkehrungen und zur Entwicklung automatisierter Trading-Bots zu erkunden.

Automated Candlestick Strategy in Python | testing the shooting star
Automated Candlestick Strategy in Python | testing the shooting star
  • 2021.04.21
  • www.youtube.com
This video is a walkthrough coding the candlestick patterns in Python language. After a general introduction we focus mainly on the shooting star rejection p...
 

Vermeiden Sie häufige Fehler beim algorithmischen Handel und maschinellen Lernen



Vermeiden Sie häufige Fehler beim algorithmischen Handel und maschinellen Lernen

Haben Sie sich jemals gefragt, wie es wäre, einen erfolgreichen Trading-Bot zu haben, der in Ihrem Namen profitable Trades ausführt, während Sie schlafen oder Ihre Freizeit genießen? Vielleicht haben Sie Stunden, Monate oder sogar Jahre damit verbracht, den Code zu knacken und das schwer fassbare Programm zu finden, das Ihren Lebensstil revolutionieren könnte.

Wenn es um maschinelles Lernen geht, glauben viele Menschen, dass es in verschiedenen Bereichen wie Marketing und Vertrieb Wunder bewirken kann. Allerdings gibt es zwei Bereiche, in denen maschinelles Lernen immer noch Probleme hat: die Vorhersage von Wetterdaten und die Vorhersage von Preismärkten. Die hohe Zufälligkeit der Zahlen in diesen Feldern macht es schwierig, Preise allein mithilfe maschinellen Lernens genau vorherzusagen.

Aber hier ist der Haken: Es ist möglich, Preise mithilfe von maschinellem Lernen vorherzusagen, allerdings nur, wenn es mit einer geeigneten Handelsstrategie gekoppelt ist. Das bedeutet, dass die Art der Vorhersage, die Sie treffen, mit der von Ihnen angewandten Handelsstrategie übereinstimmen muss.

Lassen Sie uns nun auf einige häufige Fehler eingehen, die den Erfolg Ihres Handelsmodells behindern können, und darauf, was Sie tun können, um sie zu vermeiden.

Fehler Nr. 1: Preiswerte als Regressor in ein maschinelles Lernmodell einpassen. Der Versuch, den nächsten Marktwert vorherzusagen, indem man Preiswerte direkt in einen Regressor für maschinelles Lernen eingibt, ist ein häufiger Anfängerfehler. Während dieser Ansatz für korrelierte Werte wie die Vorhersage von Immobilienpreisen auf der Grundlage der Fläche gut funktionieren kann, ist er nicht auf Aktien- oder Devisenmärkte anwendbar. Diese Märkte weisen keine eindeutige Korrelation mit der Zeitvariablen allein auf, sodass eine direkte Regression wirkungslos ist.

Fehler Nr. 2: Verwendung absoluter Werte als Modelleingabe. Eine weitere Gefahr besteht darin, Rohpreise oder technische Indikatorwerte als Eingabe zu verwenden. Die bloße Angabe von Eröffnungs-, Schluss-, Höchst- und Tiefstkursen sowie gleitenden Durchschnitten und anderen Indikatoren ist keine Garantie für genaue zukünftige Preisvorhersagen. Unser Gehirn verarbeitet Informationen unterschiedlich und konzentriert sich eher auf das Gesamtbild und die Steigungen der Preisbewegungen als auf einzelne Werte. Ebenso muss Ihr Modell die allgemeinen Trends und Muster und nicht einzelne Datenpunkte berücksichtigen.

Fehler Nr. 3: Datenerfassung durch zufällige Aufteilung der Zugtestdaten. Während die zufällige Aufteilung von Zugtests beim maschinellen Lernen eine gängige Praxis ist, kann sie bei der Arbeit mit Zeitreihenanalysen problematisch sein, insbesondere auf Preismärkten. Die zufällige Aufteilung Ihrer Daten für Training und Tests kann dazu führen, dass der Testsatz dem Trainingssatz sehr ähnelt. Diese Ähnlichkeit kann dazu führen, dass das Modell beim Backtesting genau erscheint, bei neuen Live-Daten jedoch keine gute Leistung erbringt.

Fehler Nr. 4: Sich ausschließlich auf die technische Analyse verlassen. Während technische Indikatoren in Modellen des maschinellen Lernens eine wichtige Rolle spielen, reicht es für den langfristigen Erfolg nicht aus, sich nur auf sie zu verlassen. Es ist wichtig, externe Faktoren wie Wirtschaftskalender und Großereignisse zu berücksichtigen, die das Marktverhalten erheblich beeinflussen können. Das Ignorieren dieser Faktoren kann zu schlechten Ergebnissen führen und ein ansonsten solides Modell diskreditieren.

Fehler Nr. 5: Keine Strategie in Betracht ziehen, die zur Präzision des Modells passt. Die Präzision eines Modells allein bestimmt nicht seine Rentabilität. Durch die Kombination der Genauigkeit des Modells mit einer optimierten Handelsstrategie, beispielsweise einem günstigen Take-Profit-Stop-Loss-Verhältnis, kann aus einem scheinbar verlustbringenden Modell ein profitables Modell werden. Eine Präzision über 33 % kann in Kombination mit der richtigen Strategie ausreichend sein.

Fehler Nr. 6: Eine Einstiegsstrategie überspringen und sich ausschließlich auf die Vorhersagen des Modells verlassen. Auch wenn Ihr Modell genaue Vorhersagen liefert, ist es von entscheidender Bedeutung zu wissen, wann Sie in den Markt einsteigen und Trades ausführen sollten. Die Definition einer Markteintrittsstrategie, die die Vorhersagen des Modells ergänzt, ist für die Gewinnmaximierung von entscheidender Bedeutung. Eine korrekte Trendvorhersage reicht nicht aus, wenn Sie zum falschen Zeitpunkt in den Markt einsteigen und ausgestoppt werden, bevor Sie Ihr Ziel erreichen.

Fehler Nr. 7: Handelsgebühren und Provisionen nicht berücksichtigen. Die Nichtberücksichtigung von Gebühren und Provisionen kann erhebliche Auswirkungen auf die Rentabilität Ihrer Handelsstrategie haben. Während eine erfolgreiche Strategie einen leichten Vorteil haben kann, können Handelsgebühren diese Gewinne zunichte machen. Bei der Gestaltung Ihrer Strategie ist es wichtig, die Gebühren zu berücksichtigen, z. B. die Schließung von Geschäften am selben Tag, um Nacht- oder Wochenendgebühren zu vermeiden.

Als nächstes ist es wichtig, Ihr Modell über einen längeren Zeitraum hinweg einem Backtest zu unterziehen. Das Testen Ihres Modells unter verschiedenen Marktbedingungen ist unerlässlich, um seine Wirksamkeit sicherzustellen. Verlassen Sie sich nicht ausschließlich auf die kurzfristige Leistung, da diese möglicherweise nicht die langfristige Rentabilität des Modells widerspiegelt. Versuchen Sie, Ihr Modell über einen Zeitraum von mindestens sechs Monaten einem Backtest zu unterziehen und zu beurteilen, ob es durchweg positive Gewinne liefert.

Vermeiden Sie schließlich, ungeduldig zu werden und sich in den Handel einzumischen. Ein hochpräzises Modell neigt dazu, auf starke Signale zu warten, bevor es Trades ausführt. Auch wenn Ihnen dadurch einige Gelegenheiten entgehen, ist es wichtig, sich nicht in die Entscheidungen des Modells einzumischen. Vermeiden Sie es, aus Ungeduld neue Geschäfte zu eröffnen oder bestehende zu schließen. Manchmal ist es besser, keine Trades zu tätigen, als einen Trade mit Verlust zu tätigen.

Zusammenfassend lässt sich sagen, dass diese Erkenntnisse Ihnen dabei helfen sollen, Ihr Handelserlebnis zu verbessern. Denken Sie daran: Wenn Ihr Algorithmus noch nicht marktreif ist, sollten Sie sich nicht zu sehr darauf konzentrieren. Machen Sie eine Pause, bestellen Sie ein schönes Stück heiße Pizza und denken Sie daran, Spaß zu haben.

Avoid Common Mistakes in Algorithmic Trading And Machine Learning
Avoid Common Mistakes in Algorithmic Trading And Machine Learning
  • 2021.03.05
  • www.youtube.com
This video presents 9 very common mistakes that every algorithmic trader might fall in especially when using Machine Learning models to predict price movemen...
 

So berechnen Sie technische Indikatoren für den Handel mit Pandas



So berechnen Sie technische Indikatoren für den Handel mit Pandas

Hallo zusammen und willkommen zurück zu diesem Video. Heute werden wir uns mit der Analyse von Forex-Marktpreisen mit Python befassen und untersuchen, ob Statistiken Korrelationen zwischen technischen Indikatoren und der zukünftigen Preisrichtung aufdecken können. Sie müssen kein Handels- oder Programmierexperte sein, um mitzumachen, aber eine gewisse Vertrautheit mit grundlegenden technischen Indikatoren wie gleitenden Durchschnitten und dem Relative-Stärke-Indikator (RSI) wäre hilfreich. Wenn Sie hier eine kurze Einführung in Anwendungen des maschinellen Lernens im Handel suchen, sind Sie hier genau richtig, denn wir halten die Dinge einfach.

In diesem Video behandeln wir folgende Themen:

  1. Herunterladen von Wechselkursdaten: Wir besuchen die Website cascope.com und wählen den historischen Daten-Feed aus, insbesondere für das Währungspaar USD/CHF (US-Dollar gegenüber Schweizer Franken). Wir wählen den stündlichen Candlestick-Zeitrahmen für unsere Daten.

  2. Daten mit Pandas in Python laden: Wir verwenden die read_csv-Funktion der Pandas-Bibliothek, um die heruntergeladene Datei in einen Pandas-DataFrame zu laden. Wir prüfen außerdem, ob die Daten korrekt geladen wurden, indem wir die letzten fünf Zeilen des DataFrame überprüfen.

  3. Datenbereinigung und erste Analyse: Das Verständnis der Daten ist von entscheidender Bedeutung. Daher bereinigen wir die Daten, indem wir Zeilen ohne Volumen entfernen und auf fehlende Werte prüfen. Darüber hinaus führen wir eine kurze statistische Analyse durch, um Muster oder Korrelationen innerhalb der Daten zu identifizieren.

  4. Technische Indikatoren hinzufügen: Wir importieren die erforderlichen Bibliotheken, einschließlich Numpy und Pandas_ta (Pandas Technical Analysis), die verschiedene Indikatoren für die technische Analyse bereitstellen. Wir fügen unserem DataFrame mehrere Indikatoren hinzu, z. B. den Average True Range (ATR), RSI und gleitende Durchschnitte, und berechnen deren Steigungen.

  5. Ziel definieren: Um Vorhersagen auf der Grundlage technischer Indikatoren treffen zu können, müssen wir unser Ziel definieren. Anstatt den zukünftigen Durchschnittspreis vorherzusagen, was eine Herausforderung sein kann, kategorisieren wir die Trends in drei Kategorien: aufwärts, abwärts und kein klarer Trend.

  6. Histogramme zeichnen: Wir visualisieren die Verteilungen verschiedener Features mithilfe von Histogrammen. Dazu gehören Volumen, ATR, RSI, mittlere Preise, gleitende Durchschnitte, Steigungen und die Zielkategorien. Die Histogramme bieten einen schnellen Überblick über die Daten und helfen bei der Identifizierung etwaiger Ausreißer.

  7. Analyse des RSI: Wir konzentrieren uns auf den RSI als Trendindikator und erstellen separate DataFrames für die drei Zielkategorien: Aufwärts-, Abwärts- und unklare Trends. Wir zeichnen Histogramme für die RSI-Werte in jeder Kategorie, um zu sehen, ob es erkennbare Unterschiede gibt.

Bedenken Sie jedoch, dass es möglicherweise nicht ausreicht, sich ausschließlich auf den RSI zu verlassen, um Preistrends genau vorherzusagen. Es wird empfohlen, andere technische Indikatoren oder Kombinationen von Indikatoren zu untersuchen, um einen Vorteil bei der Vorhersage von Preistrends zu erzielen.

Damit ist der Inhalt dieses Videos abgeschlossen. Ich hoffe, Sie finden die Informationen hilfreich. Wenn Sie spezielle Fragen haben oder weitere Erläuterungen benötigen, können Sie diese gerne im Kommentarbereich stellen. Viel Spaß beim Codieren!

How To Calculate Technical Indicators For Trading Using Pandas
How To Calculate Technical Indicators For Trading Using Pandas
  • 2021.02.22
  • www.youtube.com
If you're a beginner looking to learn how to calculate technical indicators and download price history, then you don't want to miss this video! These indicat...
 

Backtesting.py – Vollständiger Kurs in Python



Backtesting.py – Vollständiger Kurs in Python

Während des Tutorials bespricht der Dozent die Vor- und Nachteile der Verwendung von backtesting.py als Bibliothek für Backtesting-Handelsstrategien. Die Bibliothek ist so konzipiert, dass sie sich ausschließlich auf das Wesentliche des Backtestings konzentriert und Funktionen wie eine Indikatorbibliothek oder die Integration mit Brokern oder anderen Plattformen weglässt. Diese Einfachheit ermöglicht eine leichte und unkomplizierte Verwendung der Bibliothek. Die bereitgestellte Dokumentation ist klar und leicht verständlich, sodass Benutzer die Konzepte und Funktionen der Bibliothek schnell verstehen können.

Ein wesentlicher Vorteil von backtesting.py ist seine Geschwindigkeit, insbesondere beim Testen einzelner Strategien. Die Bibliothek ist auf Leistung optimiert, sodass Benutzer Backtests effizient durchführen und zeitnah Ergebnisse erhalten können. Diese Geschwindigkeit ist von Vorteil, wenn Sie mehrere Strategien oder Parameterkombinationen durchlaufen, um die optimalen Einstellungen zu finden.

Bei der Verwendung von backtesting.py sind jedoch einige Einschränkungen zu beachten. Erstens unterstützt die Bibliothek den Handel mit mehreren Assets nicht. Es ist in erster Linie zum Testen von Strategien für ein einzelnes Asset oder Wertpapier konzipiert. Darüber hinaus bietet backtesting.py keine Unterstützung für Bruchteile von Aktien, was für Benutzer, die am Handel mit kleineren Positionsgrößen interessiert sind, ein Nachteil sein kann.

Trotz dieser Einschränkungen bleibt backtesting.py eine ausgezeichnete Wahl für diejenigen, die sich ausschließlich auf das Backtesting ihrer Handelsstrategien konzentrieren möchten. Aufgrund seiner Einfachheit und seines geringen Gewichts ist es leicht zu verstehen und in bestehende Arbeitsabläufe zu integrieren.

Im Tutorial demonstriert der Kursleiter die Verwendung von backtesting.py, indem er die Schritte zum Erstellen einer virtuellen Umgebung und zum Installieren der erforderlichen Abhängigkeiten durchgeht. Durch den Import der erforderlichen Komponenten, beispielsweise Testdaten für Google-Aktienkurse von 2006 bis 2013, bereitet der Dozent die Voraussetzungen für die Durchführung eines Backtests vor.

Anschließend erstellt der Kursleiter eine Strategieklasse, in der die beiden wesentlichen Funktionen __init__ und next definiert werden. In der Funktion __init__ berechnet der Dozent den Indikatorwert des Relative Strength Index (RSI). Die nächste Funktion dient der Bewertung der Kaufkriterien anhand der RSI-Werte.

Als nächstes erklärt der Kursleiter, wie man eine einfache Crossover-Strategie implementiert, indem man vorberechnete Werte verwendet, die in die nächste Funktion eingespeist werden. Die Crossover-Bibliothek von backtesting.py wird importiert, um den RSI mit oberen und unteren Grenzwerten zu vergleichen. Überschreitet der RSI einen bestimmten Wert, wird ein Verkaufssignal generiert, fällt er unter einen anderen Wert, wird ein Kaufsignal ausgelöst. Der Kursleiter definiert die oberen und unteren Grenzwerte und weist sie der Klasse für den Zugriff in der nächsten Funktion zu.

Um die Strategie zu testen, richtet der Kursleiter einen Backtest ein, indem er die Daten bereitstellt, den anfänglichen Bargeldbetrag auswählt und die Statistiken ausdruckt. Der Dozent betont die einfache Darstellung von Backtesting-Ergebnissen mit backtesting.py und hebt hervor, wie die roten und grünen Kästchen auf dem Bildschirm die Monate anzeigen.

Anschließend gibt der Kursleiter einen Überblick über das Backtesting.py-Dashboard, das neben anderen nützlichen Kennzahlen einen umfassenden Überblick über Handelsinformationen, Gewinne und Verluste, Portfoliowert und Indikatoren bietet. Der Kursleiter demonstriert, wie mit backtesting.py eine Strategieoptimierung erreicht werden kann, indem unterschiedliche Bereiche für die Ober- und Untergrenzen des RSI-Fensters definiert werden. Der Optimierer generiert Statistiken wie das Sharpe-Verhältnis und simuliert verschiedene Kombinationen, um die wertvollste Funktion zu finden. Der Dozent betont, dass Benutzer benutzerdefinierte Metriken definieren und Einschränkungen anwenden können, um die Optimierungsergebnisse zu verbessern.

Darüber hinaus erklärt der Dozent, wie man Einschränkungen anwendet, um eine Teilmenge von Werten auszuwählen, indem man Lambda-Funktionen verwendet, die basierend auf bestimmten Parametern „true“ oder „false“ zurückgeben. Das Video zeigt, wie Sie die Strategie mithilfe der Optimierungsfunktion optimieren, um das Sharpe-Verhältnis zu maximieren, und wie Sie die Optimierungsfunktion als reguläre Python-Funktion definieren. Der Dozent bespricht auch die Erstellung einer Kennzahl zur Gewinnmaximierung bei gleichzeitiger Minimierung der Zeit, die auf dem Markt verbracht wird.

Im Tutorial fügt der Dozent der Optimierungsfunktion einen Filter für die Mindestanzahl von Trades hinzu, um eine Überanpassung zu verhindern. Durch die Einbeziehung dieses Filters ist die Backtesting-Funktion gezwungen, über eine einzelne Swing-Periode hinauszuschauen, was die Chancen erhöht, profitablere Parameterkombinationen zu entdecken. Darüber hinaus zeigt der Kursleiter, wie man HTML-Dateien der Backtest-Ergebnisse erstellt, was hilfreich sein kann, wenn mehrere Backtests ausgeführt werden und verschiedene Parameterkombinationen im Auge behalten müssen. Der Kursleiter gibt außerdem Anleitungen zum Benennen und Organisieren der generierten Dateien, um ein Überladen des Arbeitsverzeichnisses zu vermeiden.

Das Tutorial untersucht außerdem die Verwendung der Optimierungsfunktion in backtesting.py, um eine Strategie effizient zu optimieren, ohne jede mögliche Kombination testen zu müssen. Durch Festlegen einer maximalen Anzahl von Versuchen führt das Programm eine zufällige Rastersuche der Kombinationen durch, wodurch der Zeitaufwand für Backtests und das Risiko einer Überanpassung reduziert werden. Der Kursleiter zeigt, wie man Heatmaps erstellt, um die Auswirkungen verschiedener Werte auf die Strategie durch Variation der Ober- und Untergrenzen zu visualisieren. Mit einer Pandas-Group-By-Anweisung werden die Spalten nach Ober- und Untergrenze gruppiert und der Mittelwert berechnet, um Durchschnittswerte für jede Kombination zu erhalten.

Der Referent erklärt, wie die Funktion in backtesting.py alle eindeutigen Kombinationen der angegebenen Spalten findet, beispielsweise die Ober- und Untergrenzen. Diese Kombinationen werden dann gruppiert und eine Aggregationsfunktion, beispielsweise der Mittelwert, angewendet. Die resultierende Ausgabe ist eine Heatmap, die mit dem Seaborn-Modul dargestellt werden kann. Der Kursleiter demonstriert die Optimierung für das Sharpe-Verhältnis und die Änderung der Farbkarte für die Heatmap. Darüber hinaus zeigt der Kursleiter, wie man die integrierte Funktion plot_heat_maps verwendet, um mehrere Heatmaps für mehr als zwei Parameter zu zeichnen.

Der Kursleiter demonstriert, wie Heatmaps zur Parameteroptimierung und Implementierung von Multi-Time-Frame-Strategien mithilfe der Resample-Apply-Funktion aus der backtesting.py-Bibliothek verwendet werden. Heatmaps bieten eine visuelle Darstellung, wie sich Variationen verschiedener Parameter auf Handelsstrategien auswirken. Durch die Kombination verschiedener Zeitrahmen mithilfe der Resample-Apply-Funktion können Händler komplexere Strategien entwickeln, die unterschiedliche Marktbedingungen berücksichtigen.

Der Dozent erklärt anhand der Bibliothek backtesting.py, wie unterschiedliche Zeitrahmen in einer Handelsstrategie verwendet werden können. Durch Downsampling und Anwenden von Funktionen kann die Bibliothek eine Vorwärtsfüllung und eine Neuindizierung zurück in den kleineren Zeitrahmen durchführen und so die Analyse verschiedener Zeitrahmen erleichtern. In dem bereitgestellten Beispiel beinhaltet die Strategie die Verwendung des täglichen und wöchentlichen RSI, um Trades nur dann auszulösen, wenn ein Crossover auftritt und der RSI über oder unter einem bestimmten Schwellenwert liegt. Der Dozent erwähnt, dass die Strategie durch Anpassen der Parameter optimiert werden kann und dass die Bibliothek das Experimentieren mit verschiedenen Ordertypen wie Stop-Loss und Take-Profit unterstützt.

Der Moderator zeigt, wie man eine Short-Position eröffnet, wenn der RSI unter die Untergrenze fällt, und wie man beim Kauf alle Short-Positionen schließt. In ähnlicher Weise zeigt der Moderator, dass, wenn der RSI über die Obergrenze steigt, alle Long-Positionen verkauft und eine Short-Position eröffnet wird. Allerdings weist der Moderator darauf hin, dass es keinen Code gibt, der verhindert, dass das Programm mehrere Positionen einnimmt, was dazu führt, dass das Programm 80 Prozent des investierten Eigenkapitals verliert. Der Moderator erklärt, wie dieses Problem behoben werden kann, indem eine Klausel hinzugefügt wird, die einen neuen Handel nur dann initiiert, wenn keine aktuelle Position vorhanden ist oder wenn im Portfolio eine Long-/Short-Position vorhanden ist.

Der Kursleiter zeigt, wie Stop-Loss- und Take-Profit-Orders in backtesting.py verwendet werden. Durch die Festlegung eines Stop-Loss bei einem bestimmten Prozentsatz unter dem aktuellen Preis kann die Strategie die Verluste bei jedem Trade begrenzen, während die Festlegung eines Take-Profit-Levels den Ausstieg aus Trades bei einem bestimmten Gewinnniveau ermöglicht. Der Kursleiter zeigt außerdem, wie man den Größenparameter im Kaufprozess anpasst, um jedem Trade einen bestimmten Prozentsatz der verfügbaren Mittel zuzuweisen. Obwohl es im Beispiel einige Probleme mit den Verkaufstaktiken gibt, bietet das Video nützliche Einblicke in die Verwendung von backtesting.py zum Erstellen und Testen von Handelsstrategien.

Das Video erläutert verschiedene Möglichkeiten zur Implementierung der Positionsgrößenbestimmung beim Backtesting. Ein Ansatz besteht darin, jeweils eine Aktie zu kaufen und zu verkaufen, anstatt einen Prozentsatz des verfügbaren Bargelds. Dieser Ansatz kann für Strategien nützlich sein, bei denen es um den Einstieg in eine Position oder die Mittelung der Dollarkosten geht. Das Video zeigt die Änderung einer Crossover-Strategie in eine Strategie, die auf dem RSI-Indikator basiert. Bei dieser modifizierten Strategie werden Trades ausgeführt, wenn der letzte RSI-Wert kleiner als die Untergrenze ist. Das Video hebt außerdem hervor, dass Trades aus dem Backtest als Pandas-Datenrahmen extrahiert werden können, einschließlich Ein- und Ausstiegsdaten und anderer wichtiger Kennzahlen. Diese Handelsdaten können zur weiteren Analyse und Untersuchung in andere Visualisierungstools wie Excel oder andere Python-Skripte exportiert werden.

Der Ersteller von backtesting.py stellt die Funktion „Balken seit“ vor, die ein leistungsstarkes Tool zur Optimierung von Strategien ist und die Notwendigkeit vermeidet, zahlreiche if-Anweisungen zu schreiben, um Daten für vorangegangene Tage zu vergleichen. Mit dieser Funktion können Benutzer die Anzahl der Balken ermitteln, seit eine bestimmte Handelsbedingung das letzte Mal erfüllt wurde. Diese Funktion bietet eine praktische Möglichkeit, Strategien basierend auf bestimmten zeitbasierten Bedingungen zu optimieren. Darüber hinaus betont der Ersteller den Open-Source-Charakter von backtesting.py und ermutigt Benutzer, die Bibliothek an ihre spezifischen Bedürfnisse und Vorlieben anzupassen.

Abschließend endet das Tutorial zu backtesting.py damit, dass der Dozent die Zuschauer dazu auffordert, sich bei Fragen oder Bedenken an uns zu wenden. Der Kursleiter wünscht ihnen viel Glück bei ihren Backtesting-Bemühungen und erinnert sie daran, Spaß beim Erkunden der Möglichkeiten des Backtestings und der Optimierung von Handelsstrategien mithilfe von backtesting.py zu haben. Der Dozent betont, wie wichtig es ist, sich auf die Dokumentation zu backtesting.py zu beziehen, um weitere Einzelheiten zu erfahren und zusätzliche Funktionen zu entdecken, die für den Aufbau und die Optimierung der Backtesting-Infrastruktur verfügbar sind.

Insgesamt bietet das Tutorial einen umfassenden Überblick über backtesting.py, seine Vorteile, Einschränkungen und verschiedenen Funktionen. Es führt Benutzer durch den Prozess der Erstellung einer Backtest-Umgebung, der Implementierung von Strategien, der Optimierung von Parametern, der Verwendung von Heatmaps zur Analyse, der Einbindung mehrerer Zeitrahmen und der Anwendung von Positionsgrößenbestimmungstechniken. Durch das Befolgen des Tutorials erhalten die Zuschauer wertvolle Einblicke und praktisches Wissen, das ihnen helfen kann, ihre Handelsstrategien mithilfe von backtesting.py effektiv zu testen und zu verfeinern.

  • 00:00:00 Der Dozent bespricht die Vor- und Nachteile von backtesting.py. Die Bibliothek konzentriert sich nur auf das Wesentliche des Backtestings und umfasst keine Indikatorbibliothek oder Integration mit Brokern oder anderen Plattformen. Die Dokumentation ist unkompliziert und leicht verständlich. Darüber hinaus ist es sehr schnell, insbesondere beim Testen einzelner Strategien. Der Nachteil besteht darin, dass der Handel mit mehreren Vermögenswerten oder Teilanteilen nicht möglich ist. Insgesamt ist die Bibliothek leichtgewichtig und einfach, was sie zu einer ausgezeichneten Wahl für diejenigen macht, die sich ausschließlich auf Backtesting konzentrieren möchten. Der Kursleiter führt außerdem die Schritte durch, um eine virtuelle Umgebung zu erstellen und die erforderlichen Abhängigkeiten für das Tutorial zu installieren.

  • 00:05:00 Wir sehen, wie der Autor der backtesting.py-Bibliothek die notwendigen Komponenten importiert, die zum Ausführen eines Backtests erforderlich sind, wie zum Beispiel die Testdaten für Google-Aktienkurse von 2006 bis 2013, und die Erstellung einer Strategieklasse, in der die beiden Funktionen enthalten sind , init und next sind definiert. In init berechnen wir den Indikatorwert des RSI, und die nächste Funktion wird verwendet, um die Kaufkriterien basierend auf der Berechnung der Werte für den RSI zu bewerten.

  • 00:10:00 Der Dozent bespricht, wie man eine einfache Crossover-Strategie mithilfe vorberechneter Werte umsetzt, die in das nächste Jahr eingespeist werden. Sie importieren die Crossover-Bibliothek aus backtesting.py, um den RSI mit oberen und unteren Grenzwerten zu vergleichen. Wenn der RSI einen bestimmten Wert überschreitet, wird verkauft, und wenn er darunter fällt, wird gekauft. Sie definieren außerdem obere und untere Grenzwerte und weisen sie der Klasse zu, um in der Funktion darauf zuzugreifen. Anschließend legt der Kursleiter einen Backtest für die Strategie fest, stellt die Daten bereit, wählt den Geldbetrag aus und druckt die Statistiken aus. Sie erklären, wie Backtesting einfach dargestellt werden kann und wie die roten und grünen Kästchen auf dem Bildschirm die Monate anzeigen.

  • 00:15:00 Der Referent gibt einen Überblick über das Dashboard, mit dem Backtesting-Ergebnisse mithilfe von backtesting.py visualisiert werden können. Das Dashboard bietet unter anderem Informationen zu Trades, Gewinnen und Verlusten, Portfoliowert und Indikatoren. Der Referent zeigt außerdem, wie mit backtesting.py eine Strategieoptimierung erreicht werden kann, indem unterschiedliche Wertebereiche für Ober- und Untergrenzen sowie das RSI-Fenster definiert werden. Der Optimierer generiert Statistiken wie das Sharpe-Verhältnis und simuliert verschiedene Kombinationen, um die Funktion mit dem höchsten Wert zu finden. Der Redner weist darauf hin, dass Benutzer benutzerdefinierte Metriken zur Optimierung definieren und Einschränkungen anwenden können, um bessere Optimierungsergebnisse zu erzielen.

  • 00:20:00 Der Kursleiter erklärt, wie man Einschränkungen anwendet, um eine Teilmenge von Werten auszuwählen und Lambda-Funktionen zu erstellen, die basierend auf beliebigen Parametern „true“ oder „false“ zurückgeben. Das Video zeigt, wie man die Strategie optimiert, wie man die Optimierungsfunktion verwendet, um das scharfe Verhältnis zu maximieren, und wie man die Optimierungsfunktion als reguläre Python-Funktion definiert. Der Dozent erläutert außerdem, wie man eine Kennzahl erstellt, die ermittelt, wie man das meiste Geld verdient und gleichzeitig am kürzesten auf dem Markt bleibt.

  • 00:25:00 Der Kursleiter erklärt, wie man der Optimierungsfunktion einen Filter für die Mindestanzahl von Trades hinzufügt, um eine Überanpassung zu verhindern. Durch das Hinzufügen dieses Filters ist die Backtesting-Funktion gezwungen, über eine einzelne Swing-Periode hinauszuschauen, was die Chancen erhöht, profitablere Parameterkombinationen zu entdecken. Der Kursleiter zeigt auch, wie man HTML-Dateien der Backtest-Ergebnisse erstellt. Dies kann nützlich sein, wenn mehrere Backtests ausgeführt werden und die verschiedenen verwendeten Parameterkombinationen im Auge behalten müssen. Abschließend erläutert der Kursleiter, wie die generierten Dateien benannt und organisiert werden, um eine Verstopfung des Arbeitsverzeichnisses zu vermeiden.

  • 00:30:00 Der Dozent erklärt, wie man die Optimierungsfunktion in backtesting.py verwendet, um eine Strategie schnell zu optimieren, ohne jede mögliche Kombination durchführen zu müssen. Durch Festlegen einer maximalen Anzahl von Versuchen führt das Programm eine zufällige Rastersuche der Kombinationen durch, wodurch der Zeitaufwand für Backtests und das Risiko einer Überanpassung reduziert werden. Der Kursleiter zeigt außerdem, wie man Heatmaps erstellt, um die verschiedenen Werte und ihre Auswirkungen auf die Strategie zu visualisieren, wenn Ober- und Untergrenzen variiert werden. Eine Pandas-Group-By-Anweisung wird verwendet, um die Spalten nach der Ober- und Untergrenze zu gruppieren, und der Mittelwert wird verwendet, um die Durchschnittswerte für jede Kombination zu berechnen.

  • 00:35:00 Der Sprecher erklärt, wie die Funktion alle eindeutigen Kombinationen der genannten Spalten findet, beispielsweise die Ober- und Untergrenzen. Anschließend gruppiert die Funktion diese Kombinationen und wendet eine Aggregationsfunktion an, in diesem Fall den Mittelwert. Die resultierende Ausgabe ist eine Heatmap, die mit dem Seaborn-Modul dargestellt werden kann. Der Referent zeigt, wie man das Sharpe-Verhältnis optimiert und die Farbkarte für die Heatmap ändert. Abschließend zeigt der Redner, wie man mit der integrierten Funktion plot_heat_maps mehrere Heatmaps für mehr als zwei Parameter plottet.

  • 00:40:00 Der Dozent zeigt, wie man Heatmaps zur Parameteroptimierung verwendet und wie man Multi-Time-Frame-Strategien mithilfe der Resample-Apply-Funktion aus der Backtesting-Bibliothek implementiert. Mithilfe von Heatmaps können Benutzer visualisieren, wie sich Schwankungen verschiedener Parameter auf ihre Handelsstrategien auswirken. Mit der Resample-Apply-Funktion können Benutzer Daten für verschiedene Zeitrahmen, beispielsweise wöchentlich und täglich, erneut abtasten, um sie gemeinsam in einer Strategie mit mehreren Zeitrahmen zu verwenden. Durch die Kombination verschiedener Zeitrahmen können Händler komplexere Strategien entwickeln, die unterschiedliche Marktbedingungen berücksichtigen.

  • 00:45:00 Der Dozent erklärt anhand der backtesting.py-Bibliothek, wie man unterschiedliche Zeitrahmen in einer Handelsstrategie verwendet. Durch Downsampling und Anwenden von Funktionen kann die Bibliothek eine Vorwärtsfüllung und eine Neuindizierung zurück in den kleineren Zeitrahmen durchführen, was die Analyse verschiedener Zeitrahmen erleichtert. Die Strategie in diesem Beispiel beinhaltet die Verwendung des täglichen und wöchentlichen RSI, um Trades nur dann auszulösen, wenn ein Crossover auftritt und der RSI über oder unter einem bestimmten Schwellenwert liegt. Die Strategie könnte durch Optimierung der Parameter optimiert werden und die Bibliothek könnte zum Experimentieren mit verschiedenen Ordertypen wie Stop-Loss und Take-Profit verwendet werden.

  • 00:50:00 Der Moderator zeigt, wie man eine Short-Position eröffnet, wenn der RSI unter die Untergrenze fällt, und wie man dann beim Kauf alle Short-Positionen schließt. Ebenso zeigt er, dass das Programm auch eine Short-Position initiiert, wenn der RSI über die Obergrenze steigt und Long-Positionen verkauft. Allerdings gibt es keinen Code, der verhindert, dass das Programm mehrere Positionen einnimmt, was dazu führt, dass das Programm 80 Prozent des investierten Eigenkapitals verliert. Der Moderator erklärt, wie man dieses Problem beheben kann, indem man eine Klausel hinzufügt, die einen neuen Handel nur dann einleitet, wenn keine aktuelle Position vorhanden ist oder eine Long/Short-Position im Portfolio vorhanden ist.

  • 00:55:00 Der Kursleiter zeigt, wie Stop-Loss- und Take-Profit-Orders in backtesting.py verwendet werden. Durch die Festlegung des Stop-Loss auf einen bestimmten Prozentsatz unter dem aktuellen Preis kann die Strategie vermeiden, bei jedem Trade mehr als einen bestimmten Betrag zu verlieren, während die Festlegung des Take-Profits den Ausstieg aus Trades bei einem bestimmten Gewinnniveau ermöglicht. Der Kursleiter zeigt außerdem, wie man den Größenparameter im Kaufprozess anpasst, um jedem Trade einen bestimmten Prozentsatz der verfügbaren Mittel zuzuweisen. Obwohl es in diesem Beispiel einige Probleme mit den Verkaufstaktiken gibt, bietet das Video nützliche Einblicke in die Verwendung von backtesting.py zum Erstellen und Testen von Handelsstrategien.

  • 01:00:00 Das Video bespricht verschiedene Möglichkeiten zur Implementierung der Positionsgröße beim Backtesting. Eine Möglichkeit besteht darin, eine Aktie nach der anderen zu kaufen und zu verkaufen, anstatt einen Prozentsatz des verfügbaren Bargelds, was für den Einstieg in eine Position oder die Mittelung der Dollarkosten nützlich sein kann. Das Video zeigt die Änderung einer Crossover-Strategie in eine auf dem RSI-Indikator basierende Strategie, die kauft, wenn der letzte RSI-Wert kleiner als das untere Band ist. Das Video zeigt auch, dass Trades aus dem Backtest als Pandas-Datenrahmen extrahiert werden können, einschließlich Ein- und Ausstiegsdaten und anderer wichtiger Kennzahlen. Die Gewerke können in andere Visualisierungstools exportiert werden, beispielsweise Excel oder andere Python-Skripte.

  • 01:05:00 Der Ersteller führt in backtesting.py die Funktion „Balken seit“ ein, mit der sich die Anzahl der Bars seit dem letzten Erfüllen einer bestimmten Handelsbedingung ermitteln lässt. Diese Funktion kann ein hervorragendes Werkzeug zur Optimierung von Strategien sein und verhindert, dass viele if-Anweisungen geschrieben werden müssen, um die Daten der vorangegangenen Tage zu vergleichen. Der Ersteller verwendet das Beispiel, nur zu verkaufen, wenn der tägliche RSI an drei aufeinanderfolgenden Tagen über der Obergrenze liegt. Darüber hinaus erörtert er, wie man rohe Handelsdaten für weitere Analysen extrahiert und wie der Open-Source-Charakter von backtesting.py es Benutzern erleichtert, die Bibliothek an ihre spezifischen Bedürfnisse anzupassen. Der Abschluss des Tutorials lädt die Lernenden ein, die Dokumentation zu backtesting.py zu erkunden, um weitere Details und Funktionen zu entdecken, die ihnen zum Aufbau und zur Optimierung ihrer Backtesting-Infrastruktur zur Verfügung stehen.

  • 01:10:00 Der Redner schließt den Kurs auf backtesting.py ab, indem er die Zuschauer ermutigt, sich bei Fragen oder Bedenken an ihn zu wenden. Er wünscht ihnen auch viel Glück bei ihren Backtesting-Bemühungen und erinnert sie daran, Spaß zu haben.
Backtesting.py - Full course in python
Backtesting.py - Full course in python
  • 2022.04.26
  • www.youtube.com
A full course covering all you need to know about the backtesting.py python library. Backtesting.py is a lightweight backtesting framework in the style of Ba...