Trend nach der Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-06 10:34:19
Tags:

img

Übersicht

Die Trendfolging-Strategie ist eine Trendhandelsstrategie, die auf dem Crossover von gleitenden Durchschnitten basiert. Sie verwendet das Crossover eines exponentiellen gleitenden Durchschnitts (EMA) und eines Hull-gleitenden Durchschnitts (HMA), um die Trendrichtung zu bestimmen und entsprechend Handelssignale zu generieren. Die Strategie zielt darauf ab, dem langfristigen Preistrend statt kurzfristigen Schwankungen zu folgen.

Strategie Logik

Die Strategie verwendet zwei gleitende Durchschnitte mit unterschiedlichen Parametern: eine schnellere EMA und eine langsamere HMA. Die EMA reagiert schneller auf Preisänderungen und wird verwendet, um kurzfristige Trends zu beurteilen, während die HMA langsamer reagiert und die langfristige Trendrichtung verfolgt.

Wenn die schnellere EMA über die langsamere HMA überschreitet, wird dies als Beginn eines Aufwärtstrends angesehen, und die Strategie wird eine Long-Order zum Marktpreis auf der nächsten Bar öffnen.

Um den Eintrittszeitpunkt zu optimieren, beinhaltet die Strategie eine Heikin-Ashi-Option. Wenn aktiviert, basieren die Kauf- und Verkaufssignale auf Heikin-Ashi-Bars anstelle von normalen Kerzen. Heikin-Ashi-Bars können kurzfristige Kursschwankungen auf den ursprünglichen Kerzen filtern und falsche Signale reduzieren.

Die Strategie verwendet auch eine Stop-Loss-Einstellung. Wenn der Positionsverlust den vorgegebenen Stop-Loss-Prozentsatz erreicht, wird die Position zum Marktpreis geschlossen und der maximale Verlust pro Handel begrenzt.

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Die Verwendung von EMA- und HMA-Crossover zur Bestimmung von Trends kann die Vorteile verschiedener gleitender Durchschnittswerte für verschiedene Zeiträume nutzen und die Genauigkeit verbessern.

  2. Der auf Trends basierende Handel verhindert, dass man sich mit kleinen Schwankungen beschäftigt und unnötige Trades reduziert.

  3. Die Heikin-Ashi-Option optimiert den Einstiegszeitplan, indem sie falsche Signale herausfiltert.

  4. Der bewegliche Stop-Loss begrenzt effektiv den maximalen Verlust pro Handel.

  5. Anpassbare Parameter ermöglichen die Optimierung für verschiedene Produkte und Zeitrahmen.

Risikoanalyse

Zu den Risiken dieser Strategie gehören:

  1. Da es sich um ein Trendfolgesystem handelt, ist es bei den Märkten mit Bandbreiten unterdurchschnittlich.

  2. Es kann große Verluste entstehen, wenn eine Trendwende eintritt.

  3. Eine unsachgemäße Einstellung des Stop-Loss kann zu unnötigen Stopps führen oder Verluste vergrößern.

  4. Eine schlechte Einstellung der Parameter kann zu Überschreitung oder Untätigkeit führen.

  5. EMA- und HMA-Perioden müssen für verschiedene Produkte und Zeitrahmen optimiert werden.

  6. Heikin-Ashi kann das Risiko falscher Ausbrüche nicht vollständig vermeiden.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten verbessert werden:

  1. Verwenden Sie mehr Indikatoren wie MACD, KDJ, um die Trendgenauigkeit zu verbessern.

  2. Fügen Sie mehr Filter wie Lautstärke, ATR hinzu, um falsche Bremsen zu reduzieren.

  3. Optimierung der Parameter von gleitenden Durchschnitten auf Basis von Produkten und Zeitrahmen.

  4. Der Stop-Loss-Prozentsatz wird für ein besseres Stop-Loss-Verhalten abgestimmt.

  5. Betrachten Sie Profit-taking-Funktionen wie das Bewegen von Profit-Stop und das Teil-Profit-taking.

  6. Alternative Methoden zur Berechnung der Positionskostenbasis für die Optimierung prüfen.

Zusammenfassung

Die Trend-Following-Strategie identifiziert Trends mithilfe von gleitenden Durchschnitts-Crossovers und optimiert die Performance über Heikin-Ashi und bewegliche Stop-Loss. Sie eignet sich für den mittelfristigen bis langfristigen Trendhandel und kann durch Parameter-Tuning und Feature-Erweiterung weiter verbessert werden. Aber Benutzer sollten sich der Risiken von Umkehrungen und unsachgemäßem Stop-Loss bewusst sein. Insgesamt bietet sie einen universellen und anpassbaren Rahmen für den Trendhandel, der über verschiedene Produkte und Zeitrahmen hinweg funktioniert. Beim Einsatz ist ein angemessener Parameter-Test erforderlich.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("𝐉𝐔𝐈𝐂𝐘 𝐓𝐑𝐄𝐍𝐃", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

//Heikin Ashi Option
ha = input(true, title = "Heikin Ashi Source")
src = ha ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, barmerge.gaps_off, barmerge.lookahead_off) : close
usestoploss = input(true, title="Stop Loss")

//EMA
len1 = input.int(9, minval=1, title="EMA Length")
ema = ta.ema(src, len1)
emaline = plot(ema, title="EMA", color=color.blue, linewidth=2)

//HMA
len2 = input.int(69, minval=1, title="HMA Length")
hma = ta.wma(2*ta.wma(src, len2/2)-ta.wma(src, len2), math.floor(math.sqrt(len2)))
hmaline = plot(hma, title="HMA", color=color.purple, linewidth=2)
fillcolor = hma < ema ? color.blue : color.purple
fill(emaline, hmaline, title="EMA Fill", color=color.new(fillcolor, 80), editable=true)

//Stop Loss Conditions
stoplosspercent = input.float(title="Stop Loss (%)", defval=-6.5, minval=-50, maxval=0, step=.1) / 100
stoploss = strategy.position_avg_price * (1 + stoplosspercent)
stop = stoploss > close and stoploss[1] < close[1] and strategy.position_size > 0 and usestoploss

//Buy Sell Conditions
buy = hma < ema
sell = hma > ema

//Trades and Alerts
if buy
	strategy.entry("Long Position", strategy.long, comment="BUY")
//	alert("{\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)
if sell and strategy.openprofit > 0
	strategy.close("Long Position", comment="SELL")
//	alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)
if stop
    strategy.close("Long Position", comment="STOP")
//    alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)

//Alternate Labels
var pos = 0
if buy and pos <= 0
    pos := 1
if sell and pos >= 0
    pos := -1
buylabel  = pos ==  1 and (pos !=  1)[1]
selllabel = pos == -1 and (pos != -1)[1]

//Plot Labels
plotshape(buylabel,  style=shape.labelup,   location=location.belowbar, color=color.blue,   text="BUY",  textcolor=color.white, size=size.tiny)
plotshape(selllabel, style=shape.labeldown, location=location.abovebar, color=color.purple, text="SELL", textcolor=color.white, size=size.tiny)
plotshape(stop,      style=shape.labeldown, location=location.abovebar, color=color.yellow, text="STOP", textcolor=color.white, size=size.tiny)


Mehr