Exit-Strategien mit mehreren Prozent Gewinn


Erstellungsdatum: 2023-12-01 15:22:29 zuletzt geändert: 2023-12-01 15:22:29
Kopie: 0 Klicks: 639
1
konzentrieren Sie sich auf
1619
Anhänger

Exit-Strategien mit mehreren Prozent Gewinn

Überblick

Diese Strategie ermöglicht es, mehrere Prozentstop-Exits einzurichten. Die Strategie beurteilt zuerst die langen und kurzen Bedingungen, die Eintritts- und Austrittsbedingungen. Dann wird der Prozentsatz über eine benutzerdefinierte PercentAsPoints-Funktion in Preispunkte umgewandelt. Das Programm setzt 4 Exits gemäß den eingestellten 1%-, 2%, 3%- und 4%-Stop-Prozentsätzen und setzt auch einen allgemeinen 2%-Stop-Exit.

Strategieprinzip

Diese Strategie wird hauptsächlich durch die Multifunktionskreuzung der SMA-Gewinnlinie beurteilt. Insbesondere wird der Eintritt durch die langsame SMA-Linie über der Schnelllinie SMA 14 erhöht; der Eintritt durch die langsame SMA 28 wird unter der Schnelllinie SMA 14 eingestellt.

Die Frage ist nun, wie man mehrere Exit-Prozentsätze einrichtet. Hier wird eine benutzerdefinierte PercentAsPoints-Funktion verwendet, um Prozentsätze in Preispunkte umzuwandeln, wobei die Funktionslogik lautet:

percentAsPoints(pcnt) => 
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)

Die Funktion erhält die Anzahl der Preispunkte, wenn die Haltbarkeit nicht gleich 0 ist, indem sie den Prozentsatz mit dem Durchschnittspreis der Haltbarkeit multipliziert und dann durch den kleinsten Preisbewegung dividiert. Wenn die Haltbarkeit 0 ist, wird na zurückgegeben.

Mit dieser Funktion können wir die Prozentpunkte einfach umwandeln. Das Programm setzt dann die Einstellungen von 1%, 2%, 3% und 4% ein und setzt 4 Exits:

lossPnt = percentAsPoints(2)

strategy.exit("x1", qty_percent = 25, profit = percentAsPoints(1), loss = lossPnt)  

strategy.exit("x2", qty_percent = 25, profit = percentAsPoints(2), loss = lossPnt)

strategy.exit("x3", qty_percent = 25, profit = percentAsPoints(3), loss = lossPnt)

strategy.exit("x4", profit = percentAsPoints(4), loss = lossPnt)  

Bei allen Exits wird ein allgemeiner 2%-Stop-Loss verwendet. Dadurch werden mehrere Prozent-Stop-Effekte erzielt.

Analyse der Stärken

Diese Strategie mit mehreren Prozentsätzen hat folgende Vorteile:

  1. Es ist auch möglich, nach Abteilungen zu wechseln, um die Chance auf mehr Geld zu vermeiden. Im Allgemeinen ist es so, dass die größere Rückstandsbreite die größere Gefahr darstellt. Diese Strategie kann das Risiko und den Gewinn ausgleichen.

  2. Die Bündelung von Stop-Loss-Positionen ermöglicht die Rückzahlung des Kapitals und verringert das Risiko. Zum Beispiel kann eine Menge von 25% festgelegt werden, um ein Viertel des Kapitals zurückzufordern, wenn der Gewinn 1% erreicht. Die Positionen danach werden auf Gewinn ausgerichtet.

  3. Ein Stopp von 2% verhindert große Verluste bei extremen Ereignissen.

  4. Der Code ist einfach, klar und verständlich, leicht zu modifizieren und zu optimieren. Die benutzerdefinierte Funktion konvertiert Prozentsätze in Punkte, und einige Zeilen des Codes können mit mehreren Stopps versehen werden.

Risikoanalyse

Es gibt einige Risiken bei dieser Strategie:

  1. Prozentsatzstopps sind anfällig für Querschwankungen, bei denen die Preise in der Nähe des Stop-Off-Preises hin und her schwanken. Dies führt häufig zu Stop-Off-Verlusten und erhöht die Handelsfrequenz und die Belastung durch Gebühren.

  2. Durch die Aufteilung der Block-Stopps erhöht sich die Anzahl der Transaktionen und die Belastung durch die Gebühren. Wenn die Gebühren zu hoch sind, werden die Profite ausgeglichen.

  3. Eine falsche Einstellung des Stopp-Punktes beeinflusst auch die Rendite. Wenn die Einstellung zu konservativ ist, ist es schwierig, eine zufriedenstellende Rendite zu erzielen, und wenn die Einstellung zu radikal ist, ist das Risiko zu groß.

  4. Der Stop-Wert wird in Prozent festgesetzt, ohne Rücksicht auf die Marktvolatilität und Trends. Bei einem Erschütterungsfall sollte der Stop-Wert reduziert und bei einem Trendfall sollte der Stop-Wert erhöht werden.

Optimierungsrichtung

In Anbetracht der oben genannten Risiken können Optimierungen in folgenden Bereichen weiter vorangetrieben werden:

  1. Optimierung der Stop-Strategie, so dass sie sich automatisch an Marktfluktuationen und Trends anpasst. Zum Beispiel die Aufnahme einer ATR-Stop-Strategie, die Stop-Strategie bei Erschütterungen zu verschärfen und die Stop-Strategie bei Trends zu lockern.

  2. Optimieren Sie den Anteil und die Größe der Losstopps, um die optimale Kombination von Risiken und Erträgen zu erzielen. Fügen Sie die Optimierung der Parameter hinzu, um die optimale Parameter zu finden.

  3. Verringern Sie die Anzahl der Stopps und vermeiden Sie zu häufige Transaktionen. Zum Beispiel setzen Sie eine Preispufferzone ein, in der die Stopps nur nach Überschreitung einer bestimmten Bandbreite erfolgen.

  4. Berücksichtigen Sie die Gebührenfaktoren und vermeiden Sie die Gebühren, wenn Sie erwarten, dass die Stop-Loss-Gewinnspanne niedriger als die Gebühren ist.

  5. Verwenden Sie die Register-Stop-Punkte. Vermeiden Sie die Bewegung der Stop-Preise, die nach der Priorität der Tiefe der Tiefe der Tiefe der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität der Priorität.

Zusammenfassen

Diese Strategie ermöglicht mehrere Prozentsatzstop-Effekte, indem sie vier Stop-Exits von 1%, 2%, 3% und 4% hat, die je nach Dienstzeit gestoppt werden können, während mit 2% Stop-Losses große Verluste durch außergewöhnliche Verhaltensweisen vermieden werden. Diese Strategie kann die Gewinne ausgeglichen werden, um zu verhindern, dass eine größere Gewinnchance verpasst wird. Es besteht jedoch auch ein gewisses Risiko, wie z. B. eine leichte Bildung von Quer-Schwankungen, erhöhte Handelsfrequenz usw.

Strategiequellcode
/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © adolgov

//@version=4
strategy("Multiple %% profit exits example", overlay=false, default_qty_value = 10)

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

percentAsPoints(pcnt) =>
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)

lossPnt = percentAsPoints(2)

strategy.exit("x1", qty_percent = 25, profit = percentAsPoints(1), loss = lossPnt)
strategy.exit("x2", qty_percent = 25, profit = percentAsPoints(2), loss = lossPnt)
strategy.exit("x3", qty_percent = 25, profit = percentAsPoints(3), loss = lossPnt)
strategy.exit("x4", profit = percentAsPoints(4), loss = lossPnt)

profitPercent(price) =>
    posSign = strategy.position_size > 0 ? 1 : strategy.position_size < 0 ? -1 : 0
    (price - strategy.position_avg_price) / strategy.position_avg_price * posSign * 100

p1 = plot(profitPercent(high), style=plot.style_linebr, title = "open profit % upper bound")
p2 = plot(profitPercent(low), style=plot.style_linebr, title = "open profit % lower bound")
fill(p1, p2, color = color.red)