![Trailing-Stopp im Handel](https://c.mql5.com/2/67/Trailing_stop_in_trading_600x314.jpg)
Trailing-Stopp im Handel
Einführung
Der Hauptzweck eines Trailing-Stopps besteht darin, einen garantierten Gewinn bei minimalem Risiko zu erzielen. Die Funktionsweise eines Trailing-Stopps ist im Wesentlichen sehr einfach. Der Stop-Loss bewegt sich schrittweise hinter dem Kurs, wenn dieser sich zu Gunsten des Händlers entwickelt. Er bleibt konstant, wenn sich der Preis in die entgegengesetzte Richtung bewegt.
Schematisch lässt sich ein Trailing-Stop wie folgt darstellen. Nehmen wir an, ein Händler hat eine Kaufposition in einem steigenden Trend eröffnet. Wenn der Kurs steigt, folgt der Stop Loss automatisch dem Kurs. Wenn der Trend seine Richtung ändert, kann der Händler Gewinne realisieren.
Es gibt eine große Anzahl von Trailing-Stop-Optionen. Die Handelsplattform MetaTrader verfügt über eigene Trailing-Stop-Optionen.
Darüber hinaus kann der Trailing-Stop automatisiert und in den Code von Expert Advisors integriert werden. Dies kann zum Beispiel mit Klassen zur Unterstützung offener Positionen geschehen.
Die Effizienz eines Trailing-Stopps hängt weitgehend von der Preisvolatilität und der Wahl des Stop-Loss-Niveaus ab. Für die Festlegung eines Stop-Loss können verschiedene Ansätze verwendet werden. Liegt beispielsweise ein klar erkennbarer Trend vor, können wir die Werte der Kurshöchst- oder -tiefststände verwenden. Darüber hinaus können Trailing-Stop-Parameter mithilfe technischer Indikatoren bestimmt werden. Ein solcher Ansatz wird in dem Artikel „Wie Sie Ihren eigenen Trailing Stop erstellen“ beschrieben. In diesem Artikel werden wir uns mit der Möglichkeit befassen, einen Trailing-Stop auf der Grundlage statistischer Daten zu konstruieren.
Einfacher Trailing-Stop
Die Handelsstrategie und der Trailing-Stop sind unabhängig voneinander. Der Hauptunterschied zwischen ihnen besteht darin, dass die Strategien Positionen eröffnen und schließen. Ein Trailing-Stop ist nur für die Schließung von Positionen vorgesehen.
Schauen wir uns zunächst die Einschränkungen an, die für den Stop-Loss gelten.
Die Obergrenze des Stop-Loss wird in den Symboleigenschaften festgelegt - die Mindestdifferenz zwischen dem Schlusskurs der Position und dem gesetzten Stop-Loss darf nicht kleiner sein als der Mindestabstand in Punkten zum aktuellen Schlusskurs der Position.
SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)
Was die Untergrenze betrifft, so müssen wir sie selbst berechnen. Die erste Voraussetzung für den minimalen Stop-Loss ist, dass er im Breakeven-Bereich liegen muss. Auf den ersten Blick ist alles ganz einfach: Der minimale Stop-Loss sollte nicht schlechter sein als der Eröffnungskurs der Position. Richtig? Falsch!
Bei der Eröffnung einer Position kann eine Provision erhoben werden. Darüber hinaus kann eine Position während ihres Bestehens Swaps akkumulieren. Diese zusätzlichen Kosten sollten bei der Berechnung des möglichen Mindeststoppverlustes berücksichtigt werden. Dazu müssen wir die Kosten für einen Punkt in der Einzahlungswährung ermitteln.
PointValue=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)*SymbolInfoDouble(_Symbol,SYMBOL_POINT)/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE)
Nun können wir berechnen, um wie viele Punkte sich der Kurs bewegen muss, um die Provision und den Swap auszugleichen. Darüber hinaus sollten wir Slippage nicht vergessen. Bei Handelsgeschäften kann Slippage sowohl zum Schlechten als auch zum Guten wirken. Aber wir werden vorsichtig sein und davon ausgehen, dass Slippage immer gegen den Händler arbeitet.
Angenommen, dass PriceOpen ein Preis für die Positionseröffnung ist, während Lot ihr Volumen ist. Dann kann der minimale Stop-Loss mit der folgenden Gleichung berechnet werden:
Die oberen Vorzeichen werden für Kaufpositionen verwendet, die unteren für Verkaufspositionen.
Der minimale Stop-Loss entspricht dem garantierten Breakeven-Niveau der Position. Mit anderen Worten: Wenn die Position beim minimalen Stop-Loss geschlossen wird, ist ihr Gesamtgewinn (unter Berücksichtigung des aktuellen Gewinns, des Swaps und der Provision) nicht negativ.
Nun können wir die Grundregeln für einen Trailing-Stop formulieren:
- ein neuer Stop-Loss sollte zwischen dem Mindest- und dem Höchstwert liegen;
- ein neuer Stop-Loss muss besser sein als der vorherige.
Wenn diese Voraussetzungen erfüllt sind, kann der Stop-Loss aufgestockt werden. Vor dem Upgrade muss jedoch noch eine weitere Prüfung durchgeführt werden - der alte Stop-Loss muss außerhalb des Freeze-Levels liegen (weitere Informationen hierzu - „Welche Prüfungen muss ein Handelsroboter vor der Veröffentlichung auf dem Markt bestehen?“).
Wir können verschiedene Ansätze verwenden, um einen neuen Stop-Loss zu bestimmen. Ich verwende die Niveaus, die im Artikel „Händlerfreundlicher Stop-Loss und Take-Profit“ beschrieben sind.
Ich werde jedoch kleine Änderungen vornehmen, um den optimalen Stop-Loss zu berechnen. Der Trailing-Stop sollte auf dem aktuellen Balken ausgelöst werden, sodass die Positionshaltezeit immer 1 Balken beträgt. Darüber hinaus werden Statistiken über die Preisentwicklung in einem zufällig ausgewählten Zeitrahmen erhoben. Auf diese Weise lässt sich die Empfindlichkeit des Trailing-Stops anpassen.
Ein paar Worte zur Gewinnmitnahme. Hier kann es verschiedene Möglichkeiten geben.
Nehmen wir an, ein Händler verwendet eine Handelsstrategie mit einem bestimmten Take-Profit. Dann kann der Take-Profit fest bleiben, und der Trailing-Stop verändert nur den Stop-Loss. In diesem Fall führt ein Trailing-Stop die Position zur Gewinnschwelle.
Wenn die Handelsstrategie keinen Take-Profit vorsieht oder es möglich ist, einen Trailing-Take-Profit zu verwenden, kann ein Trailing-Stop die Niveaus sowohl des Stop-Loss als auch des Take-Profits überwachen. In diesem Fall kann sich die Rentabilität des Handels ändern, da einige Positionen zu besseren Preisen geschlossen werden können.
Darüber hinaus ist es möglich, dass ein Trailing-Stop im Tick-by-Tick-Modus verwendet wird. Dann macht es keinen Sinn, einen Take-Profit zu setzen - der Kurs wird den Take-Profit niemals einholen. Die einzige Möglichkeit, eine Position zu schließen, besteht in einem Stop-Loss.
Sehen wir uns an, wie ein einfacher Trailing-Stop mit und ohne Take-Profit funktioniert. Gleichzeitig führen wir eine zusätzliche Bedingung ein: Das Setzen und Ändern des Take-Profits ist erst möglich, wenn der Trailing-Stop den Stop-Loss in den Breakeven-Bereich verschiebt.
Ich werde EURUSD H1 verwenden. Testzeitraum - vom 1. Januar bis 31. Dezember 2023. Trailing-Stopp Zeitrahmen M1. Die Richtung und der Umfang der Positionen werden nach dem Zufallsprinzip bestimmt. Stop-Loss- und Take-Profit-Positionen werden nicht gesetzt.
Die Saldenkurve sieht wie folgt aus.
Einige Positionen wurden am Ende des Tests zwangsweise geschlossen - dies ist ein Nachteil der verwendeten Strategie. Die Grafik vermittelt jedoch eine Vorstellung davon, wie ein Trailing-Stop funktionieren könnte. Schauen wir uns die Testergebnisse an.
PERIOD_M1 | Nettogewinn, $ | Bruttogewinn | Bruttoverlust |
---|---|---|---|
UseTakeProfit=false | 4 758.48 | 10 689.84 | -5 931.36 |
UseTakeProfit=true | 5 483.94 | 11 297.68 | -5 813.74 |
Wie wir sehen können, kann die Verwendung von Take-Profits die Rentabilität des Handels beeinflussen. Versuchen wir nun, den Test mit denselben Bedingungen durchzuführen, setzen aber den Trailing-Stop-Zeitrahmen auf M15.
PERIOD_M15 | Nettogewinn, $ | Bruttogewinn | Bruttoverlust |
---|---|---|---|
UseTakeProfit=false | 16 371.11 | 33 435.31 | -17 064.20 |
UseTakeProfit=true | 17 038.63 | 34 042.13 | -17 003.50 |
Die Änderung des Zeitrahmens hatte einen erheblichen Einfluss auf die Testergebnisse. Dies ist auf Änderungen bei den optimalen Stop-Loss- und Take-Profit-Niveaus zurückzuführen. Daraus lässt sich schließen, dass kleine Trailing-Stop-Zeitrahmen sich für ein Scalping eignen, während größere Zeitrahmen eher für Trendstrategien geeignet sind.
Moralische Erwartung und der Trailing-Stop
Eine Moralische Erwartung ist eine Risikobewertung, die erstmals 1732 von Daniel Bernoulli entwickelt wurde. Die moralische Erwartung ermöglicht es uns, den Nutzen des Spiels zu bewerten. Dabei werden das Kapital des Spielers, mögliche Gewinne und Verluste sowie deren Wahrscheinlichkeiten berücksichtigt.
Betrachten wir den Handelsprozess ein wenig anders. Betrachten wir mal jede Position als einen eigenen Spieler. Die Position hat dann ein Kapital - den Gesamtgewinn der Position. Dieses Kapital kann sich erhöhen, wenn die Position mit Gewinnmitnahme geschlossen wird. Sie kann auch sinken, wenn die Position durch einen Stop-Loss geschlossen wird.
Angenommen, dass ProfitPoint ein Positionsgewinn in Punkten ist, während p die Wahrscheinlichkeit ist, dass die Position bei Take-Profit geschlossen wird. Dann kann die moralische Erwartung der Position wie folgt gefunden werden:
Natürlich muss der Händler einen Stop-Loss und einen Take-Profit wählen, bei denen die moralische Erwartung maximal wird. Schauen wir uns die Merkmale der Unterstützung einer Position mit Hilfe der moralischen Erwartung an.
Der Stop-Loss muss unbedingt unter dem Gewinn liegen. Nur in diesem Fall kann die moralische Erwartung positiv sein. Diese Bedingung ist jedoch nicht ausreichend. Gehen wir davon aus, dass wir den optimalen Stop-Loss und Take-Profit gefunden haben. Diese Werte sind ideal für einen idealen Markt. Der reale Markt kann Überraschungen bringen.
Nehmen wir an, der Trailing-Stop hat einen optimalen Stop-Loss gesetzt, aber aufgrund von Slippage kann die Position zu einem schlechteren Preis schließen. In diesem Fall kann der tatsächliche Stop-Loss größer sein als der Gewinn der Position. Dies kann nicht zugelassen werden. Der Stop-Loss unterliegt also einer Einschränkung:
Bei der Berechnung der moralischen Erwartung wird der Take-Profit-Wert verwendet. Seine Verwendung ist jedoch nicht obligatorisch. Die Merkmale der Handelsstrategie sind in dieser Angelegenheit wichtiger.
Solche Ergebnisse werden durch einen auf der moralischen Erwartung basierenden Trailing-Stop dargestellt.
PERIOD_M1 | Nettogewinn, $ | Bruttogewinn | Bruttoverlust |
---|---|---|---|
UseTakeProfit=false | 4 482.35 | 8 175.37 | -3 693.02 |
UseTakeProfit=true | 4 747.94 | 8 434.11 | -3 686.17 |
Die Ergebnisse fielen etwas schlechter aus als bei einem einfachen Trailing-Stop. Das liegt daran, dass bei Positionen, die durch eine moralische Erwartung gestützt werden, der Breakeven früher erreicht wird als bei einem einfachen Trailing-Stop. Daher wird ein solcher Trailing-Stop am besten bei Scalping-Strategien eingesetzt.
Ein weiterer, schwerwiegender Nachteil ist die große Anzahl der erforderlichen Operationen. Berechnungen können optimiert werden. Aber selbst in diesem Fall sollte der Trailing-Stop-Zeitrahmen durch die moralische Erwartung klein sein.
Trailing-Stop für mehrere Positionen
Bisher haben wir für jede Position einzeln einen Trailing-Stop gesetzt. Ist es möglich, sie auf mehrere Stellen gleichzeitig anzuwenden? Lassen Sie uns diese Möglichkeit in Betracht ziehen. Wir gehen davon aus, dass Positionen unterschiedlicher Art und mit unterschiedlichem Volumen gleichzeitig vorhanden sein können.
Zunächst einmal müssen wir feststellen, welche Art von Positionen einen Vorteil hat. Zu diesem Zweck wird die Summe der Volumina der Kaufpositionen ermittelt und davon die Summe der Volumina der Verkaufspositionen abgezogen.
Das Ergebnis wird zeigen, welche Art von Position stärker ist. Eine positive Zahl bedeutet, dass die Kaufposition stärker ist, eine negative Zahl, dass die Verkaufsposition die Oberhand hat. Ist das Ergebnis gleich Null, so sind die Positionen gleich stark.
Als Nächstes müssen wir den kleinstmöglichen Schlusskurs für jede Position ermitteln. Sie werden auf die gleiche Weise berechnet wie der minimale Stop-Loss, berücksichtigen aber nicht den Slippage.
Nun müssen wir diese Schlusskurse in Brief- und Geldkurse umrechnen und ihren gewichteten Durchschnitt ermitteln. Die Positionsvolumina dienen als Gewichte.
Es ist zweckmäßiger, diese beiden Werte auf einen optimalen Gebotswert zu reduzieren, der später für die Positionsverfolgung benötigt wird.
Jetzt haben wir drei Möglichkeiten:
- Wenn die Volumina der Kauf- und Verkaufspositionen gleich groß sind, entspricht der optimale Bid-Preis dem geringsten Verlust. Mit anderen Worten: Der Händler kann alle Positionen schließen, wenn der tatsächliche Bid.Preis mit dem optimalen Kurs übereinstimmt.
- Wenn das Volumen der Kaufpositionen größer ist, müssen Sie BidOpt um den Slippage-Betrag erhöhen. Dies ist der minimale Stop-Loss für alle Positionen.
- Wenn das Volumen der Verkaufspositionen größer ist, sollte der BidOpt-Wert um den Slippage-Betrag reduziert werden.
Die Positionen werden auf dieselbe Weise gehalten wie bei einem einfachen Trailing-Stop. Neue Stop-Loss-Niveaus werden berechnet und an den Kurs angepasst. Der einzige Unterschied besteht darin, dass dieser Stop-Loss virtuell ist. Daher müssen wir die Preisänderung bei jedem Tick verfolgen.
Ich habe mehrere Positionen nach dem Prinzip eines einfachen Trailing-Stops unterstützt. So verändert sich das Gleichgewichtsdiagramm, wenn es angewendet wird.
Beachten Sie, dass die Unterstützung aller Positionen und jeder einzelnen Position keine Konflikte mit sich bringt. Ein einfacher Trailing-Stopp + Trailing-Stopp für alle Positionen führt beispielsweise zu den folgenden Ergebnissen.
Nettogewinn, $ | Bruttogewinn | Bruttoverlust | |
---|---|---|---|
PERIOD_M1 | 4 907.90 | 10 425.52 | -5 517.62 |
PERIOD_M15 | 16 524.44 | 32 304.01 | -15 779.57 |
Insgesamt ist ein Trailing-Stop ein nützliches Instrument. Der Händler sollte jedoch bedenken, dass seine Verwendung keine Garantie für einen kostendeckenden Handel darstellt. Es kann eine unzureichend entwickelte Handelsstrategie nicht verbessern.
Schlussfolgerung
Das folgende Programm wurde bei der Erstellung dieses Artikels verwendet.
Name | Typ | Eigenschaften |
---|---|---|
Trailing-Stop | EA |
|
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/14167
![Entwicklung eines MQL5 RL-Agenten mit Integration von RestAPI (Teil 3): Erstellen von automatischen Bewegungen und Testskripten in MQL5](https://c.mql5.com/2/61/RestAPI_Parte_3_-_Criando_jogadas_automuticas_e_Scripts_de_Teste_em_MQL5__LOGO.png)
![DRAW_ARROW Zeichnungstyp in Multi-Symbol-Multi-Perioden-Indikatoren](https://c.mql5.com/2/65/Drawing_type_DRAW_ARROW_in_multi-symbol_multi-period_indicators__LOGO.png)
![Entwicklung eines Replay Systems (Teil 38): Den Weg ebnen (II)](https://c.mql5.com/2/61/Replay_Parte_38_Pavimentando_o_Terreno_LOGO.png)
![Algorithmen zur Optimierung mit Populationen: Binärer genetischer Algorithmus (BGA). Teil II](https://c.mql5.com/2/65/Population_optimization_algorithms__Binary_Genetic_Algorithm_gBGAm___Part_2____LOGO.png)
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.