Der Trend nach einer langen Strategie

Schriftsteller:ChaoZhang, Datum: 2023-10-17 15:55:41
Tags:

img

Übersicht

Die Trend Following Long Only Strategy ist eine Strategie, die Preistrends mithilfe dynamischer gleitender Durchschnitte verfolgt. Sie bestimmt den aktuellen Trend, indem sie die gleitenden Durchschnitte der höchsten und niedrigsten Preise über einen Zeitraum berechnet und mit ATR für dynamischen Stop-Loss und Take-Profit kombiniert.

Strategie Logik

Die Strategie berechnet zunächst die gleitenden Durchschnitte der höchsten und niedrigsten Preise über einen Zeitraum (Standard 200 Tage) und nimmt ihren Mittelpunkt als Basislinie. Dann misst sie die Abweichung des Preises von der Basislinie. Wenn der Preis um 1 ATR (0,5 mal 10-Tage-ATR standardmäßig) über der Basislinie liegt, gilt er als Aufwärtstrend. Wenn der Preis um 1 ATR unter der Basislinie liegt, gilt er als Abwärtstrend. Long- oder Short-Positionen werden basierend auf dem Trendzustand eingegeben.

Wenn der Preis auf die Basislinie zurückkehrt, werden Exit-Signale ausgelöst. Außerdem ermöglicht der dynamische ATR Stop-Loss und Take-Profit, um den Haupttrend zu verfolgen und zu vermeiden, dass bei kleineren Schwankungen übertrieben gehandelt wird.

Vorteile

  1. Dynamische Durchschnitte ermöglichen eine reibungslose Kursentwicklung, um die langfristige Trendrichtung zu ermitteln
  2. ATR-basierte Stopps folgen dem großen Trend dynamisch und vermeiden eine übermäßige Empfindlichkeit
  3. Die rechtzeitige Aufnahme von Trendumkehrungen verringert unzeitgemäße Kapitalverschwendung
  4. Einfache Logik, einfach umzusetzen

Risiken und Minderung

  1. Kann falsche Signale in verschiedenen Märkten erzeugen
  2. Eine falsche Einstellung der Parameter kann Trendumkehrungen verpassen.
  3. Es sollte die Abweichung zwischen Marktbestand und einzelnen Bestand berücksichtigt werden.

Die Risiken können reduziert werden, indem die ATR-Parameter angepasst, Filter für Hochwahrscheinlichkeits-Setups hinzugefügt und Marktbedingungen und Risikobereitschaft ausgewertet werden.

Verbesserungsvorschläge

  1. Hinzufügen einer sekundären Bestätigung nach ersten Eingangssignalen mit Indikatoren wie KDJ
  2. Optimierung von Parametern auf Basis von Volatilität, Grundlagen einzelner Aktien
  3. Feinabstimmungs-ATR-Multiplikator auf Basis von Backtests zur Ausgewogenheit von Gewinnfaktor und Umsatzrate
  4. Einführung einer dynamischen Volatilitätsanpassung bei Stop Loss und Take Profit
  5. Verwenden Sie maschinelle Lerntechniken für die automatisierte Optimierung von Parametern

Zusammenfassung

Die Trend Following Long Only Strategy ist ein leicht zu bedienendes Trend-Trading-System. Es identifiziert die Trendrichtung mit Hilfe dynamischer Durchschnitte und legt Risikokontrollen mit ATR-basierten Stops fest. Es kann effektiv profitable Schwankungen in Trending-Märkten erfassen.


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

//@version=4
strategy("Trend Following Long Only Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

lookback_length = input(200, type=input.integer, minval=1, title="Lookback Length")
smoother_length = input(5, type=input.integer, minval=1, title="Smoother Length")
atr_length = input(10, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(0.5, type=input.float, minval=0.5, title="ATR Multiplier")

vola = atr(atr_length) * atr_multiplier
price = sma(close, 3)

l = ema(lowest(low, lookback_length), smoother_length)
h = ema(highest(high, lookback_length), smoother_length)
center = (h + l) * 0.5
upper = center + vola
lower = center - vola
trend = ema(price > upper ? 1 : (price < lower ? -1 : 0), 3)
c = trend < 0 ? upper : lower

pcenter = plot(center, transp=100)
pclose = plot(close, transp=100)
pc = plot(c, transp=100)

buy_signal = crossover(trend, 0.0) 
sell_signal = crossunder(trend, 0.0)

strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.close("Buy", when=sell_signal)

bgcolor(trend >= 0 ? color.green : color.red, transp=95)
fill(pc, pclose, color=trend >= 0 ? color.green : color.red)

Mehr