Python im algorithmischen Handel - Seite 18

 

Funktioniert dieser Krypto-Scalping-Indikator tatsächlich?



Funktioniert dieser Krypto-Scalping-Indikator tatsächlich?

Heute werden wir eine Modellierungsstrategie untersuchen, die den volumengewichteten Durchschnittspreis (VWAP) im Backtesting auf dem Bitcoin-Markt verwendet. Wir werden einen Python-Algorithmus schreiben, um diese Strategie umzusetzen und die Ergebnisse zu analysieren.

Lassen Sie uns zunächst den Kontext festlegen. Der VWAP ist ein leistungsstarkes Werkzeug für den algorithmischen Handel, da er dynamische Unterstützungs- und Widerstandswerte bietet. Es bleibt unabhängig vom verwendeten Zeitrahmen, was es für den algorithmischen Handel vorteilhaft macht, da es die Anzahl der zu optimierenden Parameter reduziert.

Bei dieser Strategie verwenden wir einen Zeitrahmen von 15 Minuten für die Handelspreise zwischen Bitcoin und US-Dollar. Wir werden zwei Indikatoren betrachten: den gleitenden 100-Tage-Durchschnitt (DMA) und den VWAP. Durch die Analyse der Preisbewegungen im Verhältnis zu diesen Indikatoren können wir den Markttrend bestimmen. Wenn eine bestimmte Anzahl von Kerzen unter oder über dem 100-Tage-Durchschnitt liegt, deutet dies auf einen Abwärts- bzw. Aufwärtstrend hin. Wenn die Kerzen unter oder über der VWAP-Kurve handeln, bestätigt dies gleichermaßen die Trendrichtung.

Bei einem Aufwärtstrend werden wir nur nach Kaufpositionen suchen, während wir uns bei einem Abwärtstrend auf Verkaufspositionen konzentrieren werden. Der Einstiegspunkt für unsere Positionen wird ausgelöst, wenn der Preis innerhalb eines bestimmten festen Abstands zur VWAP-Kurve liegt.

Um diese Strategie in Python zu implementieren, verwenden wir das Paket pandas_ta, um den VWAP und den 100 DMA zu berechnen. Anschließend erstellen wir zwei neue Spalten in unserem Datenrahmen: das EMA-Signal und das VWAP-Signal. Das EMA-Signal zählt die Anzahl der Rückkerzen, die unter oder über die EMA-Kurve fallen, um einen Abwärts- oder Aufwärtstrend zu bestätigen. Ebenso zählt das VWAP-Signal die Anzahl der Rückkerzen, die unter oder über der VWAP-Kurve liegen.

Wir werden diese Signale in unserem Datenrahmen zu einer Gesamtsignalspalte zusammenführen, die als Auslöser für unsere Kauf- und Verkaufspositionen dient. Bei Kaufpositionen prüfen wir, ob das Gesamtsignal 2 beträgt und keine offenen Geschäfte vorhanden sind. Wir prüfen auch, ob der Preis nahe genug an der VWAP-Kurve liegt. Ebenso werden wir für Verkaufspositionen ein Gesamtsignal von 1 berücksichtigen und den Abstand des Preises von der VWAP-Kurve prüfen.

Wir können die Signale in einem Diagramm visualisieren und die Kerzen zusammen mit den Kauf- (lila) und Verkaufssignalen (grün) darstellen.

Um die Strategie zu testen, berechnen wir die Average True Range (ATR) als Maß für die Volatilität. Die Stop-Loss-Distanz wird auf das 0,8-fache der aktuellen ATR eingestellt und die Take-Profit-Distanz beträgt das Doppelte der Stop-Loss-Distanz. Mit diesen Parametern können wir unter Berücksichtigung der Stop-Loss- und Take-Profit-Werte Kauf- und Verkaufspositionen auslösen. Wir beginnen mit einem Barbetrag von 100.000 US-Dollar und einem Hebel von 5.

Durch den Backtest können wir die Ergebnisse unseres Handelssystems beobachten. Der Algorithmus zeigt eine hohe Renditequote mit einem Eigenkapitalendergebnis von rund 10 Millionen US-Dollar nach drei Jahren. Im Vergleich dazu erzielte die Buy-and-Hold-Strategie nur eine Rendite von 248 %. Es ist jedoch wichtig zu beachten, dass die Leistung des Algorithmus schwankt und es in bestimmten Zeiträumen zu Problemen kommen kann. Dies unterstreicht die Notwendigkeit einer dynamischen Anpassung an sich ändernde Marktbedingungen.

Um die Stabilität des Eigenkapitals zu beurteilen, können wir die Eigenkapitalkurve über die Jahre zeichnen. Der Algorithmus funktionierte zwei Jahre lang außergewöhnlich gut, stand jedoch im letzten Jahr vor Herausforderungen. Dies unterstreicht den passiven Charakter des Algorithmus, der auf festen Parametern basiert und möglicherweise Anpassungen erfordert, um sich an Marktveränderungen anzupassen.

Die hier vorgestellte VWAP-basierte Strategie ist eine gute Investition von Aufmerksamkeit und Zeit. Es hat über einen langen Zeitraum hinweg erhebliche Erträge gezeigt, wenn auch mit einigen Einschränkungen. Weitere Optimierungen und die Einbeziehung zusätzlicher Filter und Indikatoren können zur Verbesserung geprüft werden.

Does this Crypto Scalping Indicator Actually Work!
Does this Crypto Scalping Indicator Actually Work!
  • 2022.06.02
  • www.youtube.com
This video describes a trading strategy using VWAP for Crypto such as the Bitcoin. The strategy algorithm is tested in Python and the code details are explai...
 

So testen Sie eine Börsenstrategie mit Python auf dem S&P 500


So testen Sie eine Börsenstrategie mit Python auf dem S&P 500

Hallo zusammen, heute werden wir einen detaillierten Test einer einfachen Sculpting-Strategie anhand historischer Daten des S&P 500 durchführen. Wir werden die Grundlagen der Strategie erklären und den Code für Backtesting-Zwecke in Python schreiben. Wir verfügen über Daten aus drei Jahren, die uns genügend Informationen liefern sollten, um die Leistung und Ergebnisse der Strategie zu bewerten.

Wie üblich steht der Code für diese Strategie über den Link in der Beschreibung unten zum Download bereit. Für diesen Test verwenden wir einen Zeitrahmen von 15 Minuten. Sie können jedoch bei Bedarf auch mit anderen Zeitrahmen experimentieren. Kürzere Zeitrahmen können aufgrund des erhöhten Lärms und der Schwankungen schwieriger zu kontrollieren sein.

Die Strategie dreht sich um die Identifizierung verschlingender Muster, bei denen es sich entweder um bärische oder bullische Signale handeln kann. Wir werden zwei Bedingungen hinzufügen, um die Signale zu verfeinern. Die erste Bedingung ist die minimale Engulfing-Höhe, die der Differenz zwischen dem Schlusskurs der vorherigen Kerze und dem Eröffnungspreis der Engulfing-Kerze entspricht. Wir werden eine Mindestabstandsanforderung für den Eröffnungspreis der Engulfing-Kerze festlegen, um das Signal zu validieren. Mit anderen Worten: Der Eröffnungspreis sollte höher sein als die minimale Engulfing-Höhe.

Die zweite Bedingung ist die maximale Kerzenschwanzlänge, die sich auf die Länge des Kerzenschwanzes oder Dochtes bezieht. Wir legen eine Grenze für die maximale Schwanzlänge fest und stellen sicher, dass sie kleiner als der angegebene Parameter ist. Dieser Zustand hilft dabei, bestimmte Muster herauszufiltern.

Um die Anzahl der Signale während unserer Handelszeit zu erhöhen, werden wir eine Variation des normalen Engulfing-Musters einführen. Anstatt unbedingt zu verlangen, dass eine Kerze die vorherige umhüllt, werden wir zulassen, dass zwei oder mehr aufeinanderfolgende Kerzen die Umhüllung erreichen, solange sie in die entgegengesetzte Richtung zeigen und die Umhüllungsbedingungen erfüllen. Die Anzahl der Kerzen, die zum Erreichen der Verschlingung zugelassen sind, wird eine Variable im Code sein, was Flexibilität und Experimentierfreude ermöglicht.

An diesem Punkt können wir mit dem Schreiben des Programms beginnen und die Ergebnisse durch Backtesting testen. Für diese Demonstration verwenden wir eine Jupyter Notebook-Datei. Zuerst laden wir die historischen Daten mithilfe der Funktion read_csv in einen DataFrame namens df_spy. Wir geben den 15-Minuten-Zeitrahmen und den Datumsbereich von 2019 bis 2022 an. Der Index des DataFrame wird auf die GMT-Zeitspalte gesetzt.

Als nächstes definieren wir eine Funktion namens is_engulfing, die zwei Parameter benötigt: den DataFrame und den Index der aktuellen Kerze. Diese Funktion testet, ob die Kerze ein Engulfing-Muster erreicht. Wir legen Parameter für die maximale Anzahl von Kerzen fest, die zum Erreichen des Engulfing-Musters zulässig sind, die Engulfing-Differenz und die maximale Kerzenschwanzlänge. Die Funktion prüft verschiedene Bedingungen für sowohl bärische als auch zinsbullische Engulfing-Muster und gibt ein Signal von 1 für bärische und 2 für zinsbullische Signale zurück.

Wir erstellen eine Kopie des DataFrame und filtern Kerzen ohne Bewegung heraus (bei denen das Hoch dem Tief entspricht). Durch diesen Schritt werden Wochenenden und Feiertage entfernt. Wir speichern die gefilterten Daten in einem DataFrame namens df. Wir definieren außerdem eine neue Liste namens signal, um die Signale für jede Zeile/Kerze zu speichern.

Für jede Zeile im DataFrame df berechnen wir das Signal mithilfe der Funktion is_engulfing mit dem entsprechenden Index und DataFrame als Parameter. Wir speichern die Signale in der Signalliste. Abschließend fügen wir die Signalliste als neue Spalte im DataFrame hinzu.

Um die Signale zu visualisieren, verwenden wir eine Plotfunktion, die das Kerzendiagramm mit Punkten unter oder über den Kerzen darstellt, um bullische oder bärische Signale darzustellen. Wir können einen bestimmten Kerzenbereich auswählen, um die Signale darzustellen und zu beobachten.

Um die Visualisierung zu erleichtern, setzen wir den Index des DataFrame auf einen Ganzzahlindex zurück und entfernen den Datums-/GMT-Zeitindex. Dann wählen wir eine Reihe von Kerzen aus, um die Signale darzustellen und zu beobachten.

Hier ist eine Zusammenfassung der Schritte, die beim Backtesting einer Handelsstrategie mithilfe von Candlestick-Charts erforderlich sind:

  1. Datenvorbereitung : Erhalten Sie historische Preisdaten für das gewünschte Finanzinstrument (z. B. Aktien, Kryptowährungen), einschließlich der Eröffnungs-, Höchst-, Tiefst- und Schlusskurse für jeden Zeitraum (z. B. Minute, Stunde, Tag). Stellen Sie sicher, dass die Daten in einem Format vorliegen, das leicht analysiert werden kann.

  2. Strategiedefinition : Definieren Sie die Handelsstrategie basierend auf Candlestick-Mustern. Sie könnten beispielsweise nach bullischen Mustern wie einem bullischen Engulfing-Muster oder nach bärischen Mustern wie einer Sternschnuppe suchen. Bestimmen Sie die Regeln für den Ein- und Ausstieg aus Trades basierend auf diesen Mustern.

  3. Signalgenerierung : Analysieren Sie die historischen Preisdaten und generieren Sie Signale basierend auf der definierten Strategie. Identifizieren Sie das Auftreten bestimmter Candlestick-Muster, die die Einstiegs- oder Ausstiegskriterien erfüllen.

  4. Portfoliosimulation : Simulieren Sie die Handelsstrategie, indem Sie ein hypothetisches Portfolio verfolgen. Beginnen Sie mit einem festen Kapitalbetrag und simulieren Sie Trades basierend auf den generierten Signalen. Verfolgen Sie den Wert und die Performance des Portfolios während des gesamten Backtesting-Zeitraums.

  5. Leistungsbewertung : Bewerten Sie die Leistung der Handelsstrategie anhand verschiedener Kennzahlen wie Rentabilität, risikobereinigte Renditen, Drawdowns und andere relevante Kennzahlen. Vergleichen Sie die Leistung der Strategie mit einer Benchmark oder alternativen Strategien, um ihre Wirksamkeit zu beurteilen.

  6. Visualisierung : Visualisieren Sie die Backtest-Ergebnisse mithilfe von Candlestick-Diagrammen. Stellen Sie die historischen Preisdaten grafisch dar und zeigen Sie die generierten Signale (Einstiegs- und Ausstiegspunkte) im Diagramm an. Diese Visualisierung kann dabei helfen, die Leistung der Strategie zu verstehen und Verbesserungsmöglichkeiten zu identifizieren.

Wenn Sie diese Schritte befolgen, können Sie eine Handelsstrategie mithilfe von Candlestick-Charts testen. Es ist wichtig zu beachten, dass Backtesting die historische Leistung liefert und keine Garantie für zukünftige Ergebnisse ist. Darüber hinaus ist es wichtig, bei der Entwicklung und Umsetzung einer Handelsstrategie auch andere Faktoren wie Transaktionskosten, Slippage und Marktbedingungen zu berücksichtigen.

How to Backtest A Stock Market Strategy Using Python On The S&P 500
How to Backtest A Stock Market Strategy Using Python On The S&P 500
  • 2022.05.26
  • www.youtube.com
This is a high profit trading strategy coded and tested in python. The strategy is easy to use and suitable for beginners, it was tested on SP500 stock marke...
 

Preisaktionsstrategie für den algorithmischen Handel in Python



Preisaktionsstrategie für den algorithmischen Handel in Python

Hallo an alle! Willkommen zum dritten Video über Huffmans Bestandsrückverfolgungsbalken. Diese Strategie hat mehrere Handelswettbewerbe gewonnen, daher dachte ich darüber nach, eine automatisierte Version zu entwickeln, die über ein paar Monate oder sogar einen längeren Zeitraum positive Renditen liefern kann. Um dieses Video prägnant zu halten, empfehle ich, sich die beiden vorherigen Videos anzusehen, in denen wir die Strategie im Detail erklären. Den Link zu diesen Videos finden Sie in der Beschreibung.

Kurz gesagt besteht die Strategie darin, Retracement-Balken zu identifizieren und eine bestimmte Steigung zur Trenddefinition beizubehalten. Bei einem Aufwärtstrend suchen wir nach einer bestimmten Form der Balken und bei einem Abwärtstrend suchen wir nach der umgekehrten Form des Retracement-Balkens. In diesem Video werden wir jedoch eine weitere Bedingung hinzufügen. Wir verlangen, dass der Retracement-Balken höher (bei einem Aufwärtstrend) oder niedriger (bei einem Abwärtstrend) als der vorherige und zukünftige Balken ist. Im Wesentlichen suchen wir nach einem Retracement-Balken, der als Drehpunkt fungiert und eine starke Reaktion von Verkäufern oder Käufern anzeigt, die versuchen, den Trend umzukehren.

Die Implementierung dieser zusätzlichen Bedingung in eine algorithmische Handelsstrategie ist anspruchsvoller als die Erklärung des Konzepts. Im gezeigten Beispiel haben wir einen Aufwärtstrend und identifizieren einen Huffman-Retracement-Balken, der als hoher Pivotpunkt fungiert. Darüber hinaus beobachten wir einen Durchbruch über das Hoch dieses Huffman-Balkens, was auf eine wahrscheinliche Fortsetzung des Aufwärtstrends hindeutet. Wir werden alle diese Bedingungen in unseren Python-Algorithmus integrieren und beurteilen, ob sie die in früheren Videos erzielten Ergebnisse verbessern.

Um einen kurzen Überblick zu geben, laden wir die historischen Daten für das Währungspaar EUR/USD in einem einstündigen Zeitraum von 2003 bis 2022. Wir berechnen den exponentiellen gleitenden Durchschnitt (EMA) und den durchschnittlichen wahren Bereich (ATR), der möglicherweise so hoch ist Nützlich zum Festlegen von Stop-Loss- und Take-Profit-Werten. Wir berechnen die Steigung des EMA, da sie eine der Bedingungen für die Huffman-Strategie ist. Darüber hinaus führen wir zwei neue Parameter ein: die Gesamtzahl der Signal-Back-Kerzen (links und rechts), die die Anzahl der Kerzen bestimmen, die mit dem Hoch oder Tief der Huffman-Kerze verglichen werden.

Der Algorithmus definiert die Bedingungen zur Identifizierung eines Huffman-Balkens in einem Aufwärts- oder Abwärtstrend. In diesem Video fügen wir eine zusätzliche Bedingung hinzu, um zu prüfen, ob der Huffman-Balken auch als Drehpunkt fungiert. Wir vergleichen das Tief (bei einem Abwärtstrend) oder das Hoch (bei einem Aufwärtstrend) des Huffman-Balkens mit den vorherigen und zukünftigen Kerzen innerhalb des angegebenen Bereichs. Wenn die Bedingung erfüllt ist, weisen wir einen Wert von 1 für einen Abwärtstrend oder 2 für einen Aufwärtstrend zu und speichern die Signale in einer neuen Spalte namens „Gesamtsignal“ im Datenrahmen.

Um sicherzustellen, dass der Algorithmus ordnungsgemäß funktioniert, zeichnen wir die Signale in einem Diagramm auf und visualisieren die violetten Punkte, die die Huffman-Balken darstellen. Wir können bestätigen, dass der Algorithmus die Balken anhand ihrer Eigenschaften korrekt identifiziert.

Als nächstes integrieren wir das EMA-Signal als Bestätigungssignal für die Trendrichtung. Wir implementieren auch die Huffman-Break-Signal-Funktion, die Brüche oberhalb oder unterhalb von Huffman-Balken erkennt und Signale entsprechend zuordnet.

Um die Strategie zu testen, legen wir die Stop-Loss- und Take-Profit-Werte fest, die je nach den spezifischen Bedingungen und verwendeten Indikatoren variieren können. In diesem Fall verwenden wir die ATR zur Definition des Stop-Loss und ein Take-Profit/Stop-Loss-Verhältnis von 1,5. Wir führen den Backtest mit einer Starteinzahlung von 10.000 $, einer Marge von 1:50 und jeweils einem Trade durch.

Die Ergebnisse sind zunächst nicht zufriedenstellend, mit einer Rendite von -70 % und einem großen Drawdown. Dies bedeutet jedoch nicht unbedingt, dass die Strategie oder der Indikator grundsätzlich schlecht ist. Es unterstreicht, wie wichtig es ist, andere Faktoren wie das Geldmanagement und die Auswahl von Stop-Loss- und Take-Profit-Werten zu berücksichtigen, die die Leistung der Strategie erheblich beeinflussen können.

Um die Leistung der Strategie zu verbessern, können wir die Parameter optimieren und die Money-Management-Regeln anpassen. In diesem Beispiel optimieren wir den Parameter „Total Signal Back Candles“, der die Anzahl der Kerzen bestimmt, die mit dem Hoch oder Tief des Huffman-Balkens verglichen werden sollen. Wir testen verschiedene Werte im Bereich von 2 bis 10 und bewerten die Ergebnisse.

Nach Optimierung des Parameters erzielen wir eine bessere Performance mit einer Rendite von 187 % und einem geringeren Drawdown. Dies zeigt die Bedeutung der Parameteroptimierung in algorithmischen Handelsstrategien.

Um die Strategie weiter zu verbessern, können wir die Integration zusätzlicher Filter oder Bedingungen in Betracht ziehen. Beispielsweise können wir einen Trendfilter mithilfe eines höheren Zeitrahmens implementieren, beispielsweise des Tages- oder Wochendiagramms. Dadurch kann sichergestellt werden, dass Trades nur in Richtung des Gesamttrends getätigt werden.

Wir können auch verschiedene Ausstiegsstrategien erkunden, wie zum Beispiel Trailing Stops oder dynamische Take-Profit-Levels basierend auf Preisbewegungen oder Volatilität. Diese zusätzlichen Komponenten können getestet und in den Algorithmus integriert werden, um dessen Leistung möglicherweise zu verbessern.

Es ist wichtig zu beachten, dass die Leistung in der Vergangenheit keine Garantie für zukünftige Ergebnisse ist. Die Strategie sollte anhand historischer Daten und robuster Backtesting-Methoden gründlich getestet und validiert werden. Bei der Umsetzung der Strategie in einer Echtzeit-Handelsumgebung ist es außerdem wichtig, Transaktionskosten, Slippage und andere praktische Aspekte des Handels zu berücksichtigen.

Zusammenfassend lässt sich sagen, dass die Stock-Retracement-Balken-Strategie von Huffman ein nützliches Instrument zur Identifizierung potenzieller Wendepunkte und Trendumkehrungen im Markt sein kann. Durch die Einbeziehung zusätzlicher Bedingungen und die Optimierung von Parametern können wir die Leistung der Strategie verbessern. Allerdings ist es wichtig, gründliche Tests durchzuführen und andere Faktoren wie Geldmanagement und Ausstiegsstrategien zu berücksichtigen, um ein umfassendes und effektives Handelssystem zu entwickeln.

Damit ist unser Video zur Implementierung der Huffman-Inventar-Retracement-Bar-Strategie in Python abgeschlossen. Ich hoffe, dass Sie diese Serie informativ und hilfreich für Ihre Handelsbemühungen fanden. Wenn Sie Fragen oder Kommentare haben, können Sie diese gerne unten hinterlassen. Vielen Dank fürs Zuschauen und viel Spaß beim Handeln!

Price Action Strategy For Algorithmic Trading In Python
Price Action Strategy For Algorithmic Trading In Python
  • 2022.05.12
  • www.youtube.com
This is a continuation of the previous videos, on price action trading strategy, about the Hoffman Inventory Retracement Bar indicator, and the previously in...
 

So programmieren Sie eine Retracement-Bar-Handelsstrategie in Python



So programmieren Sie eine Retracement-Bar-Handelsstrategie in Python

Hallo zusammen, und willkommen zu dieser Fortsetzung der Hoffman's Inventory Bar Retracement-Methode. Im vorherigen Video haben wir diese Methode vorgestellt und den Code zur Erkennung bestimmter Kerzenformen und Preistrends erklärt. Wenn Sie an dem Code interessiert sind, können Sie die Jupyter Notebook-Datei über den in der Beschreibung unten angegebenen Link herunterladen.

In diesem Video werden wir die Hoffman-Balken, die wir zuvor identifiziert haben, in einer Handelsstrategie verwenden, das System einem Backtest unterziehen und die Ergebnisse bewerten. Die Strategie konzentriert sich auf die Identifizierung spezifischer Kerzenformen in einem Aufwärts- oder Abwärtstrend und auf die Suche nach Ausbrüchen über dem Hoch oder unter dem Tief dieser Kerzen.

Betrachten wir ein Beispiel, bei dem wir einen Aufwärtstrend haben. Wir erkennen einen Hoffman-Retracement-Balken, dessen oberes Ende mindestens 45 % des gesamten Kerzenvolumens ausmacht. Dies deutet darauf hin, dass Verkäufer versuchen, der Aufwärtstrendbewegung entgegenzuwirken. Bei der folgenden Kerze beobachten wir jedoch, dass der Schlusskurs höher ist als das Hoch der vorhergehenden Hoffman-Kerze. Dies deutet darauf hin, dass die Käufer auf dem Markt immer noch stärker sind und den Preis wahrscheinlich weiter in die Höhe treiben werden.

Um diese Strategie in Python umzusetzen, werden wir den Schlusskurs jeder Kerze durchlaufen und bei den vorherigen benachbarten Kerzen prüfen, ob eine von ihnen einen Hoffman-Retracement-Balken bildet. Wir definieren einen Parameter namens „back_candles“, der die Anzahl der Kerzen bestimmt, die bei der Suche nach dem Hoffman-Balken berücksichtigt werden sollen. Dieser Parameter kann angepasst werden, um mit verschiedenen Werten zu experimentieren.

Kommt es zu einem Ausbruch über das Hoch oder unter das Tief der Hoffman-Kerze, platzieren wir je nach aktueller Preisentwicklung eine Kauf- bzw. Verkaufsposition. Wir können auch Stop-Loss- und Take-Profit-Werte festlegen, die je nach Preisentwicklung auf der durchschnittlichen wahren Reichweite (ATR) oder den höchsten/niedrigsten Werten der vorherigen Kerzen basieren können.

Schreiben wir nun die Strategie in Python und testen sie anhand einiger Monate historischer Daten, um die Ergebnisse auszuwerten. Die Jupyter Notebook-Datei enthält den Code, der mit dem Laden von Daten von 59 Tagen mithilfe des yfinance-Moduls in einem Zeitraum von 15 Minuten beginnt. Wir berechnen den exponentiellen gleitenden Durchschnitt (EMA), die ATR und die Steigung des gleitenden Durchschnitts.

Als nächstes identifizieren wir die Hoffman-Balken anhand der Steigung des gleitenden Durchschnitts und der Form der Kerzen. Wir visualisieren die Signale in einem Diagramm und definieren dann eine neue Funktion namens „hofmann_break_signal“, die zwei Parameter benötigt: den Index der aktuellen Kerze und die Anzahl der zurückliegenden Kerzen, die bei der Suche nach dem Hoffman-Kerzenmuster berücksichtigt werden sollen.

Innerhalb der Funktion durchlaufen wir jede Kerze und prüfen, ob die Bedingungen für einen Hoffman-Balken und einen Ausbruch erfüllt sind. Wenn ja, geben wir ein Kaufsignal für einen Aufwärtstrend oder ein Verkaufssignal für einen Abwärtstrend zurück.

Wir wenden diese Funktion auf jede Zeile des Datenrahmens an und speichern die Ergebnisse in einer Reihe. Abschließend visualisieren wir die Signale und prüfen, ob die Hoffman-Kerzen richtig erkannt werden.

Nachdem wir die Kerzenerkennung überprüft haben, fahren wir mit dem Backtest der Strategie fort. Wir legen den Stop-Loss basierend auf dem Mindestpreis der vorherigen Kerzen fest und nehmen Gewinne anhand eines Verhältnisses relativ zum Stop-Loss mit. In diesem Beispiel verwenden wir einen ATR-basierten Ansatz mit einem Stop-Loss-Verhältnis von 1,5.

Wir testen die Strategie über die Daten der drei Monate und berechnen die Rendite, den Prozentsatz der erfolgreichen Trades und die Eigenkapitalkurve. In diesem ersten Test ist die Rendite mit 51 % positiv, die Eigenkapitalkurve zeigt jedoch keinen stabilen Anstieg.

Wir untersuchen auch eine andere Methode zum Festlegen von Stop-Loss- und Take-Profit-Levels unter Berücksichtigung des höchsten Hochs oder niedrigsten Tiefs der vorherigen Kerzen. Allerdings ist die Rendite in diesem Fall mit -4,8 % negativ, was darauf hindeutet, dass diese Geldmanagementstrategie keine gute Leistung erbracht hat.

Bitte beachten Sie, dass diese Strategie in diesem Video nicht optimiert wurde. Es wurde schnell entwickelt, um die Python-Implementierung zu demonstrieren. Wenn Sie diese Strategie interessant finden, können Sie den Code gerne kopieren und durch das Hinzufügen zusätzlicher technischer Indikatoren weiter anpassen.

Vielen Dank, dass Sie sich dieses Video angesehen haben. Seien Sie gespannt auf die nächste Veranstaltung, handeln Sie sicher und bis zum nächsten Mal!

How to Code Retracement Bar Trading Strategy In Python
How to Code Retracement Bar Trading Strategy In Python
  • 2022.05.05
  • www.youtube.com
This video is a continuation of the previous one on the Hoffman Inventory Retracement Bar Automated In Python. This algorithmic trading strategy enabled Hoff...
 

In Python codierter Retracement-Barcode für algorithmischen Handel


In Python codierter Retracement-Barcode für algorithmischen Handel

Hallo, in diesem Video stellen wir die Huffman's Inventory Retracement Bar vor und zeigen, wie man ihre Erkennung in Python automatisiert. Wenn Sie an dem Code interessiert sind, können Sie die Jupyter Notebook-Datei über den in der Beschreibung angegebenen Link herunterladen.

Die erste Regel dieser Strategie besteht darin, den Preistrend zu erkennen, indem überprüft wird, ob die Steigung des gleitenden 20-Tage-Durchschnitts (MA) einen 45-Grad-Winkel mit der horizontalen Linie bildet. Beachten Sie, dass der 20-Tage-MA als Beispiel dient und Sie mit verschiedenen Zeiträumen für den gleitenden Durchschnitt experimentieren können. Wenn Sie einem Abwärtstrend folgen, sollte die negative Steigung ebenfalls einen Winkel von mindestens 45 Grad mit der horizontalen Linie bilden. Es ist jedoch wichtig zu erwähnen, dass es mathematisch bedeutungslos ist, sich allein auf diesen 45-Grad-Winkel als Signal zu verlassen, da es unmöglich ist, diesen Winkel auf einem Trading-Chart genau zu definieren. Der algorithmische Handel bietet eine Lösung für dieses Problem, die wir später im Video untersuchen werden.

Die zweite Regel dieser Strategie besteht darin, Kerzen zu identifizieren, deren Schwanz mindestens 45 % der gesamten Kerzenlänge ausmacht. In einem Aufwärtstrend suchen wir beispielsweise nach Kerzen, deren oberes Ende mehr als 45 % der Gesamtbewegung der Kerze ausmacht. Ebenso suchen wir in einem Abwärtstrend nach Kerzen, deren unteres Ende mehr als 45 % des Kerzenvolumens ausmacht. Dieses Kerzenmuster kennzeichnet Momente, in denen Verkäufer oder Käufer versuchen, dem Trend zu widerstehen oder ihn umzukehren. Indem wir die Marktdynamik anhand von Kerzenmustern verstehen, können wir unsere individuelle Strategie definieren.

Im Beispiel identifizieren wir diese spezifischen Kerzen und warten darauf, dass der Markt die Höchstwerte überschreitet. Wenn eine Kerze über dem Hoch einer Huffman-Kerze schließt, bedeutet dies, dass die Verkäufer dem Kauftrend nicht widerstehen konnten und die Käufer immer noch die Oberhand haben. Dies deutet darauf hin, dass sich der Aufwärtstrend voraussichtlich fortsetzen wird und wir mit den Käufern eine Long-Position eingehen können. Bei der Analyse der Ergebnisse dieser Annahmen stellen wir fest, dass der Preis in den meisten Fällen unseren Erwartungen entspricht.

Um jedoch das langfristige Ergebnis dieses Indikators zu bestimmen, müssen wir einen Backtest mit unserem Python-Code durchführen. In diesem Video konzentrieren wir uns darauf, zu erklären, wie man Huffman-Kerzen erkennt und bei ihrem Auftreten ein Signal generiert. In einem separaten Video werden wir diesen Indikator in einer vollständigen Handelsstrategie nutzen und einen richtigen Backtest durchführen.

Zunächst laden wir die Daten mit dem yfinance-Modul herunter. Das Beispiel lädt Euro/USD-Daten für einen Zeitraum von 59 Tagen mit einem Zeitrahmen von 15 Minuten herunter. Wenn Sie mehr Daten benötigen, können Sie diese stapelweise herunterladen und die Datenrahmen verketten. Nach dem Herunterladen der Daten berechnen wir den exponentiellen gleitenden Durchschnitt (EMA) mit einer Länge von 20 und berechnen die Steigung des gleitenden Durchschnitts. Die Steigungswerte werden in einer neuen Spalte namens „slope_ema“ im Datenrahmen gespeichert.

Als nächstes berechnen wir das Signal, indem wir über jede Zeile iterieren. Wenn die Steigung der aktuellen Kerze negativ ist und die Steigungsgrenze überschreitet, was auf einen Abwärtstrend hinweist, prüfen wir, ob der untere Schwanz der Kerze dividiert durch den Hoch-Tief-Bereich größer als die prozentuale Grenze ist. Dies bedeutet, dass sich eine Huffman-Kerze in einem Abwärtstrend befindet und das Gesamtsignal auf 1 gesetzt ist. Wenn die Steigung positiv ist und die Steigungsgrenze überschreitet, deutet dies auf einen Aufwärtstrend hin und der obere Rand der Kerze wird durch den Hoch-Tief-Bereich geteilt Wenn der Wert größer als die prozentuale Grenze ist, haben wir eine Huffman-Kerze in einem Aufwärtstrend und das Gesamtsignal ist auf 2 gesetzt.

Sobald wir das Signal berechnet und die Ergebnisse in einer Liste mit dem Namen „signal“ gespeichert haben, fügen wir es als neue Spalte mit dem Namen „tot_signal“ zum Datenrahmen hinzu. Anschließend können wir die Signale mit Plotly in einem Diagramm visualisieren.

Hier ist eine Schritt-für-Schritt-Erklärung der Huffman's Inventory Retracement Bar-Strategie ohne den Code:

  1. Laden Sie die Preisdaten herunter: Erhalten Sie die historischen Preisdaten für das gewünschte Finanzinstrument, beispielsweise eine Aktie oder ein Währungspaar. Sie können Bibliotheken wie yfinance in Python verwenden, um die Daten abzurufen.

  2. Berechnen Sie den exponentiellen gleitenden Durchschnitt (EMA): Berechnen Sie den EMA der Schlusskurse für einen bestimmten Zeitraum. Der EMA ist ein häufig verwendeter Indikator, der dabei hilft, Trends und mögliche Umkehrungen in den Preisdaten zu erkennen.

  3. Berechnen Sie die Steigung: Berechnen Sie die Steigung der EMA-Linie an jedem Datenpunkt. Die Steigung gibt die Richtung und Stärke des Trends an. Sie können mathematische Techniken wie Gradient oder Regression verwenden, um die Steigung zu berechnen.

  4. Parameter einstellen: Definieren Sie die Parameter für die Signalerkennung. Bei der Inventory Retracement Bar-Strategie von Huffman legen Sie normalerweise ein Steigungslimit und ein prozentuales Endelimit fest. Die Steigungsgrenze bestimmt den minimalen Steigungswert für ein potenzielles Signal, während die Schwanzprozentsatzgrenze den minimalen Prozentsatz des Kerzenbereichs festlegt, den der obere oder untere Schwanz haben sollte.

  5. Identifizieren Sie Signale: Durchlaufen Sie die Daten und vergleichen Sie die aktuelle und die vorherige Steigung. Wenn beide Steigungen unter dem negativen Steigungsgrenzwert liegen, prüfen Sie, ob der untere Schwanz der aktuellen Kerze größer als der prozentuale Grenzwert für den Schwanz ist. Wenn dies der Fall ist, kennzeichnen Sie es als bullisches Signal. Wenn beide Steigungen über dem Grenzwert für die positive Steigung liegen, prüfen Sie, ob der obere Rand der aktuellen Kerze größer als der Grenzwert für den Randprozentsatz ist. Wenn dies der Fall ist, kennzeichnen Sie es als bärisches Signal.

  6. Signale visualisieren: Erstellen Sie ein Diagramm oder eine Grafik der Preisdaten. Zeichnen Sie die Signale auf dem Diagramm ein, um die Huffman-Kerzen zu visualisieren. Sie können Plotbibliotheken wie Plotly oder Matplotlib verwenden, um das Diagramm zu erstellen und die Signalpunkte zu markieren.

Denken Sie daran, dass die Strategie nicht auf diese Schritte beschränkt ist und Sie sie basierend auf Ihren Anforderungen und Handelspräferenzen anpassen und verfeinern können. Darüber hinaus ist die Implementierung von Risikomanagementtechniken wie das Setzen von Stop-Loss-Orders oder die Bestimmung der Positionsgröße für den erfolgreichen Handel von entscheidender Bedeutung.

Retracement Bar Coded In Python For Algorithmic Trading
Retracement Bar Coded In Python For Algorithmic Trading
  • 2022.04.28
  • www.youtube.com
This video details the IRB or the inventory retracement bar as described and used by Hoffman and the algorithm that detects this bar in an automated method i...
 

So automatisieren Sie Handelsmuster in Python | Kopf- und Schultermuster



So automatisieren Sie Handelsmuster in Python | Kopf- und Schultermuster

Um die Erkennung von Kopf- und Schultermustern in Python zu automatisieren, können wir den im Text beschriebenen Algorithmusschritten folgen. Hier ist eine detaillierte Erklärung jedes Schritts:

  1. Drehpunkte erkennen:

    • In diesem Schritt werden hohe und niedrige Werte in den Preisdaten identifiziert, die höher oder niedriger als die benachbarten Kerzen sind.
    • Es werden zwei Arten von Drehpunkten erkannt: starke Drehpunkte und schwache Drehpunkte.
    • Starke Pivot-Punkte werden mit einer Vielzahl benachbarter Kerzen verglichen, während schwache Pivot-Punkte mit einer kleineren Anzahl von Nachbarn verglichen werden.
  2. Visualisieren Sie Drehpunkte:

    • Die erkannten starken Pivotpunkte und schwachen Pivotpunkte werden in einem Candlestick-Chart dargestellt.
    • Starke Pivot-Punkte werden durch violette Punkte über den Kerzen dargestellt, während schwache Pivot-Punkte durch rote Punkte unter den Kerzen dargestellt werden.
  3. Kopf-Schulter-Muster erkennen:

    • Um das Kopf-Schulter-Muster zu erkennen, durchlaufen wir die Kerzen-IDs im angegebenen Bereich.
    • Für jede Kerzen-ID prüfen wir, ob es sich um einen Pivotpunkt handelt (weder einen starken noch einen schwachen Pivot) und fahren fort.
    • Wenn ein starker Drehpunkt gefunden wird, zeichnen wir die Koordinaten der Maxima und Minima innerhalb eines Kerzenfensters auf beiden Seiten des Drehpunkts auf.
    • Wir verfolgen die Anzahl der Minima und Maxima vor und nach der zentralen Pivot-Kerze.
    • Wenn die Anzahl der Minima und Maxima auf beiden Seiten kleiner als eins ist, ist die Musterbildung nicht möglich und wir springen zur nächsten Kerze.
    • Wenn die Anzahl der Minima und Maxima die Bedingung erfüllt, passen wir eine lineare Regressionsgerade an die Minima an und berechnen deren Steigung und Schnittpunkt.
    • Mit der argmax-Funktion ermitteln wir den Index des Kopfes innerhalb der Maxima.
    • Abschließend prüfen wir, ob die Bedingungen für das Kopf-Schulter-Muster erfüllt sind:
      • Die Differenz zwischen dem Maximum des Kopfindex und dem Maximum vor dem Kopf sollte größer als ein Schwellenwert sein.
      • Die Differenz zwischen dem Maximum des Kopfindex und dem Maximum nach dem Kopf sollte ebenfalls größer als der Schwellenwert sein.
      • Die absolute Steigung der Minima sollte kleiner oder gleich einem Schwellenwert sein.
    • Wenn alle Bedingungen erfüllt sind, haben wir ein Kopf-Schulter-Muster erkannt.
Das Erkennen von Risikomanagementtechniken wie das Setzen von Stop-Loss-Orders oder die Bestimmung der Positionsgröße ist für einen erfolgreichen Handel von entscheidender Bedeutung.
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
  • 2022.04.21
  • www.youtube.com
This video details the head and shoulders candles or candlesticks pattern, and an algorithm is automated in Python language to detect this specific form of c...
 

Erkennung von Dreieckspreismustern in Python | Algorithmischer Handelsindikator



Erkennung von Dreieckspreismustern in Python | Algorithmischer Handelsindikator

In diesem Video untersuchen wir die automatische Erkennung von Dreiecksmustern mithilfe spezifischer Algorithmen. Wir stellen eine einfache Methode zum Erkennen verschiedener Formen von Preisbewegungsdreiecken vor und schreiben einen Python-Code, um ihn an Forex-Daten zu testen. Am Ende werden wir die entdeckten Muster grafisch darstellen, um die Ergebnisse zu visualisieren. Wenn Sie sich für den Codierungsteil interessieren, können Sie die Jupyter Notebook-Datei mit dem Python-Code über den in der Videobeschreibung angegebenen Link herunterladen.

Dreiecksmuster sind für Händler besonders interessant, wenn sie in Handelsstrategien verwendet werden. Einige Händler handeln beispielsweise mit dem Ausbruch von Dreiecken. In den gezeigten Beispielen folgt der Preis einem zukünftigen Trend in Richtung Ausbruch. In einem Beispiel brach der Preis nach einem Abwärtstrend aus den Dreieckskanten aus. In einem anderen Beispiel brach der Preis nach einem Aufwärtstrend aus der Dreieckskante aus. In beiden Fällen setzte sich der Ausbruchstrend fort.

Die Schritte der Methode sind wie folgt:

  1. Pivot-Punkte berechnen: Pivot-Punkte sind Preiswerte, die größer sind als ihre Nachbarn. Bei Pivot-Tiefs sollte das Tief einer Kerze niedriger sein als die Tiefs einer bestimmten Anzahl von Kerzen davor und danach. Bei Pivot-Hochs sollte das Hoch einer Kerze höher sein als die Höchstwerte der angegebenen Anzahl von Kerzen davor und danach.

  2. Maxima und Minima in lineare Steigungen einpassen: Vergleichen Sie für Maxima die Höchstwerte und suchen Sie nach einer zentralen Kerze mit einem Hoch, das höher ist als die angegebene Anzahl von Kerzen davor und danach. Vergleichen Sie für Minima die Tiefstwerte und suchen Sie nach einer zentralen Kerze mit einem Tief, das niedriger ist als die angegebene Anzahl von Kerzen davor und danach.

  3. Dreiecksformen erkennen: Identifizieren Sie je nach gewünschter Dreiecksform Muster anhand der Steigungen von Maxima und Minima. Beispielsweise kann ein konvergierendes Dreieck erkannt werden, wenn die Maxima-Steigung negativ und die Minima-Steigung positiv ist. Ein absteigendes Dreieck kann erkannt werden, wenn die maximale Steigung negativ ist und die minimale Steigung nahe Null oder einer horizontalen Linie liegt.

Schreiben wir nun den Code in Python, um diese Methode zu implementieren und zu sehen, wie sie funktioniert. Die Jupyter-Notebook-Datei enthält den Code zum Importieren der Daten, Bereinigen, Berechnen von Pivot-Punkten, Visualisieren der Pivot-Kerzen und Erkennen von Dreiecksmustern. Wir verwenden Bibliotheken wie Pandas, NumPy und Plotly, um die Datenmanipulations- und Visualisierungsaufgaben zu erledigen.

Nachdem wir die notwendigen Bibliotheken und die Daten importiert haben, definieren wir eine Funktion namens „pivot_id“, um Pivotpunkte basierend auf der angegebenen Anzahl von Nachbarn zu identifizieren. Diese Funktion fügt dem Datenrahmen eine neue Spalte namens „Pivot“ hinzu, die angibt, ob es sich bei einer Kerze um ein Pivot-Tief (1) oder ein Pivot-Hoch (2) handelt.

Anschließend definieren wir eine Funktion namens „points_position“, um die Kerzen darzustellen und basierend auf ihrem Pivot-Status Punkte über und unter ihnen hinzuzufügen. Diese Funktion verwendet die Spalte „point_position“, um die y-Koordinaten der Punkte zu bestimmen.

Mithilfe der Plotly-Bibliothek zeichnen wir die Kerzen und die Drehpunkte ein, um die Ergebnisse zu visualisieren. Dadurch können wir überprüfen, ob die Drehpunkte korrekt identifiziert werden.

Als nächstes implementieren wir den Code zur Erkennung von Dreiecksmustern. Wir wählen eine bestimmte Kerze aus und scannen eine bestimmte Anzahl von Kerzen davor, um zu prüfen, ob in diesem Bereich ein Dreiecksmuster vorhanden ist. Wir iterieren über die Kerzen und speichern die Koordinaten der Maxima und Minima in separaten NumPy-Arrays. Anschließend passen wir diese Punkte mithilfe der linearen Regression in lineare Steigungen ein und berechnen die Steigungen für Maxima und Minima.

Wir zeichnen die Kerzen, Drehpunkte und die Steigungen der Maxima und Minima ein, um das Dreiecksmuster zu visualisieren. Durch Überprüfen der für die Form des Dreiecks definierten Bedingungen, wie z. B. der Korrelationsfaktoren (r_min und r_max), können wir feststellen, ob ein Dreiecksmuster vorliegt. Wenn die Bedingungen erfüllt sind, markieren wir das Dreiecksmuster auf dem Plot.

Schließlich durchlaufen wir alle Kerzen im Datensatz und wiederholen den Prozess der Erkennung von Dreiecksmustern. Jedes Mal, wenn ein Muster gefunden wird, speichern wir die Koordinaten des Dreiecks zur späteren Visualisierung in separaten Listen.

Am Ende des Codes verwenden wir Plotly, um die Kerzen, Drehpunkte und die erkannten Dreiecksmuster darzustellen. Dies bietet eine visuelle Darstellung der identifizierten Dreiecke in den Preisdaten.

Durch Ausführen des Codes und Untersuchen des Diagramms können wir die erkannten Dreiecksmuster sehen und ihre Formen analysieren. Diese Informationen können für Händler nützlich sein, die Dreiecksmuster in ihre Handelsstrategien integrieren möchten.

Denken Sie daran, dass der in der Jupyter Notebook-Datei bereitgestellte Code nur eine mögliche Implementierung zur Erkennung von Dreiecksmustern ist. Es gibt verschiedene Möglichkeiten, dieses Problem anzugehen, und Sie können verschiedene Algorithmen ausprobieren oder den vorhandenen Code an Ihre spezifischen Anforderungen anpassen.

Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
  • 2022.04.14
  • www.youtube.com
This video details the algorithm for triangle price pattern detection in python, this technical indicator can be programmed in python to detect all shapes of...
 

Python AlgoTrading Backtest: Verwendung von RSI und ADX mit gleitendem Durchschnitt für Kauf-/Verkaufssignale



Python AlgoTrading Backtest: Verwendung von RSI und ADX mit gleitendem Durchschnitt für Kauf-/Verkaufssignale

Hallo an alle! In diesem Video führen wir einen detaillierten Test einer Sculpting-Strategie durch, die auf dem Average Directional Index (ADX) und dem Relative Strength Indicator (RSI) sowie anderen Bestätigungsindikatoren basiert. Diese Strategie wird als profitabler Ansatz für das Scalping beworben. Wir konzentrieren uns auf die violetten Punkte direkt unter den roten Pfeilen im Preisdiagramm, die automatisch durch den von uns beschriebenen Algorithmus generiert werden.

In diesem konkreten Beispiel stellen die violetten Punkte Verkaufssignale dar, und es ist erwähnenswert, dass auf diese Signale ein Preisverfall folgt. Dies deutet darauf hin, dass diese Strategie vielversprechend ist, da diese Signale zu erfolgreichen Trades geführt haben. Um tiefer in den Codierungsaspekt einzutauchen, können Sie den Python-Code, eine Jupyter Notebook-Datei, über den in der Beschreibung angegebenen Link herunterladen.

Unser Ziel ist es, eine automatisierte Sculpting-Strategie in Python zu entwickeln, die es uns ermöglicht, Trades einzurichten, den Code laufen zu lassen und möglicherweise im Schlaf zu profitieren. Es ist jedoch wichtig zu erkennen, dass der Erfolg möglicherweise nicht so einfach ist, wie es zunächst klingt.

Wir werden mit dem Testen im Fünf-Minuten-Zeitrahmen beginnen, wie für diese spezielle Strategie empfohlen. Um den Preistrend zu bestimmen, verwenden wir den 50 Exponential Moving Average (EMA). Wenn der Preis über dieser Kurve liegt, deutet dies auf einen Aufwärtstrend hin und wir werden uns ausschließlich auf den Kauf von Positionen konzentrieren. Wenn der Preis hingegen unter dem 50-EMA liegt, deutet dies auf einen Abwärtstrend hin und wir werden ausschließlich den Verkauf von Positionen in Betracht ziehen.

Darüber hinaus werden wir den RSI mit einer Periode von 3 und Triggerniveaus von 20 und 80 einbeziehen. Wenn der RSI unter 20 fällt, deutet dies darauf hin, dass der Markt überverkauft ist, was ein Kaufsignal auslöst. Wenn der RSI hingegen 80 überschreitet, deutet dies darauf hin, dass der Markt überkauft ist, was zu einem Verkaufssignal führt.

Unsere Strategie berücksichtigt auch den Average Directional Index (ADX) mit einer Periode von fünf. Wenn der ADX 30 überschreitet, deutet dies auf einen starken Trend hin und dient als Bestätigungsindex für Aufwärts- und Abwärtstrends. In beiden Fällen suchen wir nach Werten über 30.

Wenn alle diese Bedingungen erfüllt sind, wird der erste Teil unseres Signals generiert. Um dieses Signal weiter zu validieren, werden wir einen Candle-Pattern-Ansatz anwenden und dabei gezielt nach einer verschlingenden Kerze suchen, die mit dem Trend übereinstimmt. Wenn der Trend nach oben zeigt, werden wir eine zinsbullische Engulfing-Kerze anstreben; Wenn der Trend abwärts geht, werden wir eine bärische Engulfing-Kerze anstreben.

Glücklicherweise können alle diese Indikatoren in Python automatisiert und anhand historischer Daten getestet werden. Das Beispiel, das wir verwenden werden, wurde zufällig aus dem Datensatz ausgewählt. Erste Beobachtungen deuten auf positive Signale hin, da den Verkaufssignalen tendenziell ein Preisrückgang folgt, während auf die Kaufsignale häufig ein Preisanstieg folgt.

Um diese Strategie auf die ultimative Probe zu stellen, werden wir mit Python ein Backtesting durchführen und anhand der Ergebnisse ihre Durchführbarkeit bestimmen. Wir werden die historischen Daten für das Währungspaar EUR/USD von 2019 bis 2022 importieren, insbesondere unter Verwendung von Fünf-Minuten-Candlesticks. Wir werden die Daten auch bereinigen, indem wir Zeiträume ohne Handelsaktivität, wie Wochenenden und Feiertage, entfernen.

Mithilfe des Pandas TA-Pakets (Technical Analysis) fügen wir unserem Datenrahmen vier zusätzliche Spalten hinzu: 50 EMA, RSI mit einer Periode von 3, ADX mit einer Periode von 5 und Average True Range (ATR). Letzteres wird zur Berechnung der Stop-Loss-Distanz herangezogen. Das EMA-Trendsignal zeigt an, ob die Kerzen unter oder über der 50-EMA-Kurve handeln und bestimmt, ob wir uns jeweils in einem Abwärts- oder Aufwärtstrend befinden.

Wenn wir uns in einem Abwärtstrend befinden, prüfen wir, ob der RSI unter 20 liegt, was auf einen überverkauften Zustand hinweist. Wenn sowohl die Abwärtstrend- als auch die Überverkaufsbedingungen erfüllt sind, generieren wir ein Verkaufssignal.

Wenn wir uns in einem Aufwärtstrend befinden, prüfen wir ebenfalls, ob der RSI über 80 liegt, was auf einen überkauften Zustand hinweist. Wenn sowohl die Aufwärtstrend- als auch die Überkaufbedingungen erfüllt sind, generieren wir ein Kaufsignal.

Um diese Signale weiter zu validieren, werden wir nach verschlingenden Kerzenmustern suchen, die mit dem Trend übereinstimmen. Als Verkaufssignal suchen wir nach einer bärischen Engulfing-Kerze, bei der der Körper der aktuellen Kerze den Körper der vorherigen Kerze in Abwärtsrichtung vollständig umhüllt. Als Kaufsignal suchen wir nach einer bullischen Engulfing-Kerze, bei der der Körper der aktuellen Kerze den Körper der vorherigen Kerze in Aufwärtsrichtung vollständig umhüllt.

Sobald die Signale generiert sind, berechnen wir die Stop-Loss-Distanz anhand der Average True Range (ATR). Die ATR liefert eine Schätzung der durchschnittlichen Preisspanne über einen bestimmten Zeitraum, die uns dabei helfen kann, ein angemessenes Stop-Loss-Niveau zu bestimmen.

In der Backtesting-Phase werden wir die historischen Daten durchlaufen und diese Regeln anwenden, um Handelssignale zu generieren und auszuwerten. Für jedes Signal simulieren wir einen Handel, vorausgesetzt, wir eröffnen die Position zum Eröffnungspreis der nächsten Kerze, nachdem das Signal generiert wurde. Wir werden außerdem ein festes Take-Profit-Niveau definieren, das auf einem bestimmten Verhältnis von Chance und Risiko basiert.

Während der Simulation verfolgen wir den Gewinn oder Verlust für jeden Trade und berechnen wichtige Leistungskennzahlen wie Gesamtgewinn, Gesamtverlust, Gewinnquote und durchschnittliche Rendite pro Trade. Dies wird uns helfen, die Wirksamkeit der Strategie zu beurteilen und ihre Rentabilität zu bestimmen.

Es ist wichtig zu beachten, dass Backtesting-Ergebnisse auf historischen Daten keine Garantie für die zukünftige Leistung sind. Die Marktbedingungen können sich ändern, und Strategien, die in der Vergangenheit gut funktioniert haben, funktionieren möglicherweise in Zukunft nicht mehr so effektiv. Daher ist es von entscheidender Bedeutung, Handelsstrategien kontinuierlich auf der Grundlage der Echtzeit-Marktbedingungen zu bewerten und anzupassen.

Abschließend haben wir eine Modellierungsstrategie skizziert, die auf dem Average Directional Index (ADX), dem Relative Strength Indicator (RSI) und verschlingenden Kerzenmustern basiert. Wir haben den Prozess der Automatisierung dieser Strategie mithilfe von Python und der Durchführung von Backtesting auf historischen Daten besprochen. Die Ergebnisse des Backtestings werden Einblicke in die Leistung der Strategie liefern und dabei helfen, ihre Realisierbarkeit als profitabler Scalping-Ansatz zu beurteilen.

Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
  • 2022.04.07
  • www.youtube.com
This is a backtested strategy using the ADX and the RSI, the algotrading code is built in python and the backtest is conducted using backtesting.py package. ...
 

So verwenden Sie den Volumenindikator für die Analyse der Handelsstrategie in Python


So verwenden Sie den Volumenindikator für die Analyse der Handelsstrategie in Python

Heute begeben wir uns auf eine spannende Reise und testen eine Volumenhandelsstrategie. Diese spezielle Strategie arbeitet im täglichen Zeitrahmen und ist für ihre Sicherheit bekannt, da sie theoretisch nur ein minimales Risiko birgt. Ich habe sie treffend als „Volumenhandelsstrategie“ bezeichnet, da sie auf Volumen und anderen technischen Indikatoren basiert.

Unser Ziel ist es, einen Code zu entwickeln, der diese Strategie anhand historischer Daten über einen Zeitraum von bis zu 18 Jahren automatisch testen kann. Auf diese Weise können wir ein umfassendes Verständnis über die Leistung der Strategie gewinnen. Wer sich für den Coding-Aspekt interessiert, findet die Jupyter Notebook Python-Datei in der Videobeschreibung. Es gibt einen Link, über den Sie die vollständige Datei herunterladen können, die wir für diesen Test verwenden werden.

Zunächst verwenden wir den exponentiellen gleitenden 200-Tage-Durchschnitt (EMA) als ersten Indikator. Wenn der Preis unterhalb dieser Kurve handelt, bedeutet dies einen Abwärtstrend, wohingegen ein Handel über dem 200 EMA einen Aufwärtstrend anzeigt. Unsere erste Regel ist einfach: Wenn wir einen Abwärtstrend erkennen, berücksichtigen wir nur Verkaufspositionen, und im Falle eines Aufwärtstrends konzentrieren wir uns ausschließlich auf Kaufpositionen.

Lassen Sie uns nun näher auf die Einzelheiten unserer Strategie eingehen. Wir werden nach vier aufeinanderfolgenden Kerzen suchen, die sich entgegen dem vorherrschenden Trend bewegen, dh den Preis näher an den gleitenden Durchschnitt zurückführen. Es ist wichtig zu beachten, dass die Anzahl der Kerzen je nach Wunsch des Benutzers angepasst werden kann. In unserem Jupyter-Notebook haben wir die Flexibilität bereitgestellt, diesen Parameter jederzeit zu ändern. Vorerst bleiben wir bei mindestens vier Kerzen.

Als nächstes untersuchen wir die folgende Kerze, die mit der Trendrichtung übereinstimmen sollte. Befinden wir uns beispielsweise in einem Abwärtstrend, suchen wir nach einer rückläufigen Kerze. Am Ende des Handelstages, wenn die Kerze geschlossen ist, überprüfen wir ihr Volumen. Übersteigt das Volumen das der vorherigen Kerze, dient dies als Verkaufssignal in einem Abwärtstrend. Umgekehrt suchen wir in einem Aufwärtstrend nach mindestens vier aufeinanderfolgenden bärischen Kerzen, gefolgt von einer zinsbullischen Kerze mit einem höheren Volumen als die vorherige Kerze. Dies bedeutet eine Kaufposition.

Jetzt kommt der komplizierte Teil: die Bestimmung der Stop-Loss- und Take-Profit-Werte. In diesem Video untersuchen wir zwei verschiedene Ansätze und bewerten ihre Ergebnisse. Die erste Methode beinhaltet die Verwendung einer Stop-Loss-Distanz im Zusammenhang mit der Average True Range (ATR), beispielsweise dem Doppelten oder Dreifachen der ATR unserer Verkaufs- oder Kaufpositionen. Die zweite Methode betrachtet das höchste Hoch der vorherigen Kerzen als unseren Stop-Loss für einen Abwärtstrend und eine Verkaufsposition. Die Anzahl der Kerzen, die zum Festlegen des Stop-Loss berücksichtigt werden sollen, ist eine Variable in unserem Python-Programm, die es uns ermöglicht, verschiedene Szenarien zu experimentieren und zu testen. Normalerweise beginne ich mit vier Kerzen, ähnlich der Zahl, die wir zum Überprüfen unserer Handelssignale verwenden. Für einen Aufwärtstrend und eine Kaufposition suchen wir nach dem niedrigsten Tief unter den vorherigen Kerzen.

Lassen Sie uns nun den Code untersuchen und sehen, wie alles zusammenwirkt. In unserer Jupyter-Notebook-Datei importieren wir zunächst die erforderlichen Bibliotheken, einschließlich Pandas, mit denen wir die CSV-Datendatei mit den täglichen EUR/USD-Wechselkursen von 2003 bis 2022 lesen. Darüber hinaus laden wir Daten für andere Assets wie die Aktien von Amazon, eBay und Volkswagen, da wir diese Strategie auch an der Börse testen wollen. Da wir mit Tagesdaten arbeiten, besteht der anfängliche Datensatz aus 6.858 Zeilen, die im Zuge der Datenbereinigung weiter reduziert werden. Wir stellen außerdem sicher, dass die Spaltentitel unseren Anforderungen entsprechen, indem wir sie in „Zeit“, „Offen“, „Hoch“, „Niedrig“, „Schließen“ und „Volumen“ umbenennen, um Konsistenz über verschiedene Datendateien hinweg zu gewährleisten.

Nachdem wir die Signale im Diagramm dargestellt haben, definieren wir unsere Stop-Loss- und Take-Profit-Werte. In diesem Beispiel werden zwei Methoden getestet. Die erste Methode besteht darin, die Average True Range (ATR) zur Bestimmung der Stop-Loss-Distanz zu verwenden. Der Stop-Loss wird auf ein bestimmtes Vielfaches des ATR vom Einstiegspunkt festgelegt. Die zweite Methode berücksichtigt das höchste Hoch für Verkaufspositionen oder das niedrigste Tief für Kaufpositionen unter einer bestimmten Anzahl früherer Kerzen, um das Stop-Loss-Niveau zu bestimmen.

Sobald die Stop-Loss- und Take-Profit-Level definiert sind, berechnen wir den Gewinn und Verlust (P&L) für jeden Trade. Wir prüfen, ob es sich bei dem Gesamtsignal um ein Kauf- oder Verkaufssignal handelt und berechnen die Gewinn- und Verlustrechnung entsprechend. Handelt es sich um ein Kaufsignal, berechnen wir den P&L als Differenz zwischen dem Schlusskurs der nächsten Kerze und dem Einstiegspreis. Handelt es sich um ein Verkaufssignal, berechnen wir die Gewinn- und Verlustrechnung als Differenz zwischen dem Einstiegspreis und dem Schlusskurs der nächsten Kerze.

Die kumulierte Gewinn- und Verlustrechnung wird dann durch Addition der einzelnen Handels-Gewinn- und Verlustrechnungen berechnet. Außerdem berechnen wir die Gesamtzahl der Trades und die Gewinnrate (Prozentsatz der erfolgreichen Trades) basierend auf den positiven Gewinn- und Verlustrechnungen.

Abschließend drucken wir die Ergebnisse aus, einschließlich der gesamten Gewinn- und Verlustrechnung, der Anzahl der Trades und der Gewinnquote.

Der im Jupyter Notebook bereitgestellte Code ermöglicht eine weitere Anpassung und Prüfung der Strategie. Sie können Parameter wie die Anzahl der für die Trendbestimmung zu berücksichtigenden Rückkerzen, die Anzahl der für die Preissignalgenerierung verwendeten vorherigen Kerzen, das Vielfache des ATR für die Stop-Loss-Berechnung und die Anzahl der für die Stop-Loss-Level-Bestimmung zu berücksichtigenden vorherigen Kerzen ändern.

Der Code implementiert eine Volumenhandelsstrategie basierend auf technischen Indikatoren wie dem 200-Tage-Exponential Moving Average (EMA), Volumen und Preisbewegungen. Es testet die Strategie über einen bestimmten Zeitraum anhand historischer Daten und berechnet die Rentabilitäts- und Leistungskennzahlen.

How To Use The Volume Indicator For Trading Strategy Analysis In Python
How To Use The Volume Indicator For Trading Strategy Analysis In Python
  • 2022.03.24
  • www.youtube.com
Welcome to my video on how to use the volume indicator for trading strategy analysis in Python. In this video, I will be sharing a daily timeframe volume tra...
 

In Python getestete automatisierte RSI-Scalping-Strategie



In Python getestete automatisierte RSI-Scalping-Strategie

Heute testen wir eine Scalping-Strategie basierend auf dem RSI (Relative Strength Index). Die Strategie umfasst zwei Indikatoren: den Exponential Moving Average (EMA) und den RSI. Wir führen Backtests mit Python-Code durch, den Sie über den Link in der Videobeschreibung herunterladen können.

Für den Backtest werden wir drei verschiedene Versionen der Strategie verwenden, die auf unterschiedlichen Zeitrahmen basieren: eine für Ein-Minuten-Kerzen, eine andere für 15-Minuten-Kerzen und eine dritte für Ein-Stunden-Kerzen. Der Schwerpunkt dieses Videos liegt auf dem 15-minütigen Zeitrahmen, wir werden jedoch alle drei Versionen behandeln.

Die Strategie folgt bestimmten Regeln. Zunächst analysieren wir den aktuellen Preis im Verhältnis zum 200 EMA. Wenn der Preis über dem 200-EMA liegt, betrachten wir dies als Aufwärtstrend. Wenn der Preis hingegen unter dem 200-EMA liegt, betrachten wir dies als Abwärtstrend. Bei einem Aufwärtstrend suchen wir nur nach Kaufpositionen, während wir bei einem Abwärtstrend nur nach Verkaufspositionen suchen.

Als nächstes untersuchen wir die RSI-Werte zweier aufeinanderfolgender Kerzen. Zunächst verwenden wir einen Zwei-Kerzen-RSI für den Zeitrahmen von einer Minute. Da ein Backtesting über mehrere Jahre mit Ein-Minuten-Kerzen jedoch eine enorme Datenmenge erzeugen würde, beginnen wir mit dem 15-Minuten-Zeitrahmen. In diesem Fall können wir die RSI-Länge je nach Zeitrahmen auf drei oder vier Kerzen anpassen. Für den einminütigen Zeitrahmen verwenden wir einen RSI mit zwei Kerzen und Testwerte unter 10 und über 90.

In einem Aufwärtstrend warten wir, bis der RSI unter 10 fällt, bevor wir eine Kaufposition ausführen. Bei Verkaufspositionen warten wir darauf, dass der RSI über 90 steigt. Diese RSI-Werte dienen als Einstiegspunkte für unsere Geschäfte. Das Video bietet visuelle Beispiele dafür, wie die Strategie Einstiegspositionen anhand der Preis- und RSI-Kriterien identifiziert.

Der nächste Schritt besteht darin, die Stop-Loss- und Take-Profit-Werte für die Trades zu bestimmen. Es können verschiedene Methoden verwendet werden, wie zum Beispiel Stop-Loss mit fester Distanz, ATR-bezogene Stop-Distanz oder Trailing-Stop-Werte. Ebenso kann der Take-Profit auf einen festen Abstand festgelegt oder auf den Stop-Loss-Abstand mit einem bestimmten Take-Profit/Stop-Loss-Verhältnis bezogen werden.

Um die Wirksamkeit der Strategie zu bewerten, schreiben wir Python-Code, um ein Backtesting der Daten über ein bis drei Jahre durchzuführen. Darüber hinaus führen wir einen Schritt ein, um die Robustheit der Strategie zu überprüfen, indem wir sie anhand neuer Daten testen, die separat aufbewahrt wurden, um Verzerrungen zu vermeiden.

Im Video wird der Code in einem Jupyter-Notebook analysiert. Es beginnt mit dem Laden der Daten, dem Bereinigen durch Entfernen von Null-Volumen-Einträgen (die auf Wochenenden oder Feiertage hinweisen) und der Berechnung der 200 EMA- und RSI-Werte. Zur Bestimmung einer möglichen Stop-Loss-Distanz wird auch die Average True Range (ATR) berechnet.

Sobald die erforderlichen Signale berechnet sind, zeigt das Video die Visualisierung dieser Signale in einem Diagramm. Die Preiskerzen, die 200-EMA-Kurve und die Einstiegspositionen (Kauf und Verkauf) werden aufgezeichnet, um das Verhalten der Indikatoren visuell zu analysieren.

Nach der Analyse der Signale erklärt das Video, wie wichtig es ist, die Strategie über einen längeren Zeitraum hinweg zu testen, um ihre Rentabilität zu beurteilen. Zunächst wurde die Strategie über kürzere Zeiträume getestet, das Ergebnis war jedoch unterschiedlich. Daher ist ein Backtesting über einen längeren Zeitraum von entscheidender Bedeutung, um die Gesamtwirksamkeit der Strategie zu bewerten.

Das Video betont die Notwendigkeit eines Backtestings und der Überprüfung der Leistung der Strategie über einen längeren Zeitraum. Durch die Untersuchung der Endergebnisse des Backtests können wir feststellen, ob die Strategie profitabel und robust ist.

Automated RSI Scalping Strategy Tested In Python
Automated RSI Scalping Strategy Tested In Python
  • 2022.03.17
  • www.youtube.com
An Automated RSI Scalping Strategy is presented and backtested using python algorithmic trading over 3 years of data showing positive returns. The Test deta...