Python im algorithmischen Handel - Seite 17

 

Channel-Breakout-Indikator in Python



Channel-Breakout-Indikator in Python

Hallo! Heute werden wir uns eingehend mit Beispielen für Preiskanalausbrüche befassen, die von einem Algorithmus generiert werden. Später zeige ich Ihnen den Code, den Sie über den Link in der Beschreibung unten kostenlos herunterladen können. Beginnen wir damit, zu verstehen, was ein Preiskanalausbruch ist.

Der Preiskanalausbruch ist ein technisches Analysetool, das von Händlern verwendet wird, um potenzielle Preisausbrüche zu identifizieren. Dabei wird ein Kanal um die Preisbewegung herum erstellt, der die Höchst- und Tiefstpunkte des Preises über einen bestimmten Zeitraum darstellt. Wenn der Preis aus diesem Kanal ausbricht, kann dies auf eine mögliche Trendwende oder eine Marktchance hinweisen.

Das Interessante daran ist, dass wir den Prozess der Identifizierung von Kanälen und potenziellen Ausbrüchen mithilfe von Python automatisieren können. In diesem Video führe ich Sie durch die Schritte des Algorithmus und stelle Ihnen den Code zur Verfügung, der es Ihnen ermöglicht, ihn entsprechend Ihren Handelspräferenzen und dem Vermögenswert, für den Sie ihn verwenden werden, zu ändern und zu optimieren.

Lassen Sie uns die in der Tabelle gezeigten Beispiele analysieren. Die schwarzen Sterne stellen die vom Algorithmus erkannten Ausbrüche dar. Die Sterne unter den Kerzen signalisieren einen zukünftigen Aufwärtstrend, während die Sterne über den Kerzen einen zukünftigen Abwärtstrend anzeigen. Diese Ausbrüche basieren auf vom Algorithmus identifizierten Kanälen.

Um den Algorithmus zu erklären, betrachten wir das erste Beispiel. Wir haben einen Abwärtstrend, gefolgt von einem Ausbruch unter einen bestimmten Kanal. Der Stern unter der Kerze zeigt einen zukünftigen Abwärtstrend an. Es ist wichtig zu beachten, dass sich dieser bestimmte Kanal von dem im Diagramm angezeigten unterscheidet. Der Algorithmus erkennt Kanäle basierend auf vorherigen Kerzen.

Ein weiteres Beispiel ist ein Ausbruch über einen Kanal, der einen zukünftigen Aufwärtstrend signalisiert. Wir können diese Ausbrüche und ihre Beziehung zu den vom Algorithmus erkannten Kanälen beobachten. Der Algorithmus verwendet drei Erkennungspunkte: Pivot-Punkte, Kanalerkennung und Breakout-Erkennung.

Zunächst werden Pivot-Punkte erkannt, bei denen es sich um Kerzen mit hohen Werten im Vergleich zu benachbarten Kerzen oder niedrigen Werten im Vergleich zu benachbarten Kerzen handelt. Der Algorithmus prüft, ob auf jeder Seite zwei Kerzen als Pivot-Hochs oder -Tiefs vorliegen. Diese Drehpunkte dienen als Referenzpunkte für Anpassungslinien zur Definition von Kanälen.

Als Nächstes passt der Algorithmus Linien an die Pivot-Hochs und -Tiefs an und erstellt so den Kanal. In diesem Schritt werden die oberen und unteren Grenzen des Kanals identifiziert. Der Kanal repräsentiert den potenziellen Bereich der Preisbewegung.

Die dritte Phase ist die Ausbruchserkennung. Der Algorithmus bestimmt, ob ein Ausbruch stattgefunden hat, indem er die aktuelle Kerze mit dem Kanal vergleicht. Die Ausbruchsbedingung wird basierend auf der Position der Eröffnungs- und Schlusskurse relativ zum Kanal definiert. In diesem Video betrachten wir Ausbrüche oberhalb und unterhalb des Kanals.

In Python haben Sie die Flexibilität, die Ausbruchsbedingungen zu ändern und Ihre eigenen Muster basierend auf Ihren Handelspräferenzen und dem von Ihnen gehandelten Vermögenswert zu definieren. Der im Link bereitgestellte Code dient als Ausgangspunkt für Ihre Experimente.

Basierend auf den gezeigten Beispielen mit dem täglichen Zeitrahmen und den Euro/US-Dollar-Preisen scheint der Algorithmus gut zu funktionieren. Es sind jedoch weitere Tests und Analysen erforderlich. Lassen Sie uns nun in den Code eintauchen.

In die Jupyter Notebook-Datei importieren wir die notwendigen Bibliotheken: pandas, numpy, plotly und scipy.stats. Wir importieren auch eine CSV-Datendatei mit täglichen Candlestick-Preisen in Euro/US-Dollar von 2003 bis 2023.

Der Code beginnt mit der Definition einer Funktion, um zu erkennen, ob eine Kerze ein Drehpunkt ist. Es benötigt zwei Argumente: den zu testenden Kerzenindex und den Fensterparameter, der die Anzahl der zu berücksichtigenden benachbarten Kerzen bestimmt. Die Funktion prüft, ob die Höchst- und Tiefstwerte der aktuellen Kerze höher oder niedriger sind als die Höchst- und Tiefstwerte benachbarter Kerzen. Es weist Beschriftungen (0, 1, 2 oder 3) basierend auf dem Pivot-Typ (hoch, niedrig oder beides) zu.

Um Ausbrüche von Preiskanälen in einem Candlestick-Chart zu erkennen, können Sie die folgenden Schritte ausführen:

  1. Definieren Sie die Anzahl der Rückkerzen, die Sie für die Kanalerkennung berücksichtigen möchten. Dies bestimmt die Länge der Kanäle.
  2. Iterieren Sie über die Kerzen im Diagramm.
  3. Erfassen Sie für jede Kerze die Tiefst- und Höchstwerte der vorherigen Rückkerzen.
  4. Verwenden Sie die lineare Regression, um die Steigung und den Achsenabschnitt der Linien zu berechnen, die die Pivot-Tiefs und Pivot-Hochs verbinden.
  5. Überprüfen Sie, ob die Steigungswerte nicht NaN (keine Zahl) sind, was darauf hinweist, dass ein gültiger Kanal gebildet werden könnte.
  6. Wenn ein gültiger Kanal erkannt wird, zeichnen Sie die Kanallinien (gestrichelte Linien) und die Pivotpunkte (blaue Punkte für Tiefststände, rote Punkte für Höchststände) im Candlestick-Diagramm ein.

Die allgemeine Idee besteht darin, die Trendlinien zu identifizieren, die die Preisbewegungen innerhalb der angegebenen Anzahl von Rückkerzen umfassen. Durch die Erkennung von Ausbrüchen aus diesen Kanälen können Sie möglicherweise erhebliche Preisbewegungen erkennen und fundierte Handelsentscheidungen treffen.

Es ist wichtig zu beachten, dass es sich bei dem zuvor bereitgestellten Code um ein vereinfachtes Beispiel handelt. Abhängig von Ihren spezifischen Handelsanforderungen müssen Sie den Code möglicherweise ändern und verfeinern, um ihn an Ihre Bedürfnisse anzupassen. Erwägen Sie außerdem die Einbeziehung von Risikomanagementstrategien, anderen Indikatoren und Faktoren, die für Ihren Handelsansatz relevant sind, wenn Sie Channel-Breakout-Techniken für echte Handelszwecke verwenden.

Channel Break Out Indicator In Python
Channel Break Out Indicator In Python
  • 2023.02.23
  • www.youtube.com
In this video, you'll learn how to use Python to implement the Price Channel Breakout Indicator and how it can be used to identify profitable trading opportu...
 

ChatGPT-Handelsstrategie-Herausforderung



ChatGPT-Handelsstrategie-Herausforderung

Hallo und willkommen zu unserem neuesten Experiment. In diesem Video werde ich die Leistungsfähigkeit der KI demonstrieren, indem ich sie mit der Erfahrung eines echten menschlichen Händlers vergleiche. Wir werden uns mit der Preiskanal-Breakout-Strategie befassen und unser KI-Modell ChatGPT auf die Probe stellen, um zu sehen, wie es funktioniert. Wenn wir etwas Interessantes entdecken, werde ich im nächsten Video meinen eigenen Algorithmus schreiben und die Leistungsergebnisse vergleichen. Später werde ich auch den Python-Code teilen, den ich in diesem Video verwenden werde. Sie können es über den Link in der Beschreibung unten herunterladen, wenn Sie neugierig und bereit sind, zu experimentieren und unsere Strategie zu erweitern. Also lehnen Sie sich zurück, entspannen Sie sich und lassen Sie uns das genießen.

Wenn wir über Channel-Breakout-Indikatoren sprechen, berücksichtigen wir normalerweise Candlestick-Chartmuster und Fraktalpunkte. Der Ausbruch erfolgt typischerweise, wenn der Preis einen Kanal überschreitet, und wir gehen davon aus, dass sich der Trend nach dem Ausbruch zumindest für eine Weile in die gleiche Richtung fortsetzt. Heute werden wir versuchen, ChatGPT dazu zu bringen, den Code für uns zu generieren, insbesondere für die Preiskanal-Breakout-Strategie.

Bevor wir in unser Experiment mit ChatGPT eintauchen, werde ich im nächsten Video die gleiche Strategie, den Ausbruch aus dem Preiskanal, auf meine Weise programmieren. Dadurch können wir die Ergebnisse vergleichen und die Kontrolle hervorheben, die wir über jedes einzelne Detail unseres Programms haben. Also bleiben Sie dran und legen wir los.

Beginnen wir nun mit der Definition der Preisausbruchsstrategie. Bei diesem Handelsansatz geht es darum, wichtige Unterstützungs- und Widerstandsniveaus mithilfe technischer Analysetools wie Trendlinien und Diagrammmuster zu identifizieren. Achten Sie genau auf Niveaus, die in der Vergangenheit mehrmals getestet wurden, und beobachten Sie die Preisbewegung auf diesen Niveaus. Sobald wir die Schlüsselebenen identifiziert haben, können wir Ein- und Ausstiegsregeln festlegen.

Die Festlegung von Ein- und Ausreiseregeln ist der anspruchsvollste Teil der Strategie. Dabei geht es darum, zu entscheiden, zu welchem Preisniveau Sie in einen Handel einsteigen und wann Sie aussteigen, um Gewinne mitzunehmen oder potenzielle Verluste zu begrenzen. Sobald wir eine Position eröffnen, ist es von entscheidender Bedeutung, die Preisbewegungen des Vermögenswerts zu überwachen. Wir sollten Stop-Loss-Orders verwenden, um potenzielle Verluste zu begrenzen, falls der Handel zu unseren Ungunsten verläuft.

Nachdem wir die Eintrittsregeln festgelegt und den Handel verwaltet haben, müssen wir die offenen Geschäfte überwachen. Wenn sich der Preis weiterhin in die erwartete Richtung bewegt, können wir erwägen, unsere Ausstiegsstrategie anzupassen, um zusätzliche Gewinne zu erzielen. Dies erfordert eine kontinuierliche Überwachung und Anpassung an die sich ändernden Marktbedingungen.

Hier ist eine Aufschlüsselung der Strategie:

  1. Identifizieren Sie wichtige Unterstützungs- und Widerstandsniveaus: Verwenden Sie technische Analysetools wie Trendlinien und Diagrammmuster, um Niveaus zu identifizieren, die in der Vergangenheit mehrfach getestet wurden. Diese Ebenen fungieren als Unterstützung oder Widerstand und bilden die Kanäle.

  2. Definieren Sie das Breakout-Level: Nachdem Sie die Kanäle identifiziert haben, bestimmen Sie das Breakout-Level. Dies ist das Preisniveau, bei dem sich der Preis über die Kanalgrenzen hinaus bewegt. Dies deutet auf eine mögliche Fortsetzung des Trends hin.

  3. Ein- und Ausstiegsregeln festlegen: Bestimmen Sie die Kriterien für den Einstieg in einen Trade, wenn ein Ausbruch auftritt. Dies kann der Fall sein, wenn der Preis bei einem bullischen Ausbruch über der oberen Kanalgrenze oder bei einem bärischen Ausbruch unter der unteren Kanalgrenze schließt. Legen Sie außerdem Kriterien für den Ausstieg aus dem Handel fest, z. B. Gewinnmitnahmen bei einem bestimmten Zielniveau oder die Verwendung eines Trailing-Stop-Loss zum Schutz vor ungünstigen Preisbewegungen.

  4. Überwachen Sie offene Geschäfte: Sobald ein Geschäft abgeschlossen ist, überwachen Sie die Preisbewegung genau. Passen Sie die Ausstiegsstrategie an, wenn sich der Preis weiterhin positiv entwickelt. Dies könnte darin bestehen, den Stop-Loss nachzuziehen, um Gewinne zu schützen, oder ein neues Zielniveau festzulegen, um zusätzliche Gewinne zu erzielen.

  5. Risikomanagement: Implementieren Sie Risikomanagementtechniken, um potenzielle Verluste zu begrenzen. Dazu kann das Setzen einer Stop-Loss-Order auf einem vorgegebenen Niveau gehören, um den Handel zu beenden, wenn sich der Preis entgegen dem erwarteten Trend bewegt.

  6. Kontinuierliche Anpassung: Passen Sie die Strategie an sich ändernde Marktbedingungen an. Die Strategie zum Durchbrechen des Preiskanals erfordert eine kontinuierliche Überwachung und Anpassung, um die besten Handelsmöglichkeiten zu nutzen.

Indem Sie diese Schritte befolgen und sie auf den spezifischen Markt und Zeitrahmen anwenden, in dem Sie handeln, können Sie die Strategie zum Ausbruch aus dem Preiskanal umsetzen. Denken Sie daran, dass die Wirksamkeit der Strategie von verschiedenen Faktoren abhängen kann und es wichtig ist, die Strategie vor der Anwendung im Echtzeithandel erneut zu testen und zu validieren.

ChatGPT Trading Strategy Challenge
ChatGPT Trading Strategy Challenge
  • 2023.02.03
  • www.youtube.com
In this video, we will be exploring the use of ChatGPT in generating a profitable trading strategy. The goal of this strategy is to beat the performance of a...
 

Meistern Sie den FOREX-Grid-Handel mit automatisierter Absicherungsstrategie mit Python


Meistern Sie den FOREX-Grid-Handel mit automatisierter Absicherungsstrategie mit Python

Im vorherigen Video haben wir das Grid-Handelssystem auf dem Forex-Markt getestet und festgestellt, dass es gute Ergebnisse mit hohen Renditen und einem außergewöhnlich scharfen Verhältnis liefert. Aufgrund Ihrer Kommentare haben wir jedoch festgestellt, dass einige Details korrigiert werden mussten, um einen genaueren Backtest durchführen zu können. Infolgedessen haben wir die vorgeschlagenen Änderungen an unserem Algorithmus vorgenommen.

Wenn Sie das vorherige Video, in dem wir die Grid-Strategie detailliert beschrieben haben, noch nicht gesehen haben, empfehle ich Ihnen, es zuerst anzuschauen, da es ein tieferes Verständnis der Strategie vermittelt. Den Link zu diesem Video finden Sie in der Beschreibung unten. Darüber hinaus können Sie die aktualisierte Version des Python-Codes über den bereitgestellten Link herunterladen.

Nach der Implementierung der Codeänderungen verfügen wir immer noch über ein potenziell bevorzugtes System, abhängig vom verwendeten Parametersatz. Bitte beachten Sie, dass ich nicht viel Zeit damit verbracht habe, die Parameter zu optimieren. Sie können also den Code herunterladen und damit experimentieren, sie nach Ihren Wünschen anzupassen. Dadurch können Sie die Risikostufe nach Ihren Wünschen anpassen. Sie können entweder mehr Risiko auf Kosten einer Verringerung der Sharp Ratio einbeziehen oder das Risiko und die Rendite verringern und gleichzeitig die Sharp Ratio erhöhen.

Lassen Sie uns nun die spezifischen Änderungen besprechen, die an der vorherigen Version des Codes vorgenommen wurden. Zunächst haben wir einen der Parameter im Zusammenhang mit dem Take-Profit/Stop-Loss-Verhältnis entfernt. Wir haben erkannt, dass dieses Verhältnis innerhalb der Strategie selbst geändert werden sollte, sodass es an dieser Stelle nicht festgelegt werden muss. Die in der Vorgängerversion verwendeten Funktionen bleiben gleich.

Die erste wesentliche Änderung betraf die Losgröße. In der Vorgängerversion wurde die Losgröße auf einen Wert unter eins festgelegt, der einen Prozentsatz des aktuellen Eigenkapitals angibt. Allerdings verstieß dies gegen die Regeln der Grid-Strategie, da wir in beide Richtungen mit unterschiedlichen Losgrößen handelten. Um dies zu korrigieren, legen wir die Losgröße als festen Wert fest (in diesem Beispiel 50).

Die zweite wichtige Änderung betrifft die Backtest-Funktion. Wenn wir früher einen Trade eröffneten und dann versuchten, einen entgegengesetzten Trade oder einen Trade in die entgegengesetzte Richtung zu eröffnen, schloss die Backtesting-Funktion den vorherigen Trade. Das bedeutete, dass die Backtesting-Funktion unsere Verkaufsposition schließen würde, wenn wir zuerst verkauften und dann die gleiche Menge kauften. Um Backtesting zu ermöglichen, zwei Geschäfte unabhängig voneinander in entgegengesetzte Richtungen zu eröffnen, haben wir den Absicherungsparameter auf „true“ gesetzt. Dies ermöglicht gleichzeitige Positionen in der entgegengesetzten Richtung auf denselben Vermögenswert. Darüber hinaus setzen wir den Parameter „Exklusive Bestellungen“ auf „false“, was bedeutet, dass eine Bestellung die vorherige Bestellung nicht storniert.

Für die Stop-Loss-Werte legen wir sie auf das 1,5-fache des Rasterabstands und den Take-Profit auf das 0,5-fache des Rasterabstands fest. Das Take-Profit/Stop-Loss-Verhältnis ist auf 0,5 festgelegt. Bitte beachten Sie, dass es sich hierbei um Zufallsparameter handelt, die für das Beispiel verwendet werden. In einem realen System ist es wichtig sicherzustellen, dass der Stop-Loss über dem Take-Profit liegt, da die Strategie auf der Unruhe des Marktes beruht, um Gewinne zu erzielen.

Unter Verwendung dieser Parameter, eines Geldkontos von 500 $ und einer Marge von 1 zu 10 haben wir über einen Datenzeitraum von zwei Monaten die folgenden Ergebnisse erhalten: eine Renditequote von 13,49, eine scharfe Quote von 3,8 und eine Gewinnquote von 72 %. Die Eigenkapitalkurve zeigt eine zunehmende Steigung mit einigen Drawdown-Bereichen.

Um das Risiko zu verringern und die Sharp Ratio zu erhöhen, könnten Sie erwägen, mit zusätzlichem Bargeld zu beginnen oder die Marge anzupassen. Wenn man beispielsweise mit 1.000 US-Dollar beginnt und eine Marge von 1 zu 10 beibehält, verringert sich die Rendite innerhalb von zwei Monaten auf 1,7 %, aber die starke Quote steigt auf 4,9. Dies weist darauf hin, dass das Risiko mit dieser Parameteränderung abgenommen hat.

Bedenken Sie, dass es in diesem System viele Parameter gibt, mit denen man arbeiten kann, und dass es entscheidend ist, die richtige Balance zu finden. Sie können auch mit der Änderung der Stop-Loss- und Take-Profit-Verhältnisse experimentieren.

Es ist wichtig zu beachten, dass nicht alle Broker Absicherungsgeschäfte zulassen, was bedeutet, dass Sie möglicherweise nicht gleichzeitig entgegengesetzte Positionen für denselben Vermögenswert eröffnen können. Dies kann vom Makler und Ihrem Standort abhängen. Einige Zuschauer aus den USA erwähnten in den Kommentaren, dass dies in ihrer Region nicht erlaubt sei. Daher ist es ratsam, vor der Umsetzung dieser Strategie mit Ihrem Broker zu sprechen, um sicherzustellen, dass sie mit seinen Richtlinien übereinstimmt.

Denken Sie abschließend daran, dass Backtesting der erste Schritt bei der Untersuchung eines Systems ist, aber nicht ausreicht. Es ist wichtig, die Strategie live am Markt mithilfe eines Papierkontos zu testen, da dies den Spread der gehandelten Währung berücksichtigt und sich auf die erwarteten Ergebnisse auswirken kann.

Master FOREX Grid Trading with Automated Hedging Strategy using Python
Master FOREX Grid Trading with Automated Hedging Strategy using Python
  • 2023.01.19
  • www.youtube.com
Learn how to enhance your FOREX grid trading with an Automated Hedging Strategy using Python!📈💻 In this video, we'll delve into the concept of grid trading...
 

Absicherungsstrategie für den Handel mit Python



Absicherungsstrategie für den Handel mit Python

Hallo zusammen, heute werden wir die Grid-Trading-Strategie testen. Diese Strategie ist für ihre Einfachheit bekannt und erfordert keine technischen Indikatoren zur Bestimmung des Trends. Das bedeutet, dass wir den Trend nicht im Voraus erraten müssen. Beim Grid-Trading handelt es sich um den gleichzeitigen Handel in Long- und Short-Richtung, was ihn für den algorithmischen Handel geeignet macht.

Um diese Strategie zu bewerten, führen wir einen Backtest mit der Python-Sprache durch. Wir werden historische Daten über zwei Monate mit einem Zeitrahmen von fünf Minuten verwenden. Die Backtest-Ergebnisse zeigen einen stetigen Anstieg des Eigenkapitals im Testzeitraum und die Strategie liefert beeindruckende Leistungskennzahlen. Die Sharpe Ratio, die die risikobereinigten Renditen misst, liegt bei etwa 5,7.

Wenn Sie sich für den Codierungsteil interessieren, können Sie die Jupyter Notebook-Datei über den in der Beschreibung unten angegebenen Link herunterladen. Die Strategie hat für den Autor eine persönliche Bedeutung, da er sich daran erinnert, wie er mit diesem System aus einem kleinen Konto eine beträchtliche Summe machte, als er mit dem Trading als Hobby begann.

Das Konzept der Grid-Trading-Strategie besteht darin, ein Raster von Preisniveaus auf dem Chart zu erstellen. Immer wenn der Preis diese Gitterlinien überschreitet, eröffnen wir sowohl Long- als auch Short-Positionen. Der Take-Profit-Level wird für jede Position an der nächsten Rasterlinie festgelegt. Wie in einem Beispieldiagramm gezeigt, besteht die Strategie darin, die anfänglichen Long- und Short-Positionen zu eröffnen und anschließend die Gewinnposition auf der nächsten Rasterebene zu schließen. Dann werden jedes Mal, wenn eine Gitterlinie überschritten wird, zwei zusätzliche Positionen eröffnet, eine Long- und eine Short-Position.

Eine Herausforderung bei dieser Strategie besteht darin, die Verlustgeschäfte zu verwalten, die an den Rändern des Rasters offen bleiben. Einige Positionen erreichen möglicherweise nie ihre Take-Profit-Werte, was zu einer Schwierigkeit im System führt. Zur Bewältigung dieser Situation können verschiedene Ansätze eingesetzt werden. Einige Händler entscheiden sich möglicherweise dafür, die verbleibenden Geschäfte am Ende des Handelstages zu schließen, während andere alle paar Stunden berechnen, ob sie sich insgesamt in einer Gewinnsituation befinden, und alles schließen, um mit einem neuen Raster von vorne zu beginnen. Die Lösung hängt von zusätzlichen Parametern ab, wie dem Zeitrahmen, der maximal zulässigen Anzahl paralleler Trades und der Gitterentfernung.

Im Codierungsteil wendet der Autor für jeden Trade einen Stop-Loss-Wert an, indem er die Average True Range (ATR) verwendet. Dieser Stop-Loss-Wert wird zunächst auf Grundlage des Rasterabstands berechnet, dann wird er jedoch mithilfe der ATR verfeinert. Die ATR berücksichtigt die Volatilität des Marktes zum Zeitpunkt der Platzierung der Geschäfte. Der Autor weist darauf hin, dass dies möglicherweise nicht der beste Ansatz ist, und empfiehlt das Experimentieren mit verschiedenen Parametern, um das optimale Szenario für die Strategie zu finden.

Der Grund dafür, dass dieses System in vielen Fällen funktionieren könnte, liegt darin, dass es Marktgeräusche ausnutzt. Solange der Markt im Raster schwankt, profitiert die Strategie von Preisschwankungen und eröffnet Positionen sowohl in Long- als auch Short-Richtung. Es wird erwartet, dass das System in kürzeren Zeitrahmen, in denen es stärkere Preisschwankungen und daher potenziell höhere Gewinne gibt, eine bessere Leistung erbringt.

Die Strategie bietet zwei Vorteile. Erstens entfällt die Notwendigkeit, den Trend zu erraten, da er keinem bestimmten Trend folgt. Zweitens vereinfacht es den Handelsprozess, indem es sich auf die Verwaltung offener Verlustgeschäfte konzentriert. Bei dieser Strategie gibt es nur einen einstellbaren Parameter, nämlich den Gitterabstand. Allerdings ist die Wahl des geeigneten Zeitrahmens und Rasterabstands für den jeweiligen gehandelten Vermögenswert von entscheidender Bedeutung.

Die bereitgestellte Jupyter Notebook-Datei demonstriert die Umsetzung der Strategie in Python. Der Code importiert verschiedene Bibliotheken, darunter yfinance für den Datenabruf, pandas und numpy für die Datenbearbeitung und pandas_ta für technische Analysefunktionen wie die Berechnung der ATR. Die Daten für das EUR/USD-Paar werden in einem bestimmten Zeitrahmen heruntergeladen.

Als Variablen werden der Rasterabstand, das Take-Profit/Stop-Loss-Verhältnis und der Mittelpreis des Rasters definiert. Der Mittelpreis dient als Durchschnittspreis, um den herum das Netz aufgebaut wird. Die Funktion „generate_grid()“ ist so definiert, dass sie die Rasterebenen basierend auf dem Mittelpreis und dem Rasterabstand generiert. Die Funktion berechnet die obere und untere Ebene des Rasters mithilfe einer Schleife.

Als nächstes wird die Strategielogik implementiert. Der Backtest beginnt mit der Initialisierung von Variablen wie dem Anfangssaldo, der Positionsgröße und dem Stop-Loss-Level. Eine for-Schleife wird verwendet, um jeden Balken in den historischen Daten zu durchlaufen.

Innerhalb der Schleife wird der aktuelle Preis überprüft, um festzustellen, ob er eine der Rasterebenen überschreitet. Tritt ein Cross auf, werden neue Positionen sowohl in Long- als auch Short-Richtung eröffnet. Die Take-Profit- und Stop-Loss-Werte werden auf der Grundlage der Rasterwerte und der Stop-Loss-Distanz festgelegt.

Die Schleife prüft auch, ob offene Positionen ihre Take-Profit- oder Stop-Loss-Level erreichen. Wenn eine Position eines der beiden Niveaus erreicht, wird sie geschlossen und der entsprechende Gewinn oder Verlust verbucht.

Am Ende des Backtests wird die Eigenkapitalkurve erstellt, die das Wachstum des Kontostands im Zeitverlauf zeigt. Die Leistungskennzahlen, einschließlich Gesamtgewinn, Anzahl der Trades, Gewinnrate und Sharpe-Ratio, werden berechnet und angezeigt.

Es ist wichtig zu beachten, dass die Grid-Trading-Strategie zwar im Backtest vielversprechende Ergebnisse gezeigt hat, es jedoch wichtig ist, jede Handelsstrategie gründlich zu bewerten und zu validieren, bevor sie im realen Handel eingesetzt wird. Backtesting hilft bei der Beurteilung der historischen Leistung, garantiert jedoch keine zukünftige Rentabilität.

Um die Implementierungsdetails vollständig zu verstehen und den Code zu erkunden, empfehle ich Ihnen, die in der Beschreibung bereitgestellte Jupyter Notebook-Datei herunterzuladen. Das Notizbuch enthält den vollständigen Code mit detaillierten Kommentaren, die Sie durch den Prozess führen.

Denken Sie daran, dass der Handel mit Risiken verbunden ist und es immer empfohlen wird, einen professionellen Finanzberater zu konsultieren, bevor Sie Anlageentscheidungen treffen.

Hedging Strategy For Trading In Python
Hedging Strategy For Trading In Python
  • 2023.01.12
  • www.youtube.com
Welcome ! In this video we test the grid trading strategy, a simple approach that doesn't require any technical indicators. We use python to test and trade, ...
 

So erstellen Sie einen Trading-Bot in Python



So erstellen Sie einen Trading-Bot in Python

Hallo, in diesem Video zeige ich Ihnen, wie Sie Ihre Handelsstrategie mit Python automatisieren können. Mit anderen Worten, ich führe Sie durch den Prozess der Erstellung Ihres eigenen kostenlosen Trading-Bots, der in Ihrem Namen automatisch Trades ausführen kann und dabei einer bestimmten Strategie folgt. Der Code, den ich verwenden werde, kann über den Link in der Beschreibung unten heruntergeladen werden. Sie können also dem Video folgen und dann die Datei herunterladen, um sie nach Belieben zu verwenden.

Was ich in diesem Video demonstriere, kann für jede Handelsstrategie funktionieren, die als Python-Funktion implementiert werden kann. Dies kann eine hervorragende Möglichkeit sein, Ihre Strategie anhand von Live-Marktdaten zu testen, anstatt sie einfach anhand vergangener Daten zu testen. Wenn Sie Ihre Strategie anhand von Zukunfts- oder Live-Daten testen möchten, können Sie die in diesem Video vorgestellten Techniken nutzen.

Beginnen wir mit dem Öffnen unserer Jupyter Notebook-Datei. Zunächst werde ich zu Testzwecken einige historische Daten herunterladen. Es ist wichtig zu beachten, dass wir diese Daten nicht für den Live-Handel verwenden. Es dient hauptsächlich dem Testen unserer Signalfunktionen. Um die Daten herunterzuladen, verwende ich das YFinance-Modul und rufe die Euro-US-Dollar-Wechseldaten zwischen zwei bestimmten Daten mit einem Zeitrahmen von 15 Minuten ab.

Beachten Sie, dass Yahoo Finance beim Herunterladen von Daten für kurze Zeiträume wie das 15-Minuten-Intervall nur das Herunterladen der Daten der letzten 60 Tage zulässt. Wir können also nicht mehr als 60 Tage auf einmal herunterladen, und dies müssen die letzten 60 Tage ab dem aktuellen Datum sein. Sollten Probleme mit der heruntergeladenen Datei auftreten, überprüfen Sie bitte noch einmal das angegebene Start- und Enddatum.

Sobald wir die Daten heruntergeladen haben, können wir sie testen, indem wir die heruntergeladenen Zeilen überprüfen. Durch Entfernen des „-1“ im Code können wir den gesamten Datenrahmen anzeigen, der aus etwa 3973 Zeilen besteht. Der Datenrahmen enthält Spalten für Datum, Uhrzeit, Eröffnungs-, Höchst-, Tiefst-, Schluss- und angepasste Schlusskurse. In diesem Video verwenden wir keine Volumendaten, Sie können diese jedoch bei Bedarf gerne in Ihre Strategie integrieren.

Der nächste Schritt besteht darin, unseren Signalgenerator zu definieren, eine Funktion, die für die Generierung von Handelssignalen verantwortlich ist. Diese Funktion benötigt einen Datenrahmen als Eingabe, denn wenn wir Live-Daten für unseren Handelsbot streamen, erfassen wir einen Datenrahmen und geben ihn in diese Funktion ein. Die Funktion ermittelt dann, ob ein Signal vorliegt, beispielsweise ein Kaufsignal, ein Verkaufssignal oder kein klares Muster. In diesem Beispiel konzentrieren wir uns auf die Erkennung von Engulfing-Candlestick-Mustern. Bitte beachten Sie jedoch, dass dies keine vollständige Handelsstrategie ist. Es dient dem Zweck dieses Videos und Sie können in dieser Funktion Ihre eigene Signalgeneratorstrategie einfügen.

Die Signalgeneratorfunktion liest die Eröffnungs- und Schlusskurse der aktuellen Kerze und der vorherigen Kerze unter Verwendung des Index -1 bzw. -2. Basierend auf den in der Funktion definierten Bedingungen, wie z. B. der Erkennung eines bärischen Engulfing-Musters oder eines bullischen Engulfing-Musters, wird ein Signalwert von 1 für Verkauf, 2 für Kauf oder 0 für kein Signal zurückgegeben. Um zu überprüfen, ob die Funktion ordnungsgemäß funktioniert, können wir sie mithilfe einiger Codezeilen testen. Durch Durchlaufen der Datenrahmenzeilen und Überprüfen jeder Zeile auf Verschlingungsmuster mithilfe der Signalgeneratorfunktion können wir die generierten Signale in einer Liste speichern. Wir können diese Liste dann als zusätzliche Spalte im Testdatenrahmen hinzufügen. Beim Drucken des Datenrahmens wird die hinzugefügte Spalte angezeigt, und durch die Durchführung einer Wertezählung können wir die Nummer jedes im Datensatz vorhandenen Signaltyps sehen.

Bitte beachten Sie, dass es sich hierbei um ein vereinfachtes Beispiel für den Zweck dieses Videos handelt und es wichtig ist, eine umfassende Handelsstrategie zu entwickeln, die auf Ihren spezifischen Bedürfnissen basiert.

Nachdem wir nun unsere Signalgeneratorfunktion eingerichtet haben, besteht der nächste Schritt darin, den Trading-Bot zu definieren. Der Trading-Bot ist für die Ausführung der Trades basierend auf den generierten Signalen verantwortlich. In diesem Beispiel erstellen wir einen einfachen Trading-Bot, der kauft, wenn er einen Signalwert von 2 empfängt (was ein Kaufsignal anzeigt) und verkauft, wenn er einen Signalwert von 1 empfängt (was ein Verkaufssignal anzeigt). Auch dies ist nur ein einfaches Beispiel, und Sie können den Trading-Bot entsprechend Ihrer spezifischen Handelsstrategie modifizieren.

Die Trading-Bot-Funktion verwendet den Datenrahmen und die generierten Signale als Eingabe. Es initialisiert den Portfolio-Saldo und hält eine Positionsmarkierung, um zu verfolgen, ob wir derzeit eine Position offen haben oder nicht. Anschließend durchläuft es jede Zeile des Datenrahmens, überprüft den Signalwert und führt die entsprechende Kauf- oder Verkaufsaktion durch.

Wenn ein Kaufsignal empfangen wird und wir keine offene Position haben, kauft der Handelsbot den angegebenen Betrag des Vermögenswerts und zieht die Kosten vom Portfoliosaldo ab. Außerdem wird das Positionsflag gesetzt, um anzuzeigen, dass wir jetzt eine offene Position haben. Wenn ein Verkaufssignal empfangen wird und wir eine offene Position haben, verkauft der Handelsroboter die gesamte Position und addiert den Verkaufsbetrag zum Portfoliosaldo. Anschließend wird das Positionsflag zurückgesetzt, um anzuzeigen, dass wir keine offenen Positionen haben.

Um den Trading-Bot zu testen, können wir die Funktion mit dem Testdatenrahmen und den generierten Signalen aufrufen. Wir können auch einen anfänglichen Portfoliosaldo und den Betrag des zu kaufenden oder zu verkaufenden Vermögenswerts angeben. Nachdem wir die Trading-Bot-Funktion ausgeführt haben, können wir den endgültigen Portfoliosaldo ausdrucken, um das Ergebnis zu sehen.

In diesem Beispiel berücksichtigen wir nicht Transaktionskosten, Slippage oder andere Faktoren, die sich auf reale Handelsszenarien auswirken könnten. Es ist wichtig, diese Faktoren bei der Entwicklung Ihres eigenen Handelsbots und Ihrer eigenen Handelsstrategie zu berücksichtigen.

Lassen Sie uns abschließend besprechen, wie Sie diesen Code für den Live-Handel implementieren können. Der bisher von uns entwickelte Code eignet sich zum Backtesting und Testen Ihrer Strategie anhand historischer Daten. Um es für den Live-Handel zu implementieren, müssen Sie es mit einem Echtzeit-Datenfeed und einer Handels-API verbinden, die von Ihrem Broker oder Ihrer Börse bereitgestellt werden. Dazu gehört die Abwicklung des Daten-Streamings und die Erteilung von Handelsaufträgen in Echtzeit auf der Grundlage der vom Handelsbot generierten Signale.

Es stehen verschiedene Python-Bibliotheken und -Pakete zur Verfügung, die Sie bei der Verbindung mit Echtzeit-Datenfeeds und Handels-APIs wie Alpaca, Binance oder Interactive Brokers API unterstützen können. Sie müssen recherchieren und diejenige auswählen, die Ihren Anforderungen am besten entspricht und sich gut in die Börse oder den Broker Ihrer Wahl integrieren lässt.

Denken Sie daran, dass es beim Live-Handel um echtes Geld geht. Daher ist es wichtig, Ihren Code und Ihre Strategie gründlich in einer simulierten Umgebung zu testen, bevor Sie sie für den Live-Handel einsetzen. Beginnen Sie mit kleinen Positionen und erhöhen Sie Ihr Engagement schrittweise, während Sie Vertrauen in die Leistung Ihres Trading-Bots gewinnen.

Das war’s für dieses Video! Ich hoffe, Sie fanden es hilfreich, um zu verstehen, wie Sie Ihre Handelsstrategie mit Python automatisieren können. Denken Sie daran, den Code über den Link in der Beschreibung herunterzuladen und ihn entsprechend Ihren spezifischen Bedürfnissen und Ihrer Strategie zu ändern. Wenn Sie Fragen haben, können Sie diese gerne unten in den Kommentaren hinterlassen. Vielen Dank fürs Zuschauen und viel Spaß beim Handeln!

How To Build A Trading Bot In Python
How To Build A Trading Bot In Python
  • 2022.12.08
  • www.youtube.com
This video shows how to use APIs in python to build a live trading bot. The market is scanned by the bot and the prices are downloaded for analysis. A simple...
 

Python-Backtest: Profitable Scalping-Strategie mit VWAP, Bollinger-Bändern und RSI-Indikatoren



Python-Backtest: Profitable Scalping-Strategie mit VWAP, Bollinger-Bändern und RSI-Indikatoren

Hallo an alle! Heute freue ich mich, Ihnen mitteilen zu können, dass wir einen Gewinner haben. In diesem Video werde ich eine Scalping-Strategie unter Verwendung von V-WAP (Volume Weighted Average Price) Bollinger-Bändern und RSI (Relative Strength Index) zur Bestätigung vorstellen. Bevor ich diese Strategie weitergab, habe ich sie gründlich getestet, um ihre Wirksamkeit sicherzustellen.

Zunächst möchte ich erwähnen, dass dies die erste Scalping-Strategie ist, die wir auf diesem Kanal präsentieren. Scalping kann für Algorithmen aufgrund der verrauschten Daten in kürzeren Zeitrahmen eine Herausforderung darstellen. Ich glaube jedoch, dass diese Strategie diese Herausforderungen bewältigt.

Wenn Sie neu in diesem Kanal sind, können Sie den Python-Code über den Link in der Beschreibung herunterladen. Vergessen Sie nicht, uns zu unterstützen, indem Sie uns abonnieren und einen Kommentar hinterlassen, in dem Sie Ihre Ideen teilen möchten. Ihr Feedback ist wertvoll.

Nach drei Jahren Backtesting beträgt die Gesamtrendite dieser Strategie etwa 300 Prozent. Was mir an dieser Strategie besonders gut gefällt, ist die durchschnittliche Handelsdauer, die bei etwa 51 Minuten liegt. Dies macht es zur schnellsten Handelsabschlussstrategie, die wir bisher demonstriert haben. Der Vorteil eines schnellen Handelsabschlusses sind geringere Übernachtungsgebühren und weniger Stress, da Sie die Ergebnisse Ihrer ausgeführten Geschäfte sofort sehen können.

Im Kommentarbereich fragte jemand nach der Sharpe-Ratio. Ich habe es in diese Strategie einbezogen und es beträgt ungefähr 1,65. Bitte beachten Sie jedoch, dass sich dieser Wert durch Änderungen an den Parametern im Python-Code ändern kann. Sie können das Sharpe-Verhältnis maximieren, indem Sie mit verschiedenen Parameterwerten experimentieren.

Lassen Sie uns in die Details der Strategie eintauchen. Ich verwende den 5-Minuten-Zeitrahmen und die V-WAP-Kurve. Um den Trend zu bestimmen, suche ich nach 15 Kerzen, die konstant über oder unter der V-WAP-Kurve liegen, dargestellt durch die blaue Linie. Wenn 15 Kerzen über der V-WAP-Kurve liegen, deutet dies auf einen Aufwärtstrend hin. Wenn wir unterhalb der V-WAP-Kurve liegen, halte ich das für einen Abwärtstrend.

Für Einstiegspositionen verwende ich Bollinger-Bänder mit einer Länge von 14 und einer Standardabweichung von 2. In einem Aufwärtstrend oberhalb der V-WAP-Kurve suche ich nach Kaufpositionen, wenn eine Kerze unterhalb des unteren Bollinger-Bands schließt. In einem Abwärtstrend, unterhalb der V-WAP-Kurve, warte ich darauf, dass eine Kerze als Verkaufssignal über dem oberen Bollinger-Band schließt.

Zur Bestätigung der Signale verwende ich den RSI. Liegt der RSI unter 45, bestätigt dies ein Kaufsignal. Liegt der RSI über 55, bestätigt dies ein Verkaufssignal.

Zum Festlegen der Take-Profit- und Stop-Loss-Level verwende ich den ATR (Average True Range). Ich schaue auf die letzten sieben Kerzen zurück, berechne den ATR-Wert und multipliziere ihn mit einem Koeffizienten, um die Stop-Loss-Distanz zu bestimmen. Der Take-Profit wird berechnet, indem die Stop-Loss-Distanz mit dem Take-Profit-Stop-Loss-Verhältnis multipliziert wird, das das Risiko-Ertrags-Verhältnis darstellt.

Wie Sie sehen, gibt es mehrere Parameter, die im Python-Code optimiert werden können. Sie können die ATR-Länge, den Koeffizienten, das Take-Profit-Stop-Loss-Verhältnis und andere Indikatorparameter ändern, um zu sehen, wie sie sich auf die Leistung der Strategie über den dreijährigen Backtesting-Zeitraum auswirken. Laden Sie den Code gerne herunter und experimentieren Sie selbst.

Im Python-Code habe ich alle notwendigen Schritte zum Laden und Bereinigen von Daten, zum Hinzufügen technischer Indikatoren (V-WAP, RSI, Bollinger-Bänder), zum Berechnen des Gesamtsignals und zum Visualisieren der Signale im Preisdiagramm bereitgestellt. Der Code beinhaltet auch den Backtesting-Teil, in dem ich die ATR berechne, die Stop-Loss- und Take-Profit-Level festlege und die Trades ausführe.

Bei den Backtesting-Ergebnissen habe ich eine Rendite von 197 Prozent und ein Spitzenkapital von 313 US-Dollar erzielt. Ausgehend von einem Anfangskapital von 10.000 US-Dollar generierte die Strategie einen Gewinn von 19.700 US-Dollar und erreichte ein Endkapital von 29.700 US-Dollar.

Lassen Sie uns nun die wichtigsten Leistungskennzahlen dieser Strategie besprechen. Die Gewinnquote, die den Prozentsatz der profitablen Trades darstellt, beträgt etwa 56 %. Das bedeutet, dass 56 % aller ausgeführten Geschäfte zu einem Gewinn führten. Der durchschnittliche Gewinn pro Trade beträgt etwa 33,10 $, während der durchschnittliche Verlust pro Trade etwa 23,45 $ beträgt.

Um das mit dieser Strategie verbundene Risiko einzuschätzen, können wir uns den maximalen Drawdown ansehen, der den größten Rückgang des Eigenkapitals vom Höhepunkt bis zum Tiefpunkt während des Backtesting-Zeitraums misst. Der maximale Drawdown für diese Strategie beträgt etwa 9 %, was auf ein moderates Risikoniveau hinweist.

Es ist wichtig zu beachten, dass diese Leistungskennzahlen auf historischen Daten basieren und die Leistung in der Vergangenheit keine Garantie für zukünftige Ergebnisse ist. Die Marktbedingungen können sich ändern, und es ist von entscheidender Bedeutung, die Strategie kontinuierlich zu überwachen und an die aktuelle Marktdynamik anzupassen.

Zusammenfassend lässt sich sagen, dass diese Scalping-Strategie unter Verwendung von V-WAP, Bollinger-Bändern und RSI im Backtesting-Zeitraum vielversprechende Ergebnisse gezeigt hat, mit einer Gesamtrendite von 300 % und einer durchschnittlichen Handelsdauer von 51 Minuten. Es ist jedoch wichtig, jede Strategie gründlich zu testen und zu validieren, bevor sie auf den realen Handel angewendet wird, und Faktoren wie Transaktionskosten, Slippage und Marktbedingungen zu berücksichtigen.

Denken Sie daran, dass der Handel mit Risiken verbunden ist, und es wird immer empfohlen, sich weiterzubilden, das Risikomanagement zu üben und professionellen Rat einzuholen, bevor Sie sich auf den Live-Handel einlassen. Ich hoffe, dass Sie diese Strategie aufschlussreich finden und laden Sie gerne den in der Beschreibung bereitgestellten Python-Code herunter, um ihn weiter zu erkunden und nach Ihren Wünschen anzupassen.

Wenn Sie Fragen haben oder weitere Erläuterungen benötigen, zögern Sie bitte nicht, diese zu stellen. Viel Spaß beim Handeln!

Python Backtest: Profitable Scalping Strategy with VWAP, Bollinger Bands and RSI Indicators
Python Backtest: Profitable Scalping Strategy with VWAP, Bollinger Bands and RSI Indicators
  • 2022.10.13
  • www.youtube.com
This video shows a profitable scalping strategy fully backtested in python, this strategy uses the VWAP, Bollinger Bands and the RSI indicators for confirmat...
 

Heiken Ashi-Kerzen in Python für Handelssysteme


Heiken Ashi-Kerzen in Python für Handelssysteme

Heute werden wir uns mit dem Prozess des Hinzufügens von Hiken Ashi-Kerzen in Python befassen und zwei verwandte Strategien zur Verwendung dieser Kerzen untersuchen. Hiken Ashi-Kerzen sind von normalen Kerzenhaltern abgeleitet, die typischerweise im Handel verwendet werden. Jede Hiken Ashi-Kerze wird anhand spezifischer Formeln berechnet. Der Heiken Ashi-Schlusskurs wird durch Mittelung des Eröffnungskurses, Höchst-, Tiefst- und Schlusskurses der aktuellen Kerze ermittelt. Der Heiken Ashi-Eröffnungspreis ergibt sich aus dem Schlusswert der zuvor berechneten Heiken Ashi-Kerze. Der Höchstwert von Heiken Ashi ist das Maximum zwischen dem Höchstwert der normalen Kerze, dem Eröffnungswert der Heiken Ashi-Kerze oder dem Schlusswert der Heiken Ashi-Kerze. Ebenso ist der Heiken Ashi-Tiefwert das Minimum zwischen dem niedrigsten Preis der aktuellen Kerze, dem Eröffnungspreis der aktuellen Heiken Ashi-Kerze oder dem Schlusspreis der aktuellen Heiken Ashi-Kerze.

Zusammenfassend lässt sich sagen, dass die Heiken Ashi-Kerze, abgesehen von den Höchst- und Tiefstwerten, aus gemittelten Werten besteht, was dem Hiken Ashi-Diagramm ein glatteres Aussehen verleiht als normale Kerzen, die einige Händler möglicherweise als weniger verrauscht empfinden. Es ist jedoch wichtig zu beachten, dass Heiken Ashi-Kerzen nicht die tatsächlichen Werte des Marktes darstellen und nicht für Handels- oder Backtesting-Strategien verwendet werden sollten, die auf den tatsächlichen Marktwerten basieren.

Der Zweck dieses Tutorials besteht nicht darin, ein erfolgreiches Heiken-Ashi-System vorzustellen, sondern vielmehr zu demonstrieren, wie man diese Kerzen in Python erstellt und eine algorithmische Strategie zum Backtesten der Ergebnisse entwickelt. Wir werden zwei Strategien mit Heiken Ashi-Kerzen untersuchen.

Die erste Strategie nutzt zwei gleitende Durchschnitte: einen schnellen gleitenden Durchschnitt und einen langsamen gleitenden Durchschnitt. Der Trend wird anhand der relativen Positionen dieser gleitenden Durchschnitte bestimmt. Wenn der schnelle gleitende Durchschnitt über dem langsam gleitenden Durchschnitt liegt, deutet dies auf einen Aufwärtstrend hin, und wenn der schnelle gleitende Durchschnitt unter dem langsam gleitenden Durchschnitt liegt, deutet dies auf einen Abwärtstrend hin. Die Strategie generiert ein Handelssignal, wenn die Heiken Ashi-Kerze den schnellen gleitenden Durchschnitt in Trendrichtung kreuzt. Wenn beispielsweise der schnell gleitende Durchschnitt unter dem langsam gleitenden Durchschnitt liegt und eine Heiken Ashi-Kerze den schnell gleitenden Durchschnitt von oben nach unten kreuzt, löst dies ein Verkaufssignal aus. Umgekehrt löst in einem Aufwärtstrend eine grüne Heiken Ashi-Kerze, die den schnellen gleitenden Durchschnitt von unten nach oben kreuzt, ein Kaufsignal aus.

Die zweite Variante dieser Strategie fügt eine zusätzliche Bedingung hinzu. Es wird nach einer Doji-Kerze gesucht, gefolgt von einer Short-Tail-Kerze in Trendrichtung. Wenn beispielsweise in einem Abwärtstrend auf eine Doji-Kerze eine Short-Tail-Kerze folgt, die über dem schnellen gleitenden Durchschnitt öffnet und darunter schließt, wird ein Verkaufssignal ausgelöst. Das Fehlen langer Dochte oder Schwänze in diesen Kerzen deutet auf eine starke Abwärts- oder Aufwärtsdynamik hin, je nach analysiertem Trend.

Beide Strategien haben ihre eigenen Herausforderungen, wie z. B. die Bestimmung des optimalen Zeitrahmens, die Definition geeigneter Stop-Loss-Positionen und die Gestaltung effektiver Ausstiegsstrategien. Diese Aspekte können die Rentabilität und den Erfolg der Strategien erheblich beeinflussen.

Um diese Strategien in Python zu implementieren, verwenden wir Jupyter Notebook. Wir beginnen mit dem Importieren der erforderlichen Bibliotheken und dem Herunterladen der Aktiendaten für den Russell 1000-Index von 2012 bis 2022. Nachdem wir unnötige Spalten entfernt haben, berechnen wir die Schluss- und Eröffnungskurse von Hiken Ashi sowie die Höchst- und Tiefstwerte von Heiken Ashi die zuvor beschriebenen Formeln. Wir fügen diese Spalten zu unserem Datenrahmen hinzu.

Als nächstes können wir mithilfe des Pandas-Pakets für technische Analysen zusätzliche technische Indikatoren hinzufügen, z. B. gleitende Durchschnitte und den Relative Strength Index (RSI). Dadurch können wir die Heiken Ashi-Kerzen und die zugehörigen Indikatoren auf einem Diagramm visualisieren. Nachdem wir nun unsere Handelssignale und Stop-Loss-Level definiert haben, können wir mit dem Backtesting-Prozess fortfahren. Der nächste Schritt besteht darin, die Rendite für jeden Trade basierend auf den Ein- und Ausstiegspunkten zu berechnen.

Um die Rendite zu berechnen, müssen wir zunächst die Ein- und Ausstiegspreise für jeden Trade ermitteln. Bei einer Kaufposition ist der Einstiegspreis der Schlusskurs der Kerze, wenn das Kaufsignal ausgelöst wird. Der Ausstiegspreis ist der niedrigste Preis zwischen der aktuellen Kerze und den beiden vorherigen Kerzen, der durch das Stop-Loss-Level bestimmt wird.

Ebenso ist bei einer Verkaufsposition der Einstiegspreis der Schlusskurs der Kerze, wenn das Verkaufssignal ausgelöst wird, und der Ausstiegspreis ist der höchste Preis zwischen der aktuellen Kerze und den beiden vorherigen Kerzen.

Sobald wir die Ein- und Ausstiegspreise haben, können wir die Renditen mithilfe der Formel berechnen:

Rendite = (Ausstiegspreis – Einstiegspreis) / Einstiegspreis

Wir werden die Retouren zur weiteren Analyse in einer Liste namens „trade_returns“ speichern. Als nächstes müssen wir die kumulierten Erträge berechnen, um die Gesamtleistung der Strategie im Zeitverlauf zu verfolgen. Dies erfolgt durch Multiplikation der Rendite jedes Trades mit der vorherigen kumulierten Rendite und Addition von 1. Die Formel zur Berechnung der kumulierten Rendite lautet:

Kumulierte Rendite = Kumulierte Rendite * (1 + Rendite)

Wir speichern die kumulierten Renditen in einer Liste namens „cumulative_returns“. Schließlich können wir die kumulierten Renditen grafisch darstellen, um die Leistung der Strategie im Backtesting-Zeitraum zu visualisieren.

Nachdem wir den Backtesting-Prozess durchgeführt und die Handelsrenditen und kumulierten Renditen berechnet haben, können wir die Ergebnisse analysieren, um die Leistung der Handelsstrategie zu bewerten. Eine wichtige zu berücksichtigende Kennzahl ist die Gesamtrentabilität der Strategie. Sie können die Gesamtrendite berechnen, indem Sie 1 vom endgültigen kumulierten Renditewert subtrahieren. Wenn die kumulierte Rendite beispielsweise 1,2 beträgt, bedeutet dies eine Rendite von 20 % auf die ursprüngliche Investition.

Darüber hinaus möchten Sie möglicherweise andere Leistungskennzahlen berechnen, z. B. die durchschnittliche Rendite pro Trade, die Anzahl der erfolgreichen Trades, die Anzahl der verlorenen Trades, den Prozentsatz der erfolgreichen Trades und den maximalen Drawdown. Die durchschnittliche Rendite pro Trade lässt sich ermitteln, indem man die Summe aller Trade-Renditen durch die Gesamtzahl der Trades dividiert. Diese Kennzahl gibt einen Hinweis auf die durchschnittliche Rentabilität jedes Handels.

Um die Anzahl der erfolgreichen und verlorenen Trades zu berechnen, können Sie die Anzahl der Trade-Erträge zählen, die größer oder gleich 0 sind (gewinnende Trades) und die Anzahl der Trade-Erträge, die kleiner als 0 sind (verlierende Trades). Der Prozentsatz der erfolgreichen Trades lässt sich berechnen, indem man die Anzahl der erfolgreichen Trades durch die Gesamtzahl der Trades dividiert und mit 100 multipliziert.

Der maximale Drawdown misst den größten Rückgang der kumulierten Renditen während des Backtesting-Zeitraums von der Spitze bis zur Talsohle. Es bietet Einblick in das potenzielle Risiko und die Abwärtsvolatilität der Strategie. Durch die Analyse dieser Leistungskennzahlen können Sie wertvolle Erkenntnisse über die Wirksamkeit der Handelsstrategie gewinnen und fundierte Entscheidungen hinsichtlich ihrer zukünftigen Verwendung oder möglichen Änderungen treffen.

Denken Sie daran, dass es sich beim Backtesting um eine historische Simulation handelt und keine Garantie für zukünftige Ergebnisse ist. Es ist wichtig, verschiedene Faktoren zu berücksichtigen und eine gründliche Analyse durchzuführen, bevor eine Handelsstrategie in realen Szenarien angewendet wird.

Heiken Ashi Candles In Python For Trading Systems
Heiken Ashi Candles In Python For Trading Systems
  • 2022.09.24
  • www.youtube.com
Heiken Ashi candlesticks are popular candlestick in technical analysis. In this video, I will show you how to use Heiken Ashi candles for trading systems in ...
 

Revolutionieren Sie Ihre Aktienhandelsstrategie mit automatisiertem Handel in Python



Revolutionieren Sie Ihre Aktienhandelsstrategie mit automatisiertem Handel in Python

Heute werden wir eine Handelsstrategie erkunden, die speziell für Long-Positionen unter Verwendung des Relative Strength Index (RSI) und des Average Directional Index (ADX) entwickelt wurde. Trotz ihrer Einfachheit hat diese Strategie vielversprechende Ergebnisse gezeigt. Die Idee wurde von jemandem im Kommentarbereich vorgeschlagen und die Parameter schienen sowohl vertraut als auch überzeugend zu sein. Also beschloss ich, es auf die Probe zu stellen und die Ergebnisse zu teilen, was sich als recht zufriedenstellend herausstellte.

Die durch den Backtest generierte Eigenkapitalkurve zeigte über den gesamten Testzeitraum einen nahezu konstanten Anstieg und erreichte eine Spitzenrendite von 360. Wenn Sie neu in diesem Kanal sind, finden Sie den zum Download verfügbaren Code in der Beschreibung. Vergessen Sie nicht, uns zu unterstützen, indem Sie uns abonnieren und einen Kommentar hinterlassen. Wir freuen uns über neue Ideen, genau wie die, um die es in diesem Video geht.

Lassen Sie uns nun in die Strategie selbst eintauchen. Wir verwenden den täglichen Zeitrahmen und gehen eine Long-Position ein, wenn zwei Bedingungen erfüllt sind: Erstens, wenn der Zwei-Tages-RSI unter 25 liegt, was auf einen überverkauften Zustand hinweist, und zweitens, wenn der ADX (14) über 20 liegt, was darauf hindeutet ein Trendmarkt. Wir verlassen die Long-Position, wenn der RSI 75 überschreitet.

Um falsche Signale zu vermeiden und zu verhindern, dass Trades zu lange offen bleiben, wenn der RSI unter die Schwelle von 75 fällt, habe ich zwei zusätzliche Bedingungen hinzugefügt. Die erste Bedingung besteht darin, zu prüfen, ob die Kerzen über einer einfachen Kurve des gleitenden Durchschnitts gehandelt werden, was auf einen Aufwärtstrend hinweist. Nur in diesem Fall dürfen wir Long-Positionen eingehen. Die zweite Bedingung besteht darin, einen Stop-Loss-Wert festzulegen, der als niedrigster Preis der letzten beiden Kerzen abzüglich eines bestimmten Prozentsatzes angenommen wird. In diesem Backtest habe ich den Stop-Loss-Prozentsatz auf zwei Prozent gesetzt. Sie können diesen Wert nach Ihren Wünschen oder beim Testen mit unterschiedlichen Daten anpassen.

Um diese Bedingungen in Python umzusetzen, habe ich den notwendigen Code geschrieben und einen Backtest durchgeführt. Im Code laden wir die Daten, bereinigen sie, indem wir Tage ohne Bewegungen entfernen, und drucken den Datenrahmen aus, um seinen Inhalt zu überprüfen. Anschließend berechnen wir den exponentiellen gleitenden Durchschnitt (EMA) mit einer Länge von 200 zur Trenderkennung sowie den RSI mit einer Länge von 2 und den ADX mit einer Länge von 14. Wir bereinigen den Datenrahmen erneut und drucken einen Slice aus Überprüfen Sie die Spalten, die wir verwenden werden.

Als nächstes habe ich eine Funktion namens add_ema_signal implementiert, die den Trend basierend auf der Anzahl der Kerzen bestimmt, die über oder unter der Kurve des gleitenden Durchschnitts gehandelt werden. Ich habe diese Zahl auf sechs gesetzt, da es in früheren Videos gut funktioniert hat. Dann habe ich eine Funktion namens total_signal erstellt, mit der wir das Signal für die Eingabe einer Long-Position berechnen. Wir durchlaufen jede Zeile des Datenrahmens und prüfen, ob der RSI unter oder gleich 25 liegt, der ADX über 20 liegt und das EMA-Signal gleich zwei ist (was auf einen Aufwärtstrend hinweist). Wenn diese Bedingungen erfüllt sind, speichern wir im Datenrahmen einen Signalwert von zwei.

Durch Drucken des Datenrahmens können wir die Signale im Balkendiagramm visualisieren. Die violetten Punkte stellen die Kaufsignale dar. Obwohl ich nicht auf die Details jeder Zeile im Code eingehen werde, finden Sie ausführliche Erklärungen in früheren Videos auf diesem Kanal, insbesondere in der Playlist „Python für algorithmischen Handel“.

Als ich zum Backtesting-Teil überging, habe ich das Paket backtesting.py verwendet. Ohne auf die Einzelheiten einzugehen, habe ich den Stop-Loss-Prozentsatz auf 2 % festgelegt und zusätzliche Bedingungen zum Schließen von Trades eingefügt, die eine bestimmte Anzahl von Tagen lang offen waren oder wenn der RSI 75 überschreitet. Es ist erwähnenswert, dass der Code immer noch entsprechende Zeilen enthält auf Short-Positionen, obwohl sich diese Strategie ausschließlich auf Long-Positionen konzentriert. Diese Zeilen können geändert oder entfernt werden, wenn Sie sich entscheiden, die Strategie um Short-Positionen zu erweitern.

Wenn das Signal gleich zwei ist und keine offenen Geschäfte vorliegen, steigen wir mit einer Long-Position unter Verwendung des Stop-Loss-Werts in den Markt ein. Die Handelsgröße ist auf 99 % des aktuellen Eigenkapitals festgelegt. Der Backtest beginnt mit 1.000 $ in bar und einem Hebel von 1:5 (Marge von 1/5). Zum Vergleich mit früheren Strategien wurden keine Provisionen berücksichtigt.

Die Backtest-Ergebnisse deuten auf eine Rendite von 200 US-Dollar und ein Spitzenkapital von 3.595 US-Dollar hin. Die Gewinnquote liegt bei 73 %, und im zehnjährigen Testzeitraum wurden insgesamt 102 Trades ausgeführt. Dies entspricht durchschnittlich 10 Trades pro Jahr im täglichen Zeitrahmen. Die Darstellung der Aktienkurve zeigt einen stetigen Wertanstieg mit geringfügigen Rückgängen in bestimmten Zeiträumen.

Es ist wichtig zu beachten, dass ich keinen der im Kommentarbereich vorgeschlagenen Parameter geändert habe. Die RSI-Länge bleibt bei 2, die ADX-Länge bei 14 und die EMA-Länge bei 200. Sie können diese Werte jedoch noch feinabstimmen und mit verschiedenen Aktien oder Märkten experimentieren, um die Ergebnisse möglicherweise zu verbessern und eine zufriedenstellendere Konfiguration zu finden.

Diese Strategie bietet einen einfachen, aber effektiven Ansatz für Long-Positionen. Ich empfehle Ihnen, den Code über den Link in der Beschreibung herunterzuladen und damit zu experimentieren. Der Code ist relativ kurz und anfängerfreundlich. Viel Spaß beim Erkunden dieser Strategie und bleiben Sie gespannt auf unser nächstes Video. Handeln Sie auf Nummer sicher und bis zum nächsten Mal!

Revolutionize Your Stock Trading Strategy with Automated Trading in Python
Revolutionize Your Stock Trading Strategy with Automated Trading in Python
  • 2022.09.08
  • www.youtube.com
This video tests an automated trading strategy backtest for long positions on stocks, the rules are simple using RSI and the ADX indicators on stock market v...
 

Automatisierte Rayner Teo Bollinger Bands-Strategie, optimiert für hohe Rendite



Automatisierte Rayner Teo Bollinger Bands-Strategie, optimiert für hohe Rendite

Hallo an alle! Wir freuen uns, in diesem Video einen extremen Optimierungsansatz vorzustellen, der die Auswirkungen bestimmter Parameter auf unser Handelssystem demonstriert. Wir glauben, dass dies die beste Optimierung ist, die wir bisher erreicht haben. Wie Sie sehen, haben wir bei einer stetig steigenden Eigenkapitalkurve eine beeindruckende Rendite von rund dreitausend Prozent erzielt. Die Details der Trades werden ebenfalls in der Grafik angezeigt und wir erklären sie in diesem Video. Wir haben alle Trades in den Preisdiagrammen aufgezeichnet und werden sie auch durchgehen. Also bleibt gespannt!

Bevor wir fortfahren, möchten wir betonen, dass die Art und Weise, wie wir mit dieser Strategie eine Rendite von 30.000 Prozent erzielt haben, nicht der sicherste Ansatz für den echten Handel ist. Wir empfehlen, diese Parameter nicht in einem tatsächlichen Handelsszenario zu verwenden. Wir glauben jedoch, dass die Strategie an sich solide ist und großes Potenzial hat. Wenn Sie neu hier sind, basiert die Strategie auf der Rhino Theo Bollinger Band-Strategie für Trendmärkte. Wir haben es zuvor in einem Video mit hervorragenden Ergebnissen und minimalem Risiko getestet. Falls Sie es noch nicht gesehen haben, finden Sie in der Beschreibung den Link zum ersten Backtest-Video, bei Bedarf zusammen mit dem Python-Code.

In diesem Video werden wir versuchen, extreme Parameter anzuwenden, um relativ große Renditen zu erzielen. Wir tun dies hauptsächlich aus Spaß am Testen und Herumspielen mit dem Python-Code. Darüber hinaus hoffen wir, im Laufe des Prozesses wertvolle Erkenntnisse zu gewinnen und möglicherweise ein Setup zu finden, das zu realistisch hohen Renditen führen könnte.

Lassen Sie uns nun in den Code springen und sehen, wie sich alles entwickelt. Die erste Zelle unserer Jupyter-Notebook-Datei ist dem Laden der Daten gewidmet. Wir verwenden das Modul „yfinance“, das eine bequeme Möglichkeit bietet, tägliche historische Daten aus Datenbanken zu laden. Mit nur einer einzigen Codezeile können wir die Daten für eine bestimmte Aktie laden, beispielsweise den Russell 1000-Index zwischen 2011 und 2021. Wir bereinigen die Daten, indem wir Tage ohne Preisbewegungen, wie Wochenenden und Feiertage, entfernen. Anschließend setzen wir den Index zurück und drucken den Kopf des Datenrahmens, um zu überprüfen, ob die Daten korrekt formatiert sind.

Als nächstes verwenden wir das Modul „pandas_ta“ (pandas technische Analyse), um verschiedene technische Indikatoren zu berechnen. In diesem Fall berechnen wir zwei gleitende Durchschnitte: den exponentiellen gleitenden 200-Tage-Durchschnitt (EMA) und den einfachen gleitenden 150-Tage-Durchschnitt (SMA). Durch den Vergleich des schnellen gleitenden Durchschnitts (EMA2) mit dem langsameren gleitenden Durchschnitt (EMA) können wir feststellen, ob sich der Markt in einem Aufwärts- oder Abwärtstrend befindet. Mit demselben Modul berechnen wir auch den 12-Tage-Relative-Stärke-Index (RSI). Zusätzlich modifizieren wir die Parameter der Bollinger-Bänder, indem wir die Länge auf 14 (statt 20) und die Standardabweichung auf 2,0 (statt 2,5) setzen. Diese Änderungen zielen darauf ab, das System weniger selektiv zu machen, was zu häufigeren Handelssignalen und einer höheren Anzahl von Trades während des Backtests führt.

Anstatt das RDMI-Signal oder das in den vorherigen Videos besprochene exponentielle gleitende Durchschnittssignal zu verwenden, verwenden wir die beiden EMA-Signale. Das bedeutet, dass wir zwei gleitende Durchschnitte berücksichtigen, einen schnelleren und einen langsameren. Liegt der schnelle gleitende Durchschnitt über dem langsam gleitenden Durchschnitt, erkennen wir einen Aufwärtstrend. Wenn umgekehrt der schnelle gleitende Durchschnitt unter dem langsam gleitenden Durchschnitt liegt, erkennen wir einen Abwärtstrend. Wir fügen dieses Signal, das als EMA-Signal bezeichnet wird, als neue Spalte in unserem Datenrahmen hinzu.

Die Funktion zur Generierung der Handelssignale ähnelt den vorherigen Videos. Wir prüfen, ob der Schlusskurs unter dem unteren Bollinger-Band liegt und ob das EMA-Signal einen Aufwärtstrend (gleich 2) anzeigt, der ein Kaufsignal auslöst.

In diesem Video demonstriert der Moderator einen extremen Optimierungsansatz, um die Auswirkungen verschiedener Parameter auf ein Handelssystem darzustellen. Das Ziel besteht darin, durch die Anwendung extremer Parameter hohe Renditen zu erzielen, wobei zu beachten ist, dass diese Parameter aufgrund der damit verbundenen Risiken nicht für den realen Handel empfohlen werden. Allerdings ist der Moderator davon überzeugt, dass die Strategie selbst großes Potenzial hat, wenn sie mit Vorsicht eingesetzt wird.

Die verwendete Strategie basiert auf der Rhino Theo Bollinger Band-Strategie für Trendmärkte. Der Moderator verweist auf ein früheres Video, in dem diese Strategie mit hervorragenden Ergebnissen und relativ geringem Risiko getestet wurde. Der erste Schritt im Optimierungsprozess besteht darin, die erforderlichen Daten mithilfe des Y Finance-Moduls zu laden. Der Moderator lädt die Russell 1000-Indexdaten von 2011 bis 2021, die einen Zeitraum von 10 Jahren abdecken.

Sobald die Daten geladen sind, bereinigt der Präsentator sie, indem er Tage ohne Preisbewegungen, wie z. B. Wochenenden und Feiertage, entfernt. Die Daten werden dann durch die Berechnung technischer Indikatoren mithilfe des Moduls pandas_ta (pandas technische Analyse) aufbereitet. Es werden zwei gleitende Durchschnitte berechnet: ein exponentieller gleitender Durchschnitt (EMA) über 200 Tage und ein einfacher gleitender Durchschnitt (SMA) über 150 Tage. Diese gleitenden Durchschnitte helfen dabei, den Trend zu bestimmen: Wenn der schnellere EMA über dem langsameren SMA liegt, deutet dies auf einen Aufwärtstrend hin und umgekehrt.

Der Moderator berechnet außerdem den 12-Tage-Relative-Stärke-Index (RSI) mithilfe des pandas_ta-Moduls. Zusätzlich werden die Längen- und Standardabweichungsparameter der Bollinger-Bänder geändert. Anstatt wie in früheren Videos eine Länge von 20 und eine Standardabweichung von 2,5 zu verwenden, verwendet der Moderator eine Länge von 14 und eine Standardabweichung von 2,0. Diese Änderung zielt darauf ab, das System weniger selektiv zu machen, was zu häufigeren Handelssignalen führt.

Anstatt wie in den vorherigen Videos die RSI- oder EMA-Signale zu verwenden, stellt der Moderator ein neues Signal namens EMA-Signal vor. Es basiert auf der Beziehung zwischen den beiden gleitenden Durchschnitten: Wenn der schnellere EMA über dem langsameren SMA liegt, wird das EMA-Signal auf 2 gesetzt, was einen Aufwärtstrend anzeigt. Wenn der schnellere EMA unter dem langsameren SMA liegt, wird das EMA-Signal auf 1 gesetzt, was auf einen Abwärtstrend hinweist.

Die Einstiegsstrategie ähnelt den vorherigen Videos. Der Moderator prüft, ob der Schlusskurs unter dem unteren Bollinger-Band liegt und ob das EMA-Signal einen Aufwärtstrend anzeigt (EMA-Signal = 2). In diesem Fall wird ein Kaufsignal zum Schlusskurs der aktuellen Kerze generiert. Liegt der Schlusskurs über dem oberen Bollinger Band und das EMA-Signal deutet auf einen Abwärtstrend hin (EMA-Signal = 1), wird ein Verkaufssignal zum Schlusskurs der aktuellen Kerze generiert.

Um Trades zu beenden, führt der Moderator zusätzliche Kriterien ein. Ein Trade wird geschlossen, wenn er länger als 10 Tage geöffnet war, da längerfristige Trades nicht erwünscht sind. Darüber hinaus wird ein Trade geschlossen, wenn es sich um einen Long-Trade handelt und der RSI über 75 steigt, oder wenn es sich um einen Short-Trade handelt und der RSI unter 25 fällt. Wenn die RSI-Bedingung allein nicht ausreicht, um einen Ausstieg auszulösen, wird ein Stop-Loss gesetzt Mechanismus implementiert ist.

Der Stop-Loss wird als Mindestwert zwischen dem aktuellen Tief der Kerze und dem Tief der vorherigen Kerze berechnet, multipliziert mit (1 – einem bestimmten Prozentsatz). Der Prozentsatz wird vom Benutzer bestimmt und stellt den zulässigen Verlust dar, bevor der Stop-Loss ausgelöst wird. Ein Prozentsatz von 2 bedeutet beispielsweise, dass der Stop-Loss 2 % unter dem Tiefstpunkt zwischen den letzten beiden Kerzen liegt. Zusätzlich wird ein Take-Profit-Level festgelegt, der doppelt so hoch ist wie der Stop-Loss.

Der Moderator bewertet die Strategie, indem er einen Backtest mit den optimierten Parametern durchführt. Sie zeichnen die Trades auf dem Preisdiagramm auf und geben detaillierte Erklärungen für jeden Trade. Die Backtest-Ergebnisse zeigen eine beeindruckende Rendite von rund dreitausend Prozent bei einer stetig steigenden Eigenkapitalkurve.

Abschließend betont der Referent, dass dieser extreme Optimierungsansatz zwar im Backtest hohe Renditen erbringt, für den realen Handel jedoch aufgrund der damit verbundenen Risiken nicht zu empfehlen ist. Der Zweck dieser Übung besteht darin, die Auswirkungen verschiedener Parameter zu untersuchen und Einblicke in das Verhalten der Strategie zu gewinnen.

Automated Rayner Teo Bollinger Bands Strategy Optimized For High Return
Automated Rayner Teo Bollinger Bands Strategy Optimized For High Return
  • 2022.07.22
  • www.youtube.com
This video is a continuation of the previous 2 videos describing the Rayner Teo Bollinger Bands Strategy. Here we present an optimized version leading to hig...
 

Optimierung der Bollinger-Bänder-Strategie von Rayner Teo für bessere Ergebnisse



Optimierung der Bollinger-Bänder-Strategie von Rayner Teo für bessere Ergebnisse

Heute beschäftigen wir uns mit der Optimierung der Reiner-Theo-Bollinger-Band-Strategie, die zuvor in einem Video einem Backtest unterzogen wurde. Wenn Sie das vorherige Video noch nicht angesehen haben, wird empfohlen, dies zu tun, bevor Sie mit diesem Optimierungsteil fortfahren. Das Video enthält in der Beschreibung einen Link für den einfachen Zugriff. Darüber hinaus steht für diejenigen, die sich für den Codierungsaspekt interessieren, der Python-Code auch über einen Link in der Beschreibung zum Download zur Verfügung.

Die optimierte Strategie hat mit einer Gewinnquote von 91 % und einer stetig steigenden Eigenkapitalkurve über einen 10-Jahres-Backtest vielversprechendes Potenzial gezeigt. Einer der Beweggründe für diese Optimierung ist jedoch die geringe Anzahl der beim Backtest beobachteten Trades. Im Laufe von 10 Jahren wurden lediglich 23 Trades ausgeführt, durchschnittlich etwa zwei Trades pro Jahr. Um dieses Problem anzugehen, werden zwei mögliche Lösungen vorgestellt. Die erste besteht darin, das Programm für mehrere Aktien gleichzeitig auszuführen, wobei etwa 20 Trades pro Jahr angestrebt werden. Dieser Ansatz wirft jedoch Bedenken hinsichtlich korrelierter Märkte und anderer damit zusammenhängender Probleme auf. Die zweite Lösung besteht darin, den Zeitrahmen zu verkürzen, um die Anzahl der Trades zu erhöhen.

Die Strategie umfasst mehrere technische Indikatoren zur Generierung von Ein- und Ausstiegssignalen. Es verwendet einen gleitenden Durchschnittsindikator (im Code als EMA, Exponential Moving Average bezeichnet) und Bollinger-Bänder für Einstiegssignale, während der Relative Strength Index (RSI) für Ausstiegssignale verwendet wird. Das Video liefert weitere Details zum Ausführungsprozess, die hier nicht wiederholt werden.

Im Programm selbst werden die Daten in die erste Zelle geladen, wobei der Schwerpunkt auf dem vierstündigen Zeitrahmen für die Analyse liegt. Für die Optimierung werden zwei unterschiedliche Bestände verwendet. Die Daten werden bereinigt, indem Kerzen ohne Bewegung entfernt werden, bei denen die Höchst- und Tiefstpreise gleich sind. Technische Indikatoren wie der gleitende Durchschnitt (entweder exponentiell oder einfach) und der RSI werden hinzugefügt und ihre Längen können geändert werden. In diesem speziellen Fall ist die Länge des gleitenden Durchschnitts auf 900 Kerzen und die RSI-Länge auf 12 eingestellt. Für Tages-Charts werden ein 200-Tage-EMA und ein 2-Tage-RSI für Ausstiegssignale verwendet. Die Parameter der Bollinger-Bänder bleiben mit einer Länge von 20 und einer Standardabweichung von 2,5 dieselben wie die Tages-Charts.

Das Programm beinhaltet auch eine Prüfung, ob die Kerzen über oder unter dem gleitenden Durchschnitt liegen. In diesem Fall wird die Zahl auf sechs gesetzt, was sechs aufeinanderfolgende Kerzen über oder unter der Kurve des gleitenden Durchschnitts darstellt. Da wir mit einem Zeitrahmen von vier Stunden arbeiten, ergeben sechs mal vier 24 Stunden. Wenn der Preis also 24 Stunden lang über oder unter dem gleitenden Durchschnitt gehandelt wurde, kann auf einen Aufwärts- oder Abwärtstrend geschlossen werden. Der Parameter für die prozentuale Position der Order am Markt wird auf null Prozent gesetzt, um die Anzahl der ausgeführten Trades zu erhöhen.

Der Visualisierungsteil des Programms zeigt die Bollinger-Bänder, die Kurve des gleitenden Durchschnitts und die Trendrichtung an, die als Aufwärtstrend ermittelt wird. Einstiegssignale werden durch violette Punkte im Diagramm dargestellt und weisen auf Kaufsignale hin. Das Video stellt einige dieser Einstiegspunkte vor und betont ihre Wirksamkeit in trendigen Märkten. Durch die Auswahl verschiedener zufälliger Positionen innerhalb des Diagramms können verschiedene Einstiegspunkte untersucht und so ihre Realisierbarkeit analysiert werden.

Der Moderator weist darauf hin, dass die Bollinger-Band-Parameter in Bezug auf Einstiegssignale gut funktionieren, sodass an dieser Stelle kein Änderungsbedarf besteht. Der Optimierungsschwerpunkt liegt in anderen Teilen des Algorithmus. Auch wenn das Video nicht auf alle Details des Backtesting-Prozesses eingeht, sind bestimmte Parameter dennoch erwähnenswert.

In diesem Optimierungsprozess wird der RSI-Schwellenwert für den Ausstieg auf 45 festgelegt. Dieser niedrigere Schwellenwert zielt darauf ab, kürzere und häufigere Trades zu erfassen, indem er schnellere Ausstiege ermöglicht. Der Referent erwähnt, dass die Wahl des RSI-Schwellenwerts subjektiv ist und je nach individuellen Vorlieben und Risikotoleranz angepasst werden kann.

Um die Leistung der Strategie zu bewerten, berechnet das Programm verschiedene Kennzahlen, darunter die Gesamtzahl der Trades, die Gewinnrate, die durchschnittliche Handelsdauer und die Eigenkapitalkurve. Diese Kennzahlen geben Einblicke in die Wirksamkeit und Rentabilität der Strategie.

Der Optimierungsprozess umfasst die Anpassung der Parameter der Strategie, um die optimale Kombination zu finden, die die Anzahl der Trades maximiert und gleichzeitig eine hohe Gewinnrate beibehält. Zu den Parametern, die optimiert werden, gehören die Länge des gleitenden Durchschnitts, die RSI-Länge und der RSI-Ausstiegsschwellenwert.

Das Video zeigt, wie Sie eine verschachtelte Schleife verwenden, um verschiedene Parameterkombinationen zu durchlaufen und die Leistung der Strategie für jede Kombination zu bewerten. Das Programm verfolgt die leistungsstärkste Parameterkombination und zeigt die entsprechenden Kennzahlen und die Eigenkapitalkurve an.

Durch die Durchführung des Optimierungsprozesses stellt der Vortragende fest, dass die Verwendung einer gleitenden Durchschnittslänge von 700, einer RSI-Länge von 4 und einer RSI-Ausstiegsschwelle von 45 die besten Ergebnisse liefert. Diese Parameterwerte erhöhen die Anzahl der Trades und sorgen gleichzeitig für eine hohe Gewinnrate. Das Video zeigt die durch die optimierte Strategie generierte Eigenkapitalkurve, die im Vergleich zur Originalversion einen sanfteren Aufwärtstrend mit häufigeren Trades aufweist.

Der Vortragende schließt mit der Hervorhebung der Bedeutung der Optimierung für die Verbesserung der Leistung von Handelsstrategien. Durch systematisches Testen und Anpassen von Parametern ist es möglich, die Rentabilität und Effizienz einer Strategie zu steigern. Es ist jedoch wichtig, Vorsicht walten zu lassen und die mit der Optimierung verbundenen Einschränkungen und Risiken zu berücksichtigen, z. B. eine Überanpassung an historische Daten.

Es ist wichtig zu beachten, dass es sich bei den hier bereitgestellten Details um eine Zusammenfassung des Videos handelt. Für ein umfassenderes Verständnis wird empfohlen, sich das Originalvideo anzusehen, das visuelle Demonstrationen und weitere Erläuterungen zum Optimierungsprozess enthält.

Optimizing Rayner Teo's Bollinger Bands Strategy for Better Results
Optimizing Rayner Teo's Bollinger Bands Strategy for Better Results
  • 2022.07.08
  • www.youtube.com
This is a continuation of the previous video on the Bollinger Bands Winning Trading Strategy published by Rayner Teo. The backtest optimization is done in Py...