Trendfolgende Stop-Reversal-Strategie


Erstellungsdatum: 2024-02-01 14:54:09 zuletzt geändert: 2024-02-01 14:54:09
Kopie: 0 Klicks: 829
1
konzentrieren Sie sich auf
1617
Anhänger

Trendfolgende Stop-Reversal-Strategie

Überblick

Eine Trend-Tracking-Stopp-Loss-Reversal-Strategie ist eine Strategie, die den Parabolic SAR-Indikator verwendet, um Trends zu identifizieren und bei einer Trendwende in eine umgekehrte Position einzutreten. Die Strategie kombiniert Stop-Loss- und Stop-Stop-Mechanismen zur Risikokontrolle.

Strategieprinzip

Die Strategie verwendet den Parabolic SAR-Indikator, um den aktuellen Markttrend zu beurteilen. Der Parabolic SAR-Vollname ist Parabolic Stop and Reverse, was bedeutet, dass die Parallax-Stopp- und Reverse-Linie umgekehrt ist.

Wenn der SAR-Punkt unter dem Preis fällt, ist dies ein bullish Trend; wenn der SAR-Punkt steigt und über dem Preis liegt, ist dies ein bearish Trend. Die Strategie besteht darin, die aktuelle Trendrichtung anhand der Position des SAR-Punktes zu bestimmen.

Konkret wird die Strategie ausgebucht, wenn der SAR-Punkt im Aufwärtstrend und über dem Preis ist; die Strategie wird mehr als ein Position ausgebucht, wenn der SAR-Punkt im Abwärtstrend und unter dem Preis ist. Das heißt, ein Umkehrposition wird eingegeben, wenn der SAR-Punkt eine Trendwende zeigt.

Darüber hinaus bietet die Strategie auch eine Stop-Loss- und Stop-Stop-Mechanismen. Bei Überschreitung ist es möglich, einen Stop-Loss-Preis zu setzen, um Verluste zu begrenzen. Es ist auch möglich, einen Stop-Stop-Preis zu setzen, um nach Erreichen eines bestimmten Zielgewinns eine Position zu platzieren.

Analyse der Stärken

Die Strategie kombiniert Trendindikatoren mit Stop-Loss-Mechanismen und bietet folgende Hauptvorteile:

  1. Es ist wichtig, dass die Trends und die Chancen für eine Trendwende erkannt werden und umgekehrte Operationen durchgeführt werden.
  2. Mit Stop-Loss- und Stop-Stopp-Systemen können Sie Risiken und Gewinne aktiv steuern.
  3. Der Parabolic SAR ist ein ziemlich verbreiteter Trendwende-Indikator, der besser funktioniert.
  4. Die Regeln der Strategie sind einfach, klar und leicht zu verstehen und umzusetzen.

Risikoanalyse

Die Strategie birgt auch einige Risiken, die beachtet werden müssen:

  1. Die Parabolic SAR-Anzeige ist nicht perfekt und gibt manchmal falsche Signale ab.
  2. Die Einstellung eines Stop-Loss- oder Stop-Off-Preises muss vernünftig sein, sonst kann es zu früh zu einem Stop-Loss oder Stop-Off kommen.
  3. Die Transaktionsgebühren beeinflussen auch den endgültigen Gewinn.
  4. Nach der Umkehrung könnte die neue Trendverlängerung relativ kurzfristig sein.

Diese Risiken können durch die Optimierung der Parameter oder durch die Filterung anderer Indikatoren behoben werden.

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Optimieren Sie die Parameter für Parabolic SAR und suchen Sie nach der optimalen Parameterkombination.
  2. Versuchen Sie mit verschiedenen Stop-Loss-Strategien, wie z. B. Trailing Stop.
  3. Hinzufügen von Indikatoren oder Konditionen, um Rückschlagsignale zu filtern.
  4. Positionskontrolle, die nach Marktbedingungen erweitert oder verkleinert werden kann.
  5. Anpassungsparameter für verschiedene Handelsarten.

Zusammenfassen

Die Trend-Tracking-Stopp-Loss-Reversal-Strategie ist eine eher klassische Handelsstrategie. Sie dient der Erkennung von Trendreversalen und der Risikokontrolle durch Stop-Loss- und Stop-Stopp-Methoden. Durch die Optimierung kann sie zu einer lohnenden Strategie werden.

Strategiequellcode
/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Parabolic SAR Strategy", overlay=true)
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
	firstTrendBar = false
	SAR := nextBarSAR
	if bar_index == 1
		float prevSAR = na
		float prevEP = na
		lowPrev = low[1]
		highPrev = high[1]
		closeCur = close
		closePrev = close[1]
		if closeCur > closePrev
			uptrend := true
			EP := high
			prevSAR := lowPrev
			prevEP := high
		else
			uptrend := false
			EP := low
			prevSAR := highPrev
			prevEP := low
		firstTrendBar := true
		SAR := prevSAR + start * (prevEP - prevSAR)
	if uptrend
		if SAR > low
			firstTrendBar := true
			uptrend := false
			SAR := max(EP, high)
			EP := low
			AF := start
	else
		if SAR < high
			firstTrendBar := true
			uptrend := true
			SAR := min(EP, low)
			EP := high
			AF := start
	if not firstTrendBar
		if uptrend
			if high > EP
				EP := high
				AF := min(AF + increment, maximum)
		else
			if low < EP
				EP := low
				AF := min(AF + increment, maximum)
	if uptrend
		SAR := min(SAR, low[1])
		if bar_index > 1
			SAR := min(SAR, low[2])
	else
		SAR := max(SAR, high[1])
		if bar_index > 1
			SAR := max(SAR, high[2])
	nextBarSAR := SAR + AF * (EP - SAR)
	if barstate.isconfirmed
		if uptrend
			strategy.entry("ParSE", strategy.short, stop=nextBarSAR, comment="ParSE")
			strategy.cancel("ParLE")
		else
			strategy.entry("ParLE", strategy.long, stop=nextBarSAR, comment="ParLE")
			strategy.cancel("ParSE")
plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua)
//Stop Loss Inputs
use_short_stop_loss = input(false, title="Short Stop Loss", group="Stop Loss and Take Profit", inline="Short_SL")
short_stop_loss = input(title="(%)", type=input.float, minval=0.0, step=0.1, 
     defval=5, group="Stop Loss and Take Profit", inline="Short_SL") * 0.01
use_long_stop_loss = input(false, title="Long Stop Loss", group="Stop Loss and Take Profit", inline="Long_SL")
long_stop_loss = input(title="(%)", type=input.float, minval=0.0, step=0.1, 
     defval=5, group="Stop Loss and Take Profit", inline="Long_SL") * 0.01

//Take Profit Inputs     
use_short_take_profit = input(false, title="Short Take Profit", group="Stop Loss and Take Profit", inline="Short_TP")
short_take_profit = input(title="(%)", type=input.float, minval=0.0, step=0.1,
     defval = 20, group="Stop Loss and Take Profit", inline="Short_TP") * .01
use_long_take_profit = input(false, title="Long Take Profit", group="Stop Loss and Take Profit", inline="Long_TP")
long_take_profit = input(title="(%)", type=input.float, minval=0.0, step=0.1,
     defval = 20, group="Stop Loss and Take Profit", inline="Long_TP") * .01


longStopPrice  = strategy.position_avg_price * (1 - long_stop_loss)
shortStopPrice = strategy.position_avg_price * (1 + short_stop_loss)
longLimitPrice = strategy.position_avg_price * (1 + long_take_profit)
shortLimitPrice = strategy.position_avg_price * (1 - short_take_profit)


if (strategy.position_size > 0.0)
    if (use_long_stop_loss and not use_long_take_profit)
        strategy.exit("Long", stop = longStopPrice)
    if (use_long_take_profit and not use_long_stop_loss)
        strategy.exit("Long", limit = longLimitPrice)
    if (use_long_take_profit and use_long_stop_loss)
        strategy.exit("Long", stop = longStopPrice, limit=longLimitPrice)
if (strategy.position_size < 0.0)
    if (use_short_stop_loss and not use_short_take_profit)
        strategy.exit("Short", stop = shortStopPrice)
    if (use_short_take_profit and not use_short_stop_loss)
        strategy.exit("Short", limit = shortLimitPrice)
    if (use_short_take_profit and use_short_stop_loss)
        strategy.exit("Short", stop = shortStopPrice, limit = shortLimitPrice)

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)