Python im algorithmischen Handel - Seite 19

 

Scalping-Strategie mit Candlestick-Muster-Backtest in Python



Scalping-Strategie mit Candlestick-Muster-Backtest in Python

In diesem Video diskutieren und demonstrieren wir eine einfache Bildhauerstrategie, die auf den in den beiden vorherigen Videos vorgestellten Konzepten aufbaut. Wenn Sie sich für die konkreten Details und den Python-Code dieser Strategie interessieren, finden Sie einen Link in der Videobeschreibung.

Die von uns verwendete Strategie basiert auf drei exponentiellen gleitenden Durchschnitten (EMAs): schnell, mittel und langsam. Durch die Analyse der Ausrichtung dieser EMAs können wir abschätzen, ob der Preistrend nach oben oder nach unten zeigt. In einem Aufwärtstrend liegt der schnelle EMA über dem mittleren EMA, der wiederum über dem langsamen EMA liegt. Umgekehrt ist bei einem Abwärtstrend die Reihenfolge umgekehrt.

Für Kaufpositionen in einem Aufwärtstrend suchen wir nach Kerzen, die unterhalb des schnellen EMA öffnen und über ihm schließen. Andererseits suchen wir für den Verkauf von Positionen in einem Abwärtstrend nach Kerzen, die über dem schnellen EMA öffnen und unter diesem schließen. Das Video zeigt Beispiele für Kerzen, die diese Kriterien für den Kauf von Positionen in einem Aufwärtstrend erfüllen.

Die Strategie wurde zuvor mithilfe eines Leveraged-Kontos mit einem Leverage-Verhältnis von 1:100 getestet und optimiert. Die Tests wurden über einen Zeitraum von drei Jahren durchgeführt und führten zu einer Renditequote von 445 % und einer Gewinnquote von 55 %. Es ist jedoch wichtig zu beachten, dass die Strategie große Drawdown-Zeiträume aufwies und die Eigenkapitalkurve über den gesamten Dreijahreszeitraum nicht stabil war.

Um die Strategie zu verbessern, wird eine zusätzliche Bedingung eingeführt. Zusätzlich zu den Kerzen, die den schnellen EMA kreuzen, betrachten wir nun die Länge der Kerzendochte. Wenn es sich um einen Aufwärtstrend handelt, sollte die Kerze einen sehr kurzen unteren Schwanz haben, was auf eine starke Aufwärtsdynamik hinweist. Ebenso sollte die Kerze in einem Abwärtstrend kein hohes Ende haben. Ziel dieser Bedingung ist es, Signale mit schwachem Impuls herauszufiltern.

Um die Wirksamkeit dieser zusätzlichen Bedingung zu bewerten, wird die Strategie mit Python einem Backtest unterzogen. Der Quellcode für das Backtesting wird in einer Jupyter Notebook-Datei bereitgestellt, die über den Link in der Videobeschreibung heruntergeladen werden kann.

Das Backtesting wird anhand der Euro/USD-15-Minuten-Chartdaten von 2019 bis 2022 durchgeführt und deckt Daten aus drei Jahren ab. Die Daten werden vorverarbeitet, indem Kerzen mit einem Volumen von Null entfernt und der Index des Datenrahmens zurückgesetzt werden. Die drei gleitenden Durchschnitte (50, 100 und 150) und der durchschnittliche wahre Bereich (ATR) werden dem Datenrahmen hinzugefügt.

Die Strategie generiert Signale basierend auf der Ausrichtung der gleitenden Durchschnitte, und das Gesamtsignal wird durch die Identifizierung von Kerzenhaltern erhalten, die den schnellen EMA in derselben Richtung wie der Trend kreuzen. Das Video zeigt, wie diese Signale in den Diagrammen visualisiert werden können.

Es werden verschiedene Methoden zur Festlegung von Stop-Loss- und Take-Profit-Werten getestet. Dazu gehören feste Distanzen, ATR-bezogene Distanzen, Trailing-Stop-Loss und aus dem Preis beobachtete Stop-Loss. Die Ergebnisse für jede Methode werden vor und nach dem Hinzufügen der dritten Bedingung verglichen.

Wenn die dritte Bedingung hinzugefügt wird, zeigt die Strategie signifikante Verbesserungen bei allen getesteten Methoden. Die Stop-Loss- und Take-Profit-Methode mit fester Distanz ergibt eine Rendite von 1805 % bei einer Gewinnquote von 59 %. Die ATR-bezogene Methode erzielt eine Rendite von 249 % und eine Gewinnquote von 51 %. Die bisher verlustbringende Trailing-Stop-Loss-Methode bringt nun eine Rendite von 394 % und eine Gewinnquote von 42,5 %. Schließlich generiert der vom Preis beobachtete Stop-Loss, der ebenfalls verlor, nun eine Rendite von 373 % bei einer Gewinnquote von 49 %.

Neben verbesserten Renditen zeigen die Eigenkapitalkurven für alle Methoden insgesamt einen Aufwärtstrend, was auf eine stabilere und positivere Performance im Vergleich zu den vorherigen Ergebnissen hinweist.

Das Video betont, dass diese Strategie nicht als vollständiges Handelssystem dargestellt wird, sondern vielmehr als Veranschaulichung der Auswirkungen der Hinzufügung der Bedingung für einen niedrigen Docht.

Das Video schließt mit der Hervorhebung einiger wichtiger Punkte, die bei der Anwendung dieser Strategie zu berücksichtigen sind:

  1. Die im Video gezeigte Strategie ist ein vereinfachtes Beispiel und sollte nicht als umfassendes Handelssystem betrachtet werden. Es dient zur Veranschaulichung, wie das Hinzufügen bestimmter Bedingungen die Leistung einer Strategie verbessern kann.

  2. Backtesting-Ergebnisse lassen keinen Rückschluss auf die zukünftige Wertentwicklung zu. Während die Strategie während des Testzeitraums verbesserte Renditen zeigte, können sich die Marktbedingungen ändern und vergangene Ergebnisse können in der Zukunft möglicherweise nicht wiederholt werden.

  3. Es ist wichtig, gründliche Tests und Optimierungen durchzuführen, bevor Sie eine Strategie auf den echten Handel anwenden. Durch Backtesting können Sie die Leistung der Strategie unter verschiedenen Marktbedingungen bewerten und ihre Parameter verfeinern, um bessere Ergebnisse zu erzielen.

  4. Risikomanagement ist entscheidend. Die richtige Festlegung der Stop-Loss- und Take-Profit-Werte ist für den Schutz Ihres Kapitals und das Risikomanagement von entscheidender Bedeutung. Das Video zeigt verschiedene Methoden zum Festlegen dieser Werte. Es ist jedoch wichtig, bei der Bestimmung der geeigneten Werte Ihre Risikotoleranz und Kontogröße zu berücksichtigen.

  5. Emotionale Disziplin ist für den erfolgreichen Handel notwendig. Bleiben Sie Ihrer Strategie treu und vermeiden Sie impulsive Entscheidungen aufgrund kurzfristiger Marktschwankungen.

  6. Berücksichtigen Sie andere Faktoren und Indikatoren, die diese Strategie ergänzen können. Keine einzelne Strategie funktioniert unter allen Marktbedingungen perfekt. Daher ist es von Vorteil, mehrere Indikatoren und Techniken für eine umfassendere Analyse zu kombinieren.

  7. Überwachen und bewerten Sie kontinuierlich die Leistung Ihrer Strategie. Wenn sich die Marktbedingungen ändern, kann es erforderlich sein, Ihren Ansatz anzupassen und zu verfeinern, um profitabel zu bleiben.

Denken Sie daran, dass der Handel auf den Finanzmärkten Risiken birgt und es wichtig ist, sich weiterzubilden, professionellen Rat einzuholen und mit Vorsicht zu üben, bevor Sie echte Gelder einsetzen. Das Video dient als Informationsquelle und es liegt an Ihnen, die Strategie weiter zu erkunden und an Ihren Handelsstil und Ihre Risikotoleranz anzupassen.

Scalping Strategy With CandleStick Pattern Backtest In Python
Scalping Strategy With CandleStick Pattern Backtest In Python
  • 2022.03.10
  • www.youtube.com
This is a scalping Trading Strategy optimization using CandleStick Wick length pattern to confirm price momentum along with 3 moving exponential averages to ...
 

Einfacher EMA-Scalping-Handelsstrategie-Backtest in Python (Teil 1)


Einfacher EMA-Scalping-Handelsstrategie-Backtest in Python (Teil 1)

Heute begeben wir uns auf eine Reise, um Scalping-Strategien zu testen. Ich weiß, dass viele von Ihnen in letzter Zeit danach gefragt haben, und ich muss zugeben, dass ich normalerweise kurze Zeitrahmen und Scalping vermeide, weil ich es als riskanten Ansatz und oft emotional belastend empfinde.

Bei algorithmischen Methoden könnte es jedoch einfacher sein. Mit Algorithmen können wir unsere Strategie testen und haben ein klares Verständnis der erwarteten Ergebnisse. Wir hoffen also, dass es keine unangenehmen Überraschungen gibt, da unser Modell bereits einem Backtest unterzogen wurde. Wie üblich steht der Python-Code über den Link in der Videobeschreibung zum Download zur Verfügung, wenn Sie sich für den Codierungsteil interessieren. Wenn nicht, können Sie sich einfach das Video ansehen und sehen, welche Ergebnisse unsere Strategie erzielen könnte.

Für den Anfang habe ich etwas relativ Einfaches gewählt: Wir werden drei exponentielle gleitende Durchschnitte verwenden. Einer ist schnell, ein anderer ist mittel und der dritte ist langsam. Wir werden diese gleitenden Durchschnitte verwenden, um Trends zu erkennen. Wenn diese gleitenden Durchschnitte in einer bestimmten Reihenfolge angeordnet sind (schneller über mittlerer über langsamem gleitendem Durchschnitt), liegt ein Aufwärtstrend vor. Umgekehrt deutet die umgekehrte Reihenfolge auf einen Abwärtstrend hin.

Um die Genauigkeit der Trends sicherzustellen, habe ich außerdem eine weitere Bedingung hinzugefügt. Die Steigungen dieser Kurven sollten in die gleiche Richtung zeigen. Bei einem Aufwärtstrend sollten die drei Kurven positive Steigungen aufweisen, bei einem Abwärtstrend sollten die Steigungen negativ sein.

Sobald wir ein klares Trendsignal haben, werden wir nach unserem Einstiegspunkt suchen. Wenn wir beispielsweise nach einer Kaufposition suchen, warten wir auf eine Kerze, die unter dem schnellen gleitenden Durchschnitt öffnet und darüber schließt. Diese Kerze zeigt die Fortsetzung des Aufwärtstrends an und dient als unser Einstiegspunkt.

Das Interessante dabei ist, dass wir das alles in Python programmieren und die Strategie einem Backtest unterziehen können. Zunächst werden wir uns nicht besonders auf die Optimierung konzentrieren, da ich dieses Video prägnant halten möchte. In einem zukünftigen Video werden wir jedoch versuchen, die Parameter zu optimieren und zu sehen, ob wir bei unseren Trades eine gewinnbringende Kombination erzielen können.

Lassen Sie uns nun in den Python-Code eintauchen und die Backtesting-Ergebnisse untersuchen. Von 2019 bis 2022 verwenden wir das Währungspaar Euro/USD mit 15-Minuten-Kerzen. Der Datenrahmen besteht aus 105.000 Zeilen, wobei jede Zeile eine 15-Minuten-Kerze darstellt. Wir bereinigen den Datenrahmen, indem wir Zeilen mit einem Volumen von Null entfernen, was Wochenenden und freien Tagen entspricht, an denen es keine Marktbewegungen gibt.

Als nächstes importieren wir das Modul pandas_ta (Pandas Technical Analysis) und berechnen die drei verschiedenen gleitenden Durchschnitte: EMA 50, EMA 100 und EMA 150. Wir berechnen auch die Steigungen dieser gleitenden Durchschnitte mithilfe eines gleitenden Fensters von 10 Kerzen.

Zu diesem Zeitpunkt umfasst unser Datenrahmen die Eröffnungs-, Höchst-, Tiefst- und Schlusskurse, das Volumen, drei gleitende Durchschnitte und ihre entsprechenden Steigungen. Wir können nun die Bedingungen für die Trenderkennung überprüfen. Wenn der schnelle gleitende Durchschnitt unter dem mittleren gleitenden Durchschnitt liegt und der mittlere gleitende Durchschnitt unter dem langsamen gleitenden Durchschnitt liegt und alle drei Steigungen negativ sind, deutet dies auf einen Abwärtstrend hin. Wenn umgekehrt der schnelle gleitende Durchschnitt über dem mittleren gleitenden Durchschnitt liegt, der mittlere gleitende Durchschnitt über dem langsamen gleitenden Durchschnitt liegt und alle drei Steigungen positiv sind, signalisiert dies einen Aufwärtstrend. Diese Bedingungen werden als Spalten in unserem Datenrahmen hinzugefügt.

Um die Signale in unseren Diagrammen zu visualisieren, definieren wir eine Funktion, die Punkte über oder unter den Kerzenhaltern basierend auf dem Gesamtsignal darstellt. Das Gesamtsignal stellt die Einstiegspunkte dar, wobei 1 ein Verkaufssignal und 2 ein Kaufsignal anzeigt. Die Punktpositionen werden als Spalte im Datenrahmen hinzugefügt.

Wir zeichnen die Signale und Candlesticks für einen bestimmten Kerzenbereich auf.

Wir zeichnen die Signale und Candlesticks für einen bestimmten Kerzenbereich auf, sodass wir die Leistung der Strategie visuell analysieren können. Die grünen Kreise zeigen Kaufsignale an, während die roten Kreise Verkaufssignale anzeigen. Diese visuelle Darstellung hilft uns zu verstehen, wie sich die Strategie in Echtzeit entwickelt hätte.

Nach der Visualisierung der Signale berechnen wir die Leistung der Strategie. Wir beginnen mit einem Kapital von 10.000 $ und durchlaufen jede Kerze. Erhalten wir ein Kaufsignal, gehen wir eine Long-Position mit fester Größe ein. Erhalten wir ein Verkaufssignal, verlassen wir die Long-Position und berechnen den Gewinn/Verlust auf Basis der Preisänderung seit dem Einstieg. Wir verfolgen den kumulierten Gewinn/Verlust und die Anzahl der ausgeführten Trades.

Am Ende des Backtesting-Zeitraums berechnen wir den Gesamtgewinn/-verlust, die Anzahl der erfolgreichen Trades, die Anzahl der verlorenen Trades, den Gewinnprozentsatz und den durchschnittlichen Gewinn/Verlust pro Trade.

Im Video präsentiere ich die Backtesting-Ergebnisse für die gegebene Strategie. Bitte beachten Sie, dass die Ergebnisse spezifisch für den gewählten Zeitrahmen und das gewählte Währungspaar sind. Die Strategie kann unter anderen Marktbedingungen oder mit anderen Parametern anders funktionieren.

Zusammenfassend lässt sich sagen, dass das Backtesting zeigt, dass die Strategie relativ gut abschnitt und im Backtesting-Zeitraum eine positive Rendite erzielte. Es ist jedoch wichtig zu beachten, dass die Leistung in der Vergangenheit keine Rückschlüsse auf zukünftige Ergebnisse zulässt und möglicherweise zusätzliche Tests und Optimierungen erforderlich sind.

Simple EMA Scalping Trading Strategy Backtest In Python (Part 1)
Simple EMA Scalping Trading Strategy Backtest In Python (Part 1)
  • 2022.02.24
  • www.youtube.com
Simple scalping Trading strategy using 3 exponential moving averages backtested in python, the scalping strategy is explained and the python code also in Jup...
 

Einfacher EMA-Scalping-Handelsstrategie-Backtest in Python (Teil 2 Optimierung)



Einfacher EMA-Scalping-Handelsstrategie-Backtest in Python (Teil 2 Optimierung)

Hi! Willkommen zurück zu diesem Video, das eine Fortsetzung unseres vorherigen Videos ist. In diesem Video wollen wir die zuvor vorgestellte Bildhauerstrategie optimieren. Um es kurz zusammenzufassen: Wir konzentrieren uns auf die Optimierung des Parameters „Back Rolling n“, der die Anzahl der Kerzen bestimmt, die bei der Berechnung der Steigungen der gleitenden Durchschnitte berücksichtigt werden sollen. Indem wir die Anzahl der Kerzen variieren, beispielsweise 20, 10 oder 5, können wir die durchschnittliche Steigung für diese gleitenden Durchschnitte berechnen. Darüber hinaus werden wir die Möglichkeit untersuchen, Bedingungen für die Steigungen des gleitenden Durchschnitts hinzuzufügen, z. B. Tests auf Steigungen, die unter einem bestimmten Schwellenwert liegen, z. B. -10 bis -4. Durch das Experimentieren mit diesen Parametern wollen wir einen besseren Filter zur Erkennung von Trends schaffen.

Darüber hinaus werden wir verschiedene Handelsmanagementansätze untersuchen, einschließlich fester Stop-Loss- und Take-Profit-Werte, Trailing-Stop-Loss und ATR-bezogener Stop-Loss- und Take-Profit-Werte (Average True Range). Durch die Untersuchung dieser verschiedenen Ansätze hoffen wir herauszufinden, welche Handelsmanagementstrategie die günstigsten Ergebnisse liefert.

Es ist wichtig zu beachten, dass dieses Bildhauersystem nicht für schnelle Handelsstile konzipiert ist, da wir mit einem Zeitrahmen von 15 Minuten arbeiten. Allerdings kann das gleiche System in kürzeren Zeiträumen getestet werden, obwohl dies aufgrund des erhöhten Marktlärms möglicherweise eine größere Herausforderung darstellt.

Bevor wir uns mit dem Code befassen, empfehlen wir Ihnen, sich das vorherige Video anzusehen, in dem wir die Strategie ausführlich erklärt haben. Dadurch erhalten Sie ein besseres Verständnis für den Optimierungsprozess, den wir Ihnen gleich vorstellen.

Kommen wir nun zu unserer Jupyter Notebook-Datei. Wir beginnen mit der Erstellung eines Datenrahmens und der Bereinigung der Daten. Als nächstes berechnen wir drei verschiedene gleitende Durchschnitte und berechnen die Steigungen dieser gleitenden Durchschnitte. Hier beginnen wir mit dem Testen unserer Strategie.

Zunächst betrachten wir ein gleitendes Fenster von 10 Kerzen, was bedeutet, dass wir die Steigung für die schnellen, mittleren und langsamen gleitenden Durchschnitte anhand der Daten dieser 10 Kerzen mitteln. Wir führen diesen Code aus, um sicherzustellen, dass alles ordnungsgemäß funktioniert, einschließlich der Signale, die wir im vorherigen Video vorgestellt haben.

Um das Testen zu erleichtern, legen wir eine Zeitskala fest, indem wir davon ausgehen, dass vier Kerzen eine Stunde darstellen, vorausgesetzt, wir arbeiten mit 15-Minuten-Kerzen. Mit diesem Setup können wir einen bestimmten Ausschnitt unseres Datenrahmens auswählen, um unsere Strategie zu testen. Beispielsweise können wir einen Zeitraum von drei Monaten auswählen, indem wir den Startindex mit 37.000 angeben und die entsprechende Länge auswählen.

Nachdem wir die Daten für den ausgewählten Zeitraum geladen haben, können wir unseren Backtest durchführen. Unsere anfängliche Losgröße ist auf 30 % unseres Eigenkapitals festgelegt und wir berücksichtigen einen Stop-Loss von 40 Pips und einen Take-Profit von 45 Pips. Wir wenden außerdem eine Marge von 1 über 100 an, was einem Leveraged-Konto mit einem Barguthaben von 100 als Ausgangspunkt entspricht.

Beim Backtest stellen wir für den Dreimonatszeitraum eine Rendite von 107 % fest. Um jedoch die Robustheit unseres Modells sicherzustellen, ist es wichtig, die Strategie in verschiedenen Zeitabschnitten zu testen. Durch Ändern des Startindex können wir verschiedene Zeiträume auswählen und die Leistung bewerten. Wir probieren beispielsweise einen anderen Startindex von 47 aus und führen den Backtest durch, der eine Rendite von 30 % ergibt.

Wir können diesen Vorgang mit verschiedenen Startindizes wiederholen, um die Leistung der Strategie über mehrere Zeiträume hinweg zu analysieren. Um jedoch längere Zeiträume zu testen, müssen wir einen kleineren Teil unseres Datenrahmens auswählen. Beispielsweise können wir einen 10-Monats- oder einen 12-Monats-Abschnitt wählen, um die jährliche Leistung zu bewerten.

Wenn wir die Strategie über ein ganzes Jahr hinweg testen, erzielen wir eine Rendite von 100 %, was einer effektiven Verdoppelung des ursprünglichen Betrags entspricht. Dies ist zwar positiv, allerdings ist die Handelshäufigkeit mit nur 193 Transaktionen im Laufe des Jahres relativ gering. Die Erfolgsquote liegt bei rund 44 %, was auf Verbesserungspotenzial hinweist.

Um unsere Strategie zu verbessern, werden wir verschiedene Werte für den Parameter „Back Rolling n“ untersuchen. Indem wir eine unterschiedliche Anzahl von Kerzen testen, beispielsweise 20, 10 oder 5, können wir deren Auswirkungen auf die Leistung unserer Strategie beurteilen. Beispielsweise können wir unseren Code ändern, um den „Back Rolling n“-Wert auf 20 zu setzen und den Backtest erneut auszuführen.

Beim Testen mit einem „Back-Rolling n“ von 20 beobachten wir eine Rendite von 90 % für den Dreimonatszeitraum, etwas niedriger als unsere ursprüngliche Einstellung von 10. Dies deutet darauf hin, dass ein kleineres „Back-Rolling n“ möglicherweise effektiver ist Erfassen kurzfristiger Trends.

Als nächstes führen wir zusätzliche Bedingungen ein, die auf den Steigungen der gleitenden Durchschnitte basieren. Beispielsweise können wir eine Anforderung implementieren, dass die Steigungen aller drei gleitenden Durchschnitte weniger als -4 betragen müssen. Das bedeutet, dass wir nur dann einen Trade eingehen, wenn alle drei Steigungen negativ sind und unter -4 liegen. Wir modifizieren unseren Code entsprechend und führen den Backtest durch.

Durch die Umsetzung der Zusatzbedingungen können wir unsere Strategie weiter verfeinern. Beim Test stellen wir für den Dreimonatszeitraum eine Rendite von 127 % fest, was auf eine Verbesserung im Vergleich zu unseren ursprünglichen Ergebnissen hinweist. Es ist jedoch wichtig zu beachten, dass diese Bedingungen auch die Handelshäufigkeit verringern können, da sie einen strengeren Filter bieten.

Lassen Sie uns nun verschiedene Ansätze für das Handelsmanagement untersuchen. Wir beginnen mit der Implementierung einer festen Stop-Loss- und Take-Profit-Strategie, bei der wir vorgegebene Werte für beide Parameter festlegen. Beispielsweise können wir einen festen Stop-Loss von 40 Pips und einen Take-Profit von 45 Pips festlegen. Nachdem wir den Code geändert und den Backtest ausgeführt haben, analysieren wir die Ergebnisse.

Mit dem festen Stop-Loss- und Take-Profit-Ansatz beobachten wir für den Dreimonatszeitraum eine Rendite von 95 %. Dies liegt zwar etwas unter unseren ursprünglichen Ergebnissen, bietet aber ein kontrolliertes Risikomanagementsystem. Allerdings ist es wichtig, die Leistung über längere Zeiträume und unterschiedliche Marktbedingungen zu bewerten, um die Wirksamkeit zu beurteilen.

Als nächstes untersuchen wir eine Trailing-Stop-Loss-Strategie. Anstatt feste Werte zu verwenden, passt sich der Stop-Loss dynamisch an, wenn der Handel zu unseren Gunsten verläuft. Beispielsweise können wir einen Trailing-Stop-Loss von 30 Pips festlegen. Das heißt, wenn sich der Preis um 30 Pips zu unseren Gunsten bewegt, wird der Stop-Loss auf die Gewinnschwelle verschoben. Wir ändern unseren Code entsprechend und führen den Backtest erneut durch.

Mit dem Trailing-Stop-Loss-Ansatz erzielen wir für den Dreimonatszeitraum eine Rendite von 120 %. Dies zeigt das Potenzial einer dynamischen Anpassung des Stop-Loss, um Gewinne zu schützen und Gewinne zu maximieren. Es ist jedoch wichtig, seine Leistung über verschiedene Zeiträume und Marktbedingungen hinweg zu bewerten, um seine Robustheit sicherzustellen.

Abschließend untersuchen wir eine Handelsmanagementstrategie basierend auf der Average True Range (ATR). Die ATR stellt ein Maß für die Marktvolatilität dar, das zur Festlegung von Stop-Loss- und Take-Profit-Niveaus genutzt werden kann. Durch die Einbindung der ATR in unsere Strategie können wir unser Risikomanagement an die vorherrschenden Marktbedingungen anpassen. Wir modifizieren unseren Code, um die ATR-basierten Stop-Loss- und Take-Profit-Levels zu implementieren und den Backtest durchzuführen.

Durch die Einbeziehung der ATR-basierten Stop-Loss- und Take-Profit-Level erzielen wir für den Dreimonatszeitraum eine Rendite von 110 %. Dies zeigt die potenzielle Wirksamkeit einer Anpassung unseres Risikomanagements an die Marktvolatilität.

Abschließend haben wir im Rahmen des Optimierungsprozesses verschiedene Parameter und Handelsmanagementansätze untersucht, um unsere Bildhauerstrategie zu verbessern. Durch die Variation des „Back Rolling n“-Parameters, die Implementierung zusätzlicher Bedingungen basierend auf der Steigung des gleitenden Durchschnitts und die Erforschung verschiedener Handelsmanagementtechniken konnten wir die Leistung der Strategie verbessern. Es ist jedoch wichtig, weitere Tests zu verschiedenen Zeitrahmen und Marktbedingungen durchzuführen und die Robustheit der Strategie zu bewerten, bevor Sie sie im Live-Handel anwenden.

Simple EMA Scalping Trading Strategy Backtest In Python (Part 2 Optimization)
Simple EMA Scalping Trading Strategy Backtest In Python (Part 2 Optimization)
  • 2022.03.03
  • www.youtube.com
This is a continuation of the previous video, here we optimize our simple EMA Scalping trading strategy and we try to backtest the different parameters sets ...
 

Handelsstrategie mit hoher Rendite und Hebeleffekt



Handelsstrategie mit hoher Rendite und Hebeleffekt

Hallo zusammen und willkommen zurück auf meinem Kanal. Heute werden wir uns mit einem Thema befassen, das wir bisher noch nicht behandelt haben: Hebelwirkung. Ich muss zugeben, dass ich aufgrund der damit verbundenen Risiken ziemlich skeptisch war. Ich möchte jedoch betonen, dass diese Videos in erster Linie pädagogischen Zwecken dienen. Ich empfehle Ihnen nicht, blind ein gehebeltes Handelssystem einzuführen, ohne dessen Auswirkungen vollständig zu verstehen. Daher werden wir in diesem Video eine zuvor verwendete Handelsstrategie verwenden, die wir bereits in früheren Videos besprochen haben, und die Auswirkungen der Integration von Hebelwirkung in unser Handelssystem untersuchen.

Beginnen wir mit einer kurzen Einführung in die Funktionsweise der Hebelwirkung. Typischerweise wird die Hebelwirkung durch ein Verhältnis wie 1:10 bis 1:1000 dargestellt, obwohl es häufiger vorkommt, dass Verhältnisse zwischen 1:10 und 1:50 liegen. Das bedeutet, dass Sie, wenn Sie ein Konto mit 1.000 $ haben, Positionen mit einem Wert von bis zu 10.000 $ kaufen oder verkaufen dürfen, wenn Sie ein Hebelverhältnis von 1:10 wählen. Durch eine Erhöhung des Leverage-Verhältnisses, sagen wir auf 1:50, könnten Sie mit den gleichen 1.000 US-Dollar auf Ihrem Konto Einkäufe im Wert von bis zu 50.000 US-Dollar tätigen. Die spezifischen Leverage-Optionen, die Ihnen zur Verfügung stehen, hängen von Ihrem Broker, dem Land, in dem er tätig ist, den Vorschriften und anderen Faktoren im Zusammenhang mit Ihrem Kontotyp ab.

Es ist jedoch wichtig zu beachten, dass die Hebelwirkung nicht ohne Kosten ist. Während es Ihre potenziellen Gewinne steigern kann, erhöht es auch die Risiken und kann Ihren Kontostand schnell erschöpfen. Anfänger werden oft von größeren Händlern oder Brokern ins Visier genommen, die ihre mangelnde Erfahrung ausnutzen. Es ist wichtig, dies im Hinterkopf zu behalten.

Beim Einsatz von Hebelwirkung sind zwei wichtige Regeln zu beachten. Erstens kann die Hebelwirkung dazu beitragen, die Gewinne zu steigern, wenn Ihre Strategie eine hohe Erfolgsquote aufweist. Umgekehrt werden Ihre Verluste auch größer, wenn Ihre Strategie eine niedrige Gewinnquote aufweist. Die Definition einer hohen oder niedrigen Gewinnquote hängt von verschiedenen Faktoren ab, wie z. B. der Strategieart, den Stop-Loss- und Take-Profit-Werten und Ihrem Geldmanagementansatz. Denken Sie immer daran, dass die Hebelwirkung ihren Preis hat. Wenn Sie Positionen mit dem Hundertfachen Ihres eigenen Geldbetrags kaufen oder verkaufen können, bedeutet das, dass Ihre Mittel in erster Linie dazu dienen, potenzielle Verluste abzudecken, die beim Handel mit deutlich größeren Beträgen schnell eintreten können.

In diesem Video verwenden wir Python, um die zuvor besprochene Strategie erneut zu testen. Wir beginnen mit der Überprüfung der Renditen mithilfe eines normalen Handelskontos und führen dann ein gehebeltes Konto in unsere algorithmische Handelsstrategie ein. Wir werden diese Variationen erneut testen, die Ergebnisse untersuchen und die Vorteile und Risiken bewerten, die mit der Verwendung eines Leveraged-Kontos verbunden sind. Der Vorteil der Verwendung von Python besteht darin, dass wir jeden Parameter nach Wunsch ändern und die Auswirkungen auf unseren Renditeprozentsatz beobachten können. Diese Rechenleistung ermöglicht es uns, die Vor- und Nachteile der Verwendung eines Leveraged-Kontos zu testen und Erkenntnisse darüber zu gewinnen.

Der Python-Code, den wir verwenden werden, ähnelt dem Code, der im vorherigen Video zum Martingal-Ansatz im Handel verwendet wurde. In der ersten Zelle werden die Daten geladen und bereinigt, der Index zurückgesetzt und andere notwendige Schritte ausgeführt. Ich werde heute nicht viel Zeit mit dem Code verbringen, da wir ihn in früheren Videos behandelt haben. Wir nutzen Unterstützungs- und Widerstandsfunktionen sowie die Erkennung von Candlestick-Mustern, um Trendumkehrungen zu erkennen und Handelssignale zu generieren. Bei dieser Strategie konzentrieren wir uns auf Ablehnungskerzenmuster, die in der Nähe von Unterstützungs- oder Widerstandsniveaus als potenzielle Trendumkehrsignale auftreten.

High Return Trading Strategy Using Leverage Effect
High Return Trading Strategy Using Leverage Effect
  • 2022.02.17
  • www.youtube.com
Here we Backtest an Algorithmic Trading Strategy using Python on a Leverage Account. The leverage can be a variable depending on the strategy you are intend...
 

Algorithmischer Backtest der Martingale-Swing-Trading-Strategie in Python



Algorithmischer Backtest der Martingale-Swing-Trading-Strategie in Python

Heute werden wir uns mit dem faszinierenden Thema des Martingal-Ansatzes in Kombination mit einer erfolgreichen Handelsstrategie befassen. Wenn Sie sich unser vorheriges Video zur Martingal-Methode oder andere Videos auf diesem Kanal, die die von uns verwendete Strategie beschreiben, noch nicht angesehen haben, empfehle ich Ihnen dringend, sich diese zuerst anzusehen. Diese Videos behandeln Unterstützungs- und Widerstandsniveaus sowie Kerzenmuster und bieten eine solide Grundlage für das Verständnis unseres Ansatzes in diesem Video. Zur Vereinfachung füge ich einige Links in die Videobeschreibung ein.

Darüber hinaus können Interessierte über den in der Beschreibung angegebenen Link den Python-Code herunterladen, den ich zum Backtesten dieser Strategie verwende. Mit diesem Code können Sie mitverfolgen und die Ergebnisse selbst erkunden.

Lassen Sie uns nun einen kurzen Rückblick für diejenigen geben, die neu auf unserem Kanal sind oder sich uns gerade anschließen. Bei der Martingal-Methode verdoppeln wir unsere Positionsgröße jedes Mal, wenn wir einen Verlusthandel abschließen. Die Idee hinter diesem Ansatz besteht darin, frühere Verluste mit einem großen Sieg auszugleichen. In einem früheren Video haben wir die Martingal-Methode erklärt und auf eine völlig zufällige Handelsstrategie angewendet, die zufällig zwischen Kauf- und Verkaufspositionen wählt.

In diesem Video gehen wir einen anderen Ansatz. Wir werden die Martingal-Methode auf eine erfolgreiche Handelsstrategie anwenden. Unsere Strategie besteht darin, Unterstützungs- und Widerstandsniveaus sowie spezifische Kerzenmuster zu identifizieren, die auf mögliche Trendumkehrungen hinweisen. Wenn wir ein Kerzenmuster in der Nähe eines Unterstützungs- oder Widerstandsniveaus erkennen, führen wir unseren Handel entsprechend aus. Die Stop-Loss- und Take-Profit-Werte werden auf der Grundlage eines Verhältnisses ermittelt, das Take-Profit/Stop-Loss-Verhältnis genannt wird.

Nun ist es wichtig zu beachten, dass die Ergebnisse dieser Strategie bereits in früheren Videos getestet wurden und positive Ergebnisse gezeigt haben. Das Ziel hier besteht darin, herauszufinden, ob wir die Gewinne weiter steigern können, indem wir den Martingal-Ansatz zu dieser Strategie hinzufügen.

Okay, tauchen wir in den Python-Code ein. Für dieses Video laden und bereinigen wir zunächst die täglichen EUR/USD-Daten von 2003 bis 2021. Anschließend überprüfen wir, ob der Datenrahmen korrekt geladen wurde, indem wir das Ende des Datenrahmens drucken.

Als nächstes haben wir die Funktionen zur Erkennung von Unterstützungs- und Widerstandsniveaus, die wir in unserem Programm verwenden werden. Wenn Sie eine detaillierte Erklärung dieser Funktionen benötigen, schauen Sie sich bitte unsere vorherigen Videos an.

Wir haben auch andere Funktionen mit den Namen „is_engulfing“, „is_star“ und „close_to_resistance“ oder „close_to_support“. Diese Funktionen helfen uns, bestimmte Candlestick-Muster zu identifizieren und festzustellen, ob sie sich in der Nähe von Unterstützungs- oder Widerstandsniveaus befinden. Diese Muster werden zur Generierung unserer Handelssignale verwendet.

In der Signalerzeugungszelle generieren wir unsere Signale basierend auf den von uns erkannten Kerzenmustern. Wenn wir ein bärisches Engulfing-Muster oder ein anderes Verkaufssignal in der Nähe eines Widerstandsniveaus finden, betrachten wir es als Verkaufssignal und weisen der Signalspalte in unserem Datenrahmen den Wert 1 zu. Wenn wir in der Nähe eines Unterstützungsniveaus ein bullisches Engulfing-Muster oder ein anderes Kaufsignal finden, betrachten wir dies ebenfalls als Kaufsignal und weisen der Signalspalte den Wert 2 zu. In allen anderen Fällen ist der Signalwert 0, was bedeutet, dass kein Signal vorhanden ist.

Jetzt können wir das Paket backtesting.py einbinden, um unsere Strategie erneut zu testen. Wir definieren eine Funktion namens „signal“, die die Signalwerte für jede Zeile in unserem Datenrahmen zurückgibt. Diese Funktion wird in unserer benutzerdefinierten Klasse namens „CandleStrategy“ verwendet, die von der Strategieklasse des Moduls backtesting.py erbt.

In unserer CandleStrategy-Klasse initialisieren wir die Größe unserer Handelsposition auf 0,05, was 5 % des von uns gehaltenen Eigenkapitals entspricht. Wir handeln jedes Mal mit dieser Positionsgröße, wenn wir ein Signal erhalten.

Wenn der Signalwert 1 ist (Verkaufssignal), prüfen wir, ob wir offene Positionen haben. Wenn wir das tun, schließen wir die bestehende Position und setzen die Positionsgröße auf Null. Anschließend eröffnen wir eine neue Short-Position mit der zuvor definierten Positionsgröße.

Wenn der Signalwert hingegen 2 ist (Kaufsignal), folgen wir einem ähnlichen Prozess. Wir prüfen, ob wir offene Positionen haben, schließen diese gegebenenfalls und eröffnen eine neue Long-Position mit der vordefinierten Positionsgröße.

Jetzt definieren wir unsere Take-Profit- und Stop-Loss-Level. Das Take-Profit-Niveau wird berechnet, indem der Einstiegspreis mit dem Take-Profit/Stop-Loss-Verhältnis multipliziert wird. Das Stop-Loss-Niveau wird berechnet, indem der Einstiegspreis mit dem negativen Wert des Take-Profit/Stop-Loss-Verhältnisses multipliziert wird. Diese Werte stellen sicher, dass unser Take-Profit-Level weiter vom Einstiegspreis entfernt ist als das Stop-Loss-Level.

Schließlich führen wir unseren Backtest mit der CandleStrategy-Klasse durch und drucken die Ergebnisse aus. Wir berechnen verschiedene Leistungskennzahlen wie Gesamtrendite, durchschnittliche Tagesrendite, maximalen Drawdown und die Anzahl der ausgeführten Trades.

Lassen Sie uns nun den Backtest durchführen und die Ergebnisse analysieren.

Nachdem wir den Backtest ausgeführt haben, können wir die Ergebnisse beobachten. Die Gesamtrendite, die durchschnittliche Tagesrendite und der maximale Drawdown sind wichtige Kennzahlen zur Bewertung der Leistung unserer Strategie.

In unserem Fall beträgt die Gesamtrendite 256,17 %, was bedeutet, dass sich unsere Anfangsinvestition mehr als verdoppelt hat. Die durchschnittliche tägliche Rendite beträgt 0,04 %, was auf eine durchweg positive Rendite über den Backtestzeitraum hindeutet. Der maximale Drawdown beträgt 10,98 %, was den größten Rückgang der Aktienkurve von einem Höchstpunkt zu einem darauffolgenden Tiefpunkt darstellt.

Diese Ergebnisse zeigen, dass unsere erfolgreiche Handelsstrategie in Kombination mit dem Martingal-Ansatz im getesteten Zeitraum profitabel war. Es ist jedoch wichtig zu beachten, dass die Wertentwicklung in der Vergangenheit keinen Rückschluss auf zukünftige Ergebnisse zulässt und diese Strategie gründlich evaluiert und validiert werden sollte, bevor sie im Live-Handel eingesetzt wird.

Zusammenfassend lässt sich sagen, dass der Martingal-Ansatz in Kombination mit einer erfolgreichen Handelsstrategie möglicherweise die Gesamtrentabilität der Strategie steigern kann. Es ist jedoch wichtig, die damit verbundenen Risiken sorgfältig abzuwägen, beispielsweise das Potenzial für große Verluste und den Bedarf an ausreichend Kapital, um eine mehrfache Verdoppelung der Positionsgrößen aufrechtzuerhalten.

Vielen Dank, dass Sie sich diesem Video angeschlossen haben, und ich hoffe, dass Sie es informativ und nützlich fanden. Wenn Sie Fragen oder Anregungen haben, hinterlassen Sie diese bitte in den Kommentaren unten. Vergessen Sie nicht, unseren Kanal zu liken und zu abonnieren, um weitere Handelsstrategien und Tutorials zu erhalten. Viel Spaß beim Handeln!

Martingale Swing Trading Strategy Algorithmic Backtest In Python
Martingale Swing Trading Strategy Algorithmic Backtest In Python
  • 2022.02.10
  • www.youtube.com
Python algorithmic strategy used for backtesting the Martingale Swing Trading Strategy, a winning indicator that was presented in previous videos. Martingale...
 

Backtesting der Martingale-Handelsstrategie für den algorithmischen Handel



Backtesting der Martingale-Handelsstrategie für den algorithmischen Handel

Heute besprechen wir den Martingale-Ansatz, der in jede Handelsstrategie integriert werden kann, um verlorene Trades auszugleichen. Wir werden diese Methode mit Python erneut testen und uns mit den Vorteilen und Risiken befassen, die mit der Implementierung von Martingale verbunden sind.

Stellen wir uns vor, wir gehen mit zwanzig Dollar in der Tasche in ein Casino und beschließen, Roulette zu spielen und nur auf Farben zu setzen. Wir setzen einen Dollar auf Rot oder Schwarz. Wenn unsere erste Wette auf Rot verliert, bleiben uns 19 Dollar. In der nächsten Runde verdoppeln wir unseren Einsatz auf zwei Dollar, da wir zuvor eine verlorene Wette hatten. Sollte auch diese Wette verlieren, bleiben uns 17 Dollar. Wir verdoppeln weiterhin unseren Einsatz jedes Mal, wenn wir verlieren, mit dem Ziel, die vorherigen Verluste auszugleichen. Am Ende haben wir eine gewinnende Wette, die die vorherigen Verluste abdeckt und einen kleinen Gewinn hinzufügt. In diesem Beispiel erhalten wir insgesamt 21 Dollar, etwas mehr als unser ursprünglicher Betrag. Dieser Ansatz, bei dem der Einsatz nach einer Niederlage verdoppelt wird, wird als Martingale-Ansatz bezeichnet.

Die Martingale-Methode erscheint zunächst vielversprechend und kann den Eindruck schneller und substanzieller Gewinne erwecken. Es ist jedoch wichtig, die mit diesem Ansatz verbundenen Risiken zu verstehen. Um diese Methode und ihre Risiken besser zu verstehen, werden wir die Strategie mithilfe eines Monte-Carlo-Ansatzes testen. Bei diesem Ansatz werden Zufallszahlen verwendet, um Signale für den Kauf oder Verkauf von Positionen zu generieren, wobei technische Indikatoren oder benutzerdefinierte Vorhersagen völlig außer Acht gelassen werden. Die Signale basieren ausschließlich auf einer gleichmäßigen Zufallsverteilung.

Um den Backtest zu implementieren, schreiben wir Python-Code. Wir beginnen mit dem Import der notwendigen Bibliotheken, wie z. B. Pandas für die Datenmanipulation. Wir laden und bereinigen die Daten und entfernen Zeilen mit einem Handelsvolumen von Null. Nachdem wir die Daten vorbereitet haben, generieren wir die Zufallssignale mithilfe der Zufallsfunktion des Numpy-Moduls. Für jede Kerze generieren wir eine Zufallszahl zwischen 0 und 1. Wenn die Zahl unter 0,5 liegt, weisen wir ein Verkaufssignal zu (1), und wenn sie über 0,5 liegt, weisen wir ein Kaufsignal zu (2).

Als Nächstes definieren wir eine Strategieklasse namens „MyStrategy“, die von der Strategieklasse der Backtesting-Bibliothek erbt. Die anfängliche Positionsgröße ist auf 10 Einheiten festgelegt. Wir definieren außerdem eine Variable, „my_size“, um die Positionsgröße zu verfolgen, die sich basierend auf dem Martingale-Ansatz ändert. Wenn ein positives Signal generiert wird und keine offenen Trades vorhanden sind, eröffnen wir gemäß dem Martingale-Ansatz einen neuen Trade mit einer Positionsgröße, die „my_size“ multipliziert mit 2 entspricht. Wenn geschlossene Geschäfte vorliegen und das letzte Geschäft profitabel war, setzen wir die Positionsgröße auf die ursprüngliche Größe zurück. Dadurch wird sichergestellt, dass wir nach einem erfolgreichen Trade zur ursprünglichen Positionsgröße zurückkehren. Wenn ein Kauf- oder Verkaufssignal generiert wird und keine offenen Geschäfte vorliegen, legen wir die Stop-Loss- und Take-Profit-Werte relativ zum letzten Schlusskurs fest und führen den entsprechenden Handel aus.

Sobald die Strategie definiert ist, führen wir den Backtest mit einem Anfangskapital von 10.000 US-Dollar und ohne Provisionen durch. Die Backtest-Statistik zeigt eine Rendite von -4,8 %, was auf einen Verlust hindeutet. Das Aktiendiagramm zeigt, dass die Strategie anfangs einige Gewinne erzielte, ab einem bestimmten Punkt jedoch zu sinken begann. Die Gewinnquote liegt erwartungsgemäß bei nahezu 50 %, da die Signale zufällig sind. Die Gesamtzahl der Trades beträgt 100.

Zur weiteren Untersuchung ändern wir die Stop-Loss- und Take-Profit-Werte auf 400 Pips und führen den Backtest erneut durch. Diese Anpassung löst das Problem jedoch nicht. Der Rückgang des Eigenkapitals ist darauf zurückzuführen, dass nicht genügend Mittel vorhanden sind, um die Positionsgröße nach einer Reihe von Verlustgeschäften weiter zu verdoppeln. Um dies zu beheben, verringern wir die anfängliche Positionsgröße auf 5 und setzen die Stop-Loss- und Take-Profit-Werte auf 300 Pips. Nachdem wir diese Anpassungen vorgenommen haben, führen wir den Backtest erneut durch. Die aktualisierte Strategie bringt eine Rendite von -0,7 %, was einen geringeren Verlust im Vergleich zur Vorgängerversion bedeutet. Allerdings zeigt die Aktienkurve immer noch einen rückläufigen Trend, wenn auch in einem langsameren Tempo. Die Gewinnquote liegt weiterhin bei nahezu 50 % und die Gesamtzahl der Trades beträgt immer noch 100.

Anhand dieser Ergebnisse können wir erkennen, dass selbst bei Anpassungen der Positionsgröße, des Stop-Loss und der Take-Profit-Niveaus der Martingale-Ansatz in diesem Szenario mit zufälligen Signalen kein profitables Ergebnis liefert. Das sinkende Eigenkapital weist auf das potenzielle Risiko erheblicher Verluste und die Möglichkeit einer Erschöpfung des Handelskontos hin.

Es ist wichtig zu beachten, dass dieser Backtest unter der Annahme zufälliger Signale durchgeführt wurde. Im realen Handel werden üblicherweise Strategien eingesetzt, die auf technischer Analyse oder Fundamentalanalyse basieren, um Handelssignale zu generieren. Diese Strategien zielen darauf ab, Muster, Trends oder Chancen auf der Grundlage von Marktdaten zu identifizieren, anstatt sich auf zufällige Signale zu verlassen. In solchen Fällen ist der Martingale-Ansatz möglicherweise nicht geeignet oder effektiv.

Darüber hinaus birgt der Martingale-Ansatz ein hohes Risiko. Dabei wird davon ausgegangen, dass auf Verluststrähnen Gewinnsträhnen folgen, die es dem Händler ermöglichen, Verluste auszugleichen. In der Realität gibt es jedoch keine Garantie dafür, dass gewinnbringende Trades auf verlustbringende Trades folgen, und es besteht immer die Möglichkeit aufeinanderfolgender Verluste. Eine Verdoppelung der Positionsgröße nach jedem Verlust kann schnell zu erheblichen Verlusten und zur Erschöpfung des Kontos führen, insbesondere wenn die Marktbedingungen ungünstig oder volatil sind.

Während der Martingale-Ansatz aufgrund seines Potenzials für schnelle Erholung und Gewinne verlockend erscheinen mag, ist es wichtig, die damit verbundenen Risiken zu berücksichtigen und seine Eignung für Ihre Handelsstrategie sorgfältig abzuwägen. Die Implementierung von Risikomanagementtechniken, wie z. B. die Festlegung strenger Stop-Loss-Werte, die Aufrechterhaltung der richtigen Positionsgröße und die Diversifizierung Ihres Handelsansatzes, können dazu beitragen, die damit verbundenen Risiken zu mindern.

Zusammenfassend lässt sich sagen, dass der Martingale-Ansatz eine riskante Strategie sein kann, insbesondere wenn er mit Zufallssignalen verwendet wird. Es ist wichtig, jede Handelsstrategie gründlich zu testen und zu bewerten und dabei sowohl die potenziellen Gewinne als auch die damit verbundenen Risiken zu berücksichtigen.

Martingale Trading Strategy Backtesting For Algorithmic Trading
Martingale Trading Strategy Backtesting For Algorithmic Trading
  • 2022.02.03
  • www.youtube.com
Testing the Martingale trading strategy for algorithmic trading in python, I hope you'll enjoy it.Are you interested in algorithmic trading and looking for a...
 

Backtesting der Trading-Strategie mit gleitendem Durchschnitt in Python



Backtesting der Trading-Strategie mit gleitendem Durchschnitt in Python

Es kommt häufig vor, dass einfache Strategien zugunsten komplexerer Modelle übersehen werden. Allerdings sollten wir die Kraft der Einfachheit nicht unterschätzen. Heute stelle ich Ihnen eine unkomplizierte Methode vor, die mit komplexen Handelssystemen mithalten kann und positive Renditen erzielt. Der Vorteil einfacher Regeln besteht darin, dass sie für den algorithmischen Handel mit Python leicht automatisiert werden können. Wir können diese Strategie mit verschiedenen Währungen testen, um ihre Rentabilität sicherzustellen.

Lassen Sie uns in die Details dieser einfachen Strategie eintauchen. Zunächst betrachten wir die Kurve des gleitenden 200-Tage-Durchschnitts als unseren Indikator. Wenn die Kerzen über der Kurve liegen, deutet dies auf einen Aufwärtstrend und eine Kaufposition hin. Wenn sich die Kerzen hingegen unterhalb der Kurve des gleitenden Durchschnitts befinden, signalisiert dies einen Abwärtstrend und impliziert eine Verkaufsposition.

Um den Einstiegspunkt für eine Kaufposition zu bestimmen, untersuchen wir die vorhergehenden Kerzen. Wir vergleichen den niedrigsten Wert der aktuellen Kerze mit den niedrigsten Werten der vorherigen Kerzen. Wenn der Tiefstwert der aktuellen Kerze unter allen vorangehenden Werten liegt, haben wir den Einstiegspunkt für eine Kaufposition identifiziert. Das gleiche Konzept gilt in umgekehrter Richtung für eine Verkaufsposition.

Obwohl diese Strategie einfach erscheinen mag, bringt sie doch ihre eigenen Herausforderungen mit sich. Der erste zu berücksichtigende Parameter ist die Länge des gleitenden Durchschnitts. Sollte es 200, 100 oder etwas anderes sein? Dies kann durch Backtesting für ein bestimmtes Währungspaar verfeinert werden, um die Rendite zu maximieren. Ein weiterer Parameter ist die Anzahl der zu berücksichtigenden vorhergehenden Kerzen. Sollten wir 7, 8, 10 oder 20 Kerzen analysieren? Durch das Experimentieren mit verschiedenen Werten können wir die Auswirkungen auf die Strategieleistung beurteilen.

Dieser Indikatorteil ist relativ einfach, aber um die Strategie effektiv zu machen, müssen wir sie mit einem Handelsmanagementansatz kombinieren. Dabei werden die Stop-Loss- und Take-Profit-Werte definiert. Wir haben zwei Möglichkeiten, diese Werte festzulegen: Sie können sich auf die durchschnittliche wahre Reichweite (ATR) des Marktes beziehen oder wir können feste Werte für alle Trades verwenden. Es ist wichtig, den geeigneten Handelsmanagementansatz zu wählen, um positive Renditen sicherzustellen. Zusätzlich kann ein Trailing-Stop-Loss eingesetzt werden, der den Stop-Loss-Wert basierend auf der ATR anpasst.

Im Code können wir mit verschiedenen Kombinationen dieser Parameter experimentieren, um die optimalen Einstellungen zu finden und die Leistung der Strategie zu bewerten. Obwohl es sich um eine einfache Strategie handelt, müssen relativ viele Parameter berücksichtigt werden.

Um diese Strategie in Python umzusetzen, verwenden wir eine Jupyter Notebook-Datei. Wir laden die Daten, wenden den exponentiellen gleitenden Durchschnitt (EMA) und die ATR-Berechnungen mit dem Modul pandas-technical-analysis an. Anschließend definieren wir Funktionen zur Generierung von EMA-Signalen und High-Low-Signalen. Wir zeichnen die Daten mit der EMA-Kurve auf, um visuell zu überprüfen, ob alles korrekt funktioniert.

Als nächstes wenden wir die EMA-Signal- und High-Low-Signalfunktionen auf unseren Datenrahmen an, was zu Signalen für den Kauf oder Verkauf von Positionen führt. Durch die Untersuchung der aufgezeichneten Signale können wir ihre Genauigkeit und Wirksamkeit bei der Identifizierung von Trends und Einstiegspunkten überprüfen.

Um die Strategie zu testen, definieren wir eine Funktion, die anhand der Signale Kauf- oder Verkaufspositionen ermittelt und die Stop-Loss- und Take-Profit-Werte basierend auf der ATR oder festen Verhältnissen festlegt. Ein Backtest dieser Strategie auf den Euro-US-Dollar-Vier-Stunden-Charts zwischen 2003 und 2021 zeigt eine positive Rendite von rund 29 %.

Es ist jedoch von entscheidender Bedeutung, die Aktienkurve zu beurteilen und zu verstehen, dass die Strategie zwar in Trendmärkten gut abschneiden kann, in Phasen horizontaler Preisbewegungen jedoch Probleme haben kann. Durch das Experimentieren mit verschiedenen Stop-Loss- und Take-Profit-Konfigurationen, wie z. B. der Verwendung fester Werte anstelle von ATR-basierten Werten, können wir die Leistung der Strategie analysieren und entsprechend anpassen.

Zusammenfassend lässt sich sagen, dass selbst die einfachsten Strategien eine sorgfältige Abwägung der Parameter und Handelsmanagementansätze erfordern, um ihre Wirksamkeit sicherzustellen. Während diese Strategie auf einem Basisindikator wie dem gleitenden Durchschnitt basiert, kann sie in Kombination mit geeigneten Handelsmanagementtechniken dennoch profitable Handelssignale generieren.

Sobald wir die Strategie umgesetzt und ein Backtesting durchgeführt haben, ist es wichtig, ihre Leistungskennzahlen zu bewerten. Einige wichtige zu berücksichtigende Kennzahlen sind die Gesamtzahl der Trades, die Gewinnrate (Prozentsatz der profitablen Trades), der durchschnittliche Gewinn pro Trade, der maximale Drawdown (der größte Rückgang von der Spitze zur Talsohle) und das Risiko-Ertrags-Verhältnis.

Durch die Analyse dieser Kennzahlen können wir feststellen, ob die Strategie unseren Erwartungen entspricht und mit unserer Risikotoleranz übereinstimmt. Es ist wichtig, sich daran zu erinnern, dass keine Strategie narrensicher ist und dass der Handel immer mit Risiken verbunden ist. Daher sind ein angemessenes Risikomanagement und eine Diversifizierung der Anlagen entscheidend für den langfristigen Erfolg.

Darüber hinaus wird empfohlen, die Strategie einem Robustheitstest zu unterziehen. Dazu gehört die Beurteilung seiner Leistung unter unterschiedlichen Marktbedingungen, wie etwa unterschiedlichen Zeiträumen, Währungspaaren oder Anlageklassen. Auf diese Weise können wir die Anpassungsfähigkeit der Strategie beurteilen und sicherstellen, dass ihre Rentabilität nicht auf bestimmte Szenarien beschränkt ist.

Darüber hinaus lohnt es sich, die Grenzen dieser einfachen Strategie zu berücksichtigen. Es kann sein, dass es in Zeiten hoher Volatilität oder plötzlicher Preisschwankungen nicht alle Marktnuancen erfasst oder eine optimale Leistung erbringt. In solchen Fällen können ausgefeiltere Handelssysteme oder zusätzliche Indikatoren erforderlich sein, um die Leistung zu verbessern.

Abschließend sei darauf hingewiesen, dass es wichtig ist, die Strategie kontinuierlich zu überwachen und an die sich ändernden Marktbedingungen anzupassen. Die regelmäßige Überprüfung der Leistung, die Vornahme notwendiger Anpassungen und die ständige Information über Markttrends und Neuigkeiten tragen zur langfristigen Tragfähigkeit der Strategie bei.

Denken Sie daran, dass erfolgreicher Handel das Ergebnis einer klar definierten Strategie, disziplinierter Umsetzung sowie kontinuierlichem Lernen und Anpassung ist. Viel Glück bei Ihren Handelsbemühungen!

Moving Average Trading Strategy Backtesting In Python
Moving Average Trading Strategy Backtesting In Python
  • 2022.01.20
  • www.youtube.com
Welcome to this video on a beginner-friendly automated trading strategy using Python. In this video, we will be discussing a simple yet effective trading str...
 

Trailing-Stop-Backtest für algorithmischen Handel in Python



Trailing-Stop-Backtest für algorithmischen Handel in Python

Hallo zusammen und willkommen zu diesem Video. Heute werden wir verschiedene Methoden zur Implementierung von Stop-Loss im algorithmischen Handel untersuchen. Konkret konzentrieren wir uns auf Stop-Loss-Techniken, die leicht in Trading-Bots integriert werden können, indem man sie in numerischen Programmen codiert.

Es ist wichtig zu beachten, dass es zwar verschiedene Möglichkeiten gibt, Stop-Loss-Werte zu bestimmen, einige Methoden jedoch komplexer in ein Programm einzubinden sind. In diesem Video testen wir eine Strategie anhand von Unterstützungs- und Widerstandsniveaus sowie Candlestick-Mustern, die wir zuvor in anderen Videos besprochen haben. Wir werden die Stop-Loss-Werte jedoch variieren, indem wir vier verschiedene Fälle betrachten.

Bei der ersten Methode wird eine konstante Stop-Loss-Distanz verwendet, die vom Händler für alle Trades vorgegeben wird. Unabhängig von der Kaufposition bleibt die Stop-Loss-Distanz gleich.

Die zweite Methode ist dynamischer und nutzt die durchschnittliche wahre Reichweite (Average True Range, ATR). Hier steht die Stop-Loss-Distanz in direktem Zusammenhang mit der ATR, d. h. sie variiert je nach Marktvolatilität an einer bestimmten Position.

Die dritte Methode ist ein Trailing-Stop-Loss mit fester Distanz. Dies ist eine häufig verwendete Trailing-Stop-Loss-Strategie, bei der für alle Positionen der gleiche Abstand beibehalten wird, der als Trailing-Stop-Loss fungiert.

Die vierte und letzte Methode ist ein Trailing-Stop-Loss, der die durchschnittliche wahre Spanne zum Zeitpunkt der Ausführung der Handelsposition berücksichtigt. Das bedeutet, dass die Stop-Loss-Distanz auf der Grundlage der ATR gewählt wird, die die Volatilität des Marktes genau zu diesem Zeitpunkt widerspiegelt.

Zusammenfassend werden wir dieselbe Strategie mit diesen vier verschiedenen Methoden zur Definition von Stop-Loss-Werten testen. Es ist erwähnenswert, dass sich die Wahl der Stop-Loss-Werte auch auf unsere Take-Profit-Werte auswirkt. In den meisten Fällen werden die Take-Profit-Werte anhand des Verhältnisses zwischen der Take-Profit-Distanz und der Stop-Loss-Distanz ermittelt.

Schauen wir uns nun die Jupyter Notebook-Datei an, um zu sehen, wie diese Methoden implementiert werden. Die Datei beginnt mit dem Importieren der erforderlichen Module und dem Laden der CSV-Datei mit den Preisdaten für das Währungspaar EUR/USD von 2003 bis 2021. Wir bereinigen die Daten, fügen die Spalte „Average True Range“ (ATR) hinzu und definieren Funktionen für Unterstützung und Widerstandsniveaus sowie Candlestick-Muster.

Wir führen außerdem Funktionen zur Prüfung auf Engulfing-Muster sowie die Nähe zu Unterstützungs- und Widerstandsniveaus ein. Diese Funktionen helfen uns, die Strategie auf der Grundlage von Candlestick-Mustern in der Nähe von Unterstützungs- oder Widerstandsniveaus zu entwickeln. Wir fügen unserem Datenrahmen eine Signalspalte hinzu, die die Signale als bärisch, bullisch oder kein Signal kategorisiert.

Um unsere Strategie zu testen, nutzen wir das Backtesting-Modul und definieren die erste Stop-Loss-Methode, die eine feste Stop-Loss- und Take-Profit-Distanz beinhaltet, die vom Händler manuell festgelegt wird. Wir beginnen mit einem Bargeldbetrag von 10.000 US-Dollar und erhalten die Ergebnisse des Backtests, einschließlich Rendite, Gewinnquote, beste und schlechteste Trades und maximaler Drawdown.

Als nächstes implementieren wir die zweite Methode, die die ATR nutzt, um die Stop-Loss- und Take-Profit-Abstände zu definieren. Wir führen Faktoren ein, um die Abstände basierend auf den ATR-Werten anzupassen und die Strategie einem Backtest zu unterziehen. Wir vergleichen die Ergebnisse mit der vorherigen Methode und beobachten die Unterschiede bei den Renditen und anderen Leistungskennzahlen.

Als Nächstes implementieren wir die dritte Methode, bei der es sich um einen Trailing-Stop-Loss mit festem Abstand handelt. Hier müssen wir nur die anfängliche Stop-Loss-Distanz angeben und der Trailing-Stop-Loss passt sich entsprechend an. Wir testen die Strategie mit einem festen Abstand von 500 Pips für das EUR/USD-Paar.

Abschließend analysieren wir die Ergebnisse und stellen fest, dass die Trailing-Stop-Loss-Methode mit fester Distanz die höchste Rendite von ca. 131 % liefert. Während die anderen Methoden ebenfalls günstige Renditen liefern, zeigt die Trailing-Stop-Loss-Methode in diesem Fall eine bessere Leistung.

Zusammenfassend haben wir dieselbe Strategie mit vier verschiedenen Stop-Loss-Methoden getestet, die jeweils unterschiedliche Vorteile und Überlegungen bieten. Die Wahl der Stop-Loss-Methode hängt letztendlich von den Präferenzen des Händlers und den spezifischen Marktbedingungen ab.

Die konstante Stop-Loss-Methode bietet Einfachheit und einfache Implementierung. Es ermöglicht ein konsistentes Risikomanagement über alle Trades hinweg, unabhängig von den Marktbedingungen. Es kann jedoch sein, dass es sich nicht effektiv an veränderte Volatilitätsniveaus anpasst, was möglicherweise zu größeren Stop-Loss-Abständen in Zeiten hoher Volatilität oder zu engeren Stop-Loss-Abständen in Zeiten geringer Volatilität führt.

Die ATR-basierte Stop-Loss-Methode befasst sich mit der Frage der Anpassung an die Marktvolatilität. Durch die Verwendung der ATR als Maß für die Volatilität passt sich die Stop-Loss-Distanz dynamisch an die aktuellen Marktbedingungen an. Dies kann zum Schutz vor größeren Verlusten bei hoher Volatilität beitragen und bei geringer Volatilität mehr Spielraum schaffen. In Zeiten hoher Volatilität kann es jedoch zu größeren Stop-Loss-Abständen kommen, was möglicherweise zu häufigeren Stop-Outs führt.

Die Trailing-Stop-Loss-Methode mit fester Distanz kombiniert die Vorteile eines Trailing-Stop-Loss mit der Einfachheit einer festen Distanz. Es ermöglicht eine potenzielle Gewinnmaximierung, indem der Stop-Loss hinter dem Preis verschoben wird, wenn dieser sich zugunsten des Handels bewegt. Diese Methode ist besonders in Trendmärkten nützlich, wo größere Gewinne erzielt werden können. Es kann jedoch sein, dass es keinen wirksamen Schutz vor schnellen Preisumkehrungen bietet, da der feste Abstand in Situationen mit hoher Volatilität möglicherweise nicht genügend Puffer bietet.

Die ATR-basierte Trailing-Stop-Loss-Methode kombiniert die Vorteile der ATR-basierten Methode und der Trailing-Stop-Loss-Methode. Durch die Berücksichtigung der ATR zum Zeitpunkt des Handelseintritts wird die Trailing-Stop-Loss-Distanz basierend auf der Marktvolatilität zu diesem Zeitpunkt angepasst. Dies ermöglicht einen adaptiveren und reaktionsfähigeren Ansatz für das Risikomanagement. Es kann dabei helfen, größere Trends zu erfassen und gleichzeitig Schutz vor plötzlichen Umkehrungen zu bieten. Bei hoher Volatilität kann es jedoch zu größeren Stop-Loss-Abständen kommen, was möglicherweise zu häufigeren Stop-Outs führt.

Für Händler ist es wichtig, bei der Auswahl einer Stop-Loss-Methode ihre Risikotoleranz, ihren Handelsstil und ihre Marktbedingungen sorgfältig abzuwägen. Backtesting und die Analyse der Leistung verschiedener Methoden können dabei helfen, eine fundierte Entscheidung zu treffen. Darüber hinaus sollte sich das Risikomanagement nicht nur auf Stop-Loss-Orders verlassen, sondern auch die Positionsgröße, Diversifizierung und das gesamte Portfoliomanagement berücksichtigen.

Denken Sie daran, dass keine Stop-Loss-Methode narrensicher ist und es dennoch zu Verlusten kommen kann. Ein ordnungsgemäßes Risikomanagement und die kontinuierliche Überwachung der Marktbedingungen sind für einen erfolgreichen Handel unerlässlich.

Trailing Stop Backtest For Algorithmic Trading in Python
Trailing Stop Backtest For Algorithmic Trading in Python
  • 2021.11.27
  • www.youtube.com
This video tests the Stop Loss VS Trailing Stop methods for Algorithmic Trading using python. Backtests are applied to one trading strategy showing the diffe...
 

In Python automatisierte RSI-Divergenz | Algorithmischer Handel



In Python automatisierte RSI-Divergenz | Algorithmischer Handel

Hallo zusammen und willkommen an Bord dieses Videos. Heute werden wir die RSI-Divergenz diskutieren und verschiedene Strategien erkunden, die diesen Indikator im Handel nutzen. Bevor wir loslegen, habe ich in der Beschreibung einen Download-Link bereitgestellt, über den Sie auf die in diesem Video verwendete Jupyter Notebook-Datei zugreifen können.

Zunächst müssen wir einen Code schreiben, der die lokalen Minima und Maxima sowohl des Preises als auch des RSI erkennen kann. Diese Punkte werden im Diagramm als violette Punkte markiert. Der hier verwendete Algorithmus identifiziert ein Hoch einer Kerze als Maximum, wenn es höher ist als die fünf benachbarten Kerzen auf jeder Seite. Ebenso gilt ein niedriger Wert einer Kerze als Minimum, wenn er niedriger ist als die fünf Kerzen auf der linken und rechten Seite. Sie können diese Zahlen entsprechend Ihrer Präferenz für die Erkennung von Extrempunkten anpassen.

Als nächstes passen wir die erkannten Minima und Maxima des Preises und des RSI in lineare Steigungen ein. Dabei geht es darum, die am besten passenden Geraden zu finden, die durch diese Punkte verlaufen. Am Ende erhalten wir zwei verschiedene Steigungen: eine für den Preis (grün) und eine für den RSI (lila). Diese Steigungen stellen die Trendrichtung der jeweiligen Indikatoren dar.

Anschließend können wir die Steigungen des Preises und des RSI vergleichen, um festzustellen, ob eine Divergenz vorliegt. Bei einem Aufwärtstrend sollten beide Steigungen positiv sein, was auf höhere Tiefststände des Preises und höhere Hochs des RSI hinweist. Umgekehrt sollten bei einem Abwärtstrend beide Steigungen negativ sein. Wenn die Steigungen unterschiedliche Vorzeichen haben, beispielsweise eine positive Steigung für den Preis und eine negative Steigung für den RSI oder umgekehrt, deutet dies auf eine Divergenz hin.

Obwohl es verschiedene Ansätze zur Divergenzanalyse gibt, werden wir in diesem Video zwei Methoden untersuchen. Die erste Methode besteht darin, mehrere Extrempunkte mithilfe einer polynomialen Regression anzupassen, sodass wir mehr als zwei Punkte gleichzeitig berücksichtigen können. Die zweite Methode konzentriert sich auf den Vergleich der letzten beiden Minima und Maxima des Preises und des RSI. Durch den Vergleich der Unterschiede zwischen diesen Punkten können wir Divergenzen erkennen.

Obwohl Strategien, die die RSI-Divergenz nutzen, im manuellen Handel häufig diskutiert werden, konzentrieren sie sich normalerweise auf den Trend zwischen zwei aufeinanderfolgenden Punkten. In diesem Video stellen wir einen numerischen Ansatz vor, der Steigungsanpassung und polynomiale Regression nutzt, um die gleichzeitige Analyse mehrerer Punkte zu ermöglichen.

Im gesamten Video werden wir diese Divergenzmethoden in Python mit Jupyter Notebook codieren. Die bereitgestellte Notebook-Datei importiert die erforderlichen Bibliotheken, liest die Kerzendaten aus einer CSV-Datei, berechnet den RSI und definiert Funktionen zur Erkennung von Pivotpunkten sowohl für den Preis als auch für den RSI. Diese Funktionen kategorisieren jede Kerze als Pivot-Hoch, Pivot-Tief, beides oder keines von beiden.

Am Ende des Videos werden Sie ein klares Verständnis der RSI-Divergenz haben und wissen, wie Sie diese Strategien in Ihrem Handel umsetzen können. Wenn Sie diesen Inhalt hilfreich finden, empfehle ich Ihnen, den Kanal zu unterstützen, indem Sie das Video liken. Ihr Feedback ist für uns wertvoll, also hinterlassen Sie gerne Kommentare.

Lassen Sie uns nun in die Jupyter Notebook-Datei eintauchen und sehen, wie wir diese Konzepte in Python codieren können.

Wir machen dort weiter, wo wir aufgehört haben, und haben unserem Datenrahmen die Spalte „Pivot“ hinzugefügt, die jede Kerze als Pivot-Hoch, Pivot-Tief, beides oder keines von beiden kategorisiert. Fahren wir nun mit dem nächsten Schritt in unserem Code fort.

Als nächstes definieren wir eine Funktion namens „get_slope“, die die Steigung zwischen zwei Punkten anhand ihrer x- und y-Koordinaten berechnet. Diese Funktion wird verwendet, um die Steigungen für die Preis- und RSI-Daten zu berechnen.

Danach definieren wir eine weitere Funktion namens „fit_slope“, die einen Datenrahmen und eine Pivot-Kategorie (Pivot High oder Pivot Low) als Parameter akzeptiert. Diese Funktion identifiziert die Drehpunkte basierend auf der angegebenen Kategorie und passt mithilfe der Funktion „get_slope“ eine lineare Steigung an diese Punkte an. Es gibt den Steigungswert für die angepasste Linie zurück.

Jetzt können wir diese Funktionen verwenden, um die Steigungen für die Preis- und RSI-Daten zu berechnen. Wir erstellen zwei neue Spalten in unserem Datenrahmen: „price_slope“ und „rsi_slope“. Für die Spalte „price_slope“ rufen wir die Funktion „fit_slope“ mit dem Datenrahmen und der Pivot-Kategorie als Parameter auf. Wir wiederholen den gleichen Vorgang für die RSI-Daten, berechnen die Steigung für die RSI-Drehpunkte und speichern das Ergebnis in der Spalte „rsi_slope“.

Zu diesem Zeitpunkt haben wir die Steigungen sowohl für die Preis- als auch für die RSI-Daten erhalten. Jetzt können wir diese Steigungen vergleichen, um die Trendrichtung zu bestimmen. Wir fügen unserem Datenrahmen eine weitere Spalte mit dem Namen „Trend“ hinzu, die angibt, ob der Trend nach oben, nach unten oder undefiniert verläuft.

Um den Trend zu bestimmen, überprüfen wir die Vorzeichen der Spalten „price_slope“ und „rsi_slope“. Wenn beide Steigungen positiv sind, deutet dies auf einen Aufwärtstrend hin, daher weisen wir der Trendspalte den Wert „Up“ zu. Wenn beide Steigungen negativ sind, deutet dies auf einen Abwärtstrend hin, daher weisen wir der Trendspalte den Wert „Ab“ zu. In allen anderen Fällen, in denen die Vorzeichen der Steigungen unterschiedlich sind oder eine der Steigungen Null ist, weisen wir der Trendspalte den Wert „Undefiniert“ zu.

Mit den verfügbaren Trendinformationen können wir nun nach Abweichungen zwischen den Preis- und RSI-Daten suchen. Wir fügen unserem Datenrahmen eine weitere Spalte mit dem Namen „Divergenz“ hinzu, die angibt, ob eine Divergenz vorliegt oder nicht.

Um Abweichungen festzustellen, vergleichen wir die Vorzeichen der Spalten „price_slope“ und „rsi_slope“. Sind die Vorzeichen entgegengesetzt, deutet dies auf eine Divergenz hin. In solchen Fällen weisen wir der Divergenzspalte den Wert „Divergenz“ zu. Wenn die Vorzeichen gleich sind oder eine der Steigungen Null ist, liegt keine Divergenz vor und wir weisen der Divergenzspalte den Wert „Keine Divergenz“ zu.

Schließlich können wir den resultierenden Datenrahmen ausdrucken, um die berechneten Steigungen, Trendrichtungen und Divergenzen für jede Kerze anzuzeigen.

Insgesamt führt der Code die folgenden Schritte aus:

  1. Importiert notwendige Bibliotheken und definiert Hilfsfunktionen.
  2. Liest die Kerzendaten und berechnet den RSI.
  3. Fügt eine Pivot-Spalte hinzu, um jede Kerze als Pivot-Hoch, Pivot-Tief, beides oder keines von beiden zu kategorisieren.
  4. Berechnet die Steigungen für die Preis- und RSI-Daten basierend auf den Pivot-Punkten.
  5. Bestimmt die Trendrichtung anhand der Vorzeichen der Steigungen.
  6. Prüft anhand der Vorzeichen der Steigungen auf Abweichungen zwischen den Preis- und RSI-Daten.
  7. Druckt den resultierenden Datenrahmen mit den berechneten Steigungen, Trendrichtungen und Divergenzen.

Dieser Code bietet eine Möglichkeit, RSI-Divergenzen und ihre Beziehung zu Preistrends zu analysieren, sodass Händler potenzielle Handelsmöglichkeiten erkennen können.

RSI Divergence Automated In Python | Algorithmic Trading
RSI Divergence Automated In Python | Algorithmic Trading
  • 2021.11.12
  • www.youtube.com
The RSI Divergence Detection is programmed in python as an automated indicator for algorithmic trading, the Jupyter notebook file is available from the link:...
 

In Python automatisierte Preistrendkanäle



In Python automatisierte Preistrendkanäle

Hallo zusammen, vielen Dank, dass Sie heute für dieses Video dabei waren. Wir freuen uns, einen Algorithmus in Python vorstellen zu können, der Preisbewegungskanäle erkennt. Sie können den Code als Jupyter Notebook-Datei über den Link in der Beschreibung unten herunterladen.

Zunächst gebührt der Dank Herrn oder Frau M aus dem Kommentarbereich für den Vorschlag dieser Idee. Wir bedanken uns für Ihre Geduld, da die Wartezeit bereits über einen Monat beträgt. Wir hoffen, dass dieses Video Sie nicht enttäuschen wird.

Bevor wir beginnen, klären wir den Zweck dieses Kanals. Unser Ziel ist es, Bildungsinhalte bereitzustellen, wir stellen Ihnen also nicht einfach Programme zum Herunterladen und Verwenden als Blackbox zur Verfügung. Stattdessen möchten wir den Denkprozess und die Entstehung des Programms erläutern. Am Ende dieses Videos sollten Sie in der Lage sein, Ihren eigenen Algorithmus zu erstellen, der von dem hier vorgestellten inspiriert ist, und sogar Ihre eigenen Erweiterungen hinzuzufügen.

Es ist jedoch wichtig, die Grenzen numerischer Modelle zu erkennen, wenn sie auf dynamische und nichtlineare Umgebungen wie den Markt angewendet werden. Preistrends und -vorhersagen sind immer noch ein offenes Forschungsgebiet, und die laufende Forschung versucht, die besten Ansätze zu finden. Der Markt ist sehr dynamisch und Trends und deren Änderungsgeschwindigkeit können sich im Laufe der Zeit ändern. Bitte akzeptieren Sie daher die Einschränkungen und Komplexitäten, die mit der Vorhersage von Preisbewegungen verbunden sind.

Lassen Sie uns nun in den Algorithmus eintauchen. Der von uns vorgestellte Algorithmus basiert auf einfachen Informationen, die über diesen Kanal und unserer Vorstellungskraft gesammelt werden. Der Ansatz besteht darin, uns auf eine bestimmte Kerze oder ein bestimmtes Datum zu positionieren und auf eine bestimmte Anzahl von Kerzen zurückzublicken.

Diese Zeit teilen wir in gleiche Teile bzw. Zeitfenster ein. In jedem Fenster identifizieren wir die höchsten und niedrigsten Preispunkte, sogenannte Maxima und Minima. Wir wiederholen diesen Vorgang für alle Zeitfenster und passen die Minima- und Maximapunkte in separate Polynomanpassungen ersten Grades ein, bei denen es sich um gerade Linien handelt.

Diese Steigungen beeinflussen jedoch nicht unbedingt den Preis, da sie durch die Punkte gehen. Um dies zu beheben, müssen wir die Achsenabschnittswerte dieser Steigungen verbessern. Es gibt verschiedene Möglichkeiten, dies zu tun. Ein Ansatz besteht darin, die Achsenabschnitte so anzupassen, dass die Kurven durch bestimmte Punkte verlaufen, beispielsweise den minimalen Punkt, der der Mitte des Zeitfensters am nächsten liegt, oder die höchsten und niedrigsten Punkte innerhalb des Fensters.

Ein weiterer zu berücksichtigender Aspekt ist die Länge des Zeitfensters. Je nach Vorliebe können Sie unterschiedliche Werte für die Anzahl der Rückkerzen wählen. Sie können beispielsweise 30 Balken hinter der aktuellen Kerze plus oder minus 20 Balken nehmen, sodass das Programm innerhalb dieses Bereichs herumlaufen kann. Das Programm wertet dann verschiedene Steigungen aus und gibt die Anzahl der Kerzen zurück, die die parallelste Situation zwischen den beiden Steigungen bieten, was auf die Erkennung eines Kanals hinweist.

Wir haben eine Jupyter Notebook-Datei bereitgestellt, die Sie über den Link in der Videobeschreibung herunterladen können. Die Datei enthält den Python-Code zur Implementierung des Algorithmus. Zunächst importieren wir die Pandas-Bibliothek und laden die Daten aus einer CSV-Datei, die Euro-Dollar-Candlestick-Daten von 2003 bis 2021 enthält.

Als nächstes suchen wir nach den Maxima und Minima innerhalb des durch die Anzahl der Rückkerzen definierten Zeitfensters. Wir teilen das Fenster in kleinere Fenster auf und ermitteln die Maximal- und Minimalpunkte in jedem Fenster. Diese Punkte werden in Numpy-Arrays gespeichert.

Nachdem wir die Minima und Maxima erhalten haben, verwenden wir die Numpy-Polyfit-Funktion, um die Punkte an Polynomlinien ersten Grades anzupassen. Die Ergebnisse, einschließlich der Steigungen und Achsenabschnitte, werden in Variablen gespeichert.

Um die Steigungen zu visualisieren, zeichnen wir das Kerzendiagramm und fügen die den Steigungen entsprechenden Linien hinzu. Zum jetzigen Zeitpunkt passen die Unterschiede vielleicht noch nicht ganz zum Preis, aber sie bieten eine angemessene Passform.

Um die Anpassung zu verbessern, können wir die Achsenabschnitte der Steigungen ändern. Ein Ansatz besteht darin, die Abschnitte so anzupassen, dass sie innerhalb jedes Zeitfensters durch die höchsten und niedrigsten Punkte verlaufen. Wir berechnen die höchsten und niedrigsten Punkte innerhalb des Zeitfensters und aktualisieren die Abschnitte der Steigungen entsprechend.

Um den optimalen Kanal zu bestimmen, iterieren wir durch verschiedene Werte der Anzahl der Rückkerzen und bewerten die Parallelität zwischen den beiden Steigungen. Wir berechnen den Winkel zwischen den beiden Steigungen und prüfen, ob er innerhalb eines vordefinierten Schwellenwerts liegt. Wenn dies der Fall ist, betrachten wir ihn als gültigen Kanal und speichern die Anzahl der Back Candles und den Winkel für die weitere Analyse.

Schließlich können wir die erkannten Kanäle visualisieren, indem wir das Candlestick-Diagramm zeichnen und die den Kanälen entsprechenden Linien überlagern. Dies bietet eine visuelle Darstellung der identifizierten Preisbewegungskanäle.

Es ist wichtig zu beachten, dass dieser Algorithmus ein vereinfachter Ansatz ist und möglicherweise nicht alle Arten von Preisbewegungskanälen erfasst. Der Markt ist komplex und es kann verschiedene Muster und Dynamiken geben, die den Rahmen dieses Algorithmus sprengen. Dieser Algorithmus dient jedoch als Ausgangspunkt für die Kanalerkennung und kann je nach individuellen Anforderungen und Vorlieben erweitert oder angepasst werden.

Wir empfehlen Ihnen, die Jupyter Notebook-Datei herunterzuladen und den Code im Detail zu erkunden. Experimentieren Sie mit verschiedenen Parametern, testen Sie es an verschiedenen Datensätzen und sehen Sie, wie es funktioniert. Sie können den Algorithmus jederzeit an Ihre Bedürfnisse und Vorstellungen anpassen und erweitern.

Wir hoffen, dass dieses Video und der dazugehörige Code Ihnen Einblicke und Inspiration für die Entwicklung Ihres eigenen Kanalerkennungsalgorithmus geben. Denken Sie daran: Der Schlüssel liegt darin, die zugrunde liegenden Konzepte zu verstehen und sie an Ihre spezifischen Bedürfnisse und Marktbedingungen anzupassen.

Vielen Dank fürs Zuschauen und wir freuen uns auf Ihr Feedback und Ihre Fragen. Viel Spaß beim Codieren!

Price Trend Channels Automated In Python
Price Trend Channels Automated In Python
  • 2021.10.30
  • www.youtube.com
This video is about detecting price trend and price channels and how to automate this process in Python. The algorithm is presented and explained then the co...