Diese Strategie ist ein Trend, der der gleitenden Durchschnittshandelsstrategie folgt. Sie verwendet gleitende Durchschnitte der höchsten und niedrigsten Preise mit verschiedenen Parameter-Einstellungen, um Markttrends zu bestimmen und Handelssignale an Wendepunkten zu generieren.
Die Strategie verwendet einfache gleitende Durchschnitte der höchsten und niedrigsten Preise mit verschiedenen Parametern, um Markttrends zu definieren.
Das h1- und l1-System verfolgt den Trend von oben. h1 ist der einfache gleitende Durchschnitt der höchsten Preise, der als oberer Trendband fungiert; l1 wird durch h1 abzüglich des ATR-Wertes konstruiert, der als unterer Band dient. Ein langes Signal wird erzeugt, wenn der Preis über h1 bricht, und ein schließendes Signal wird erzeugt, wenn der Preis unter l1 fällt.
Das h2- und l2-System verfolgt den Trend von nach unten. h2 ist der einfache gleitende Durchschnitt der niedrigsten Preise, der als untere Band fungiert; l2 wird durch h2 plus den ATR-Wert konstruiert, der als obere Band dient. Ein kurzes Signal wird erzeugt, wenn der Preis unter h2 bricht, und ein schließendes Signal wird erzeugt, wenn der Preis über l2 steigt.
Die Dual-Band-Systeme können Trendwendepunkte genauer identifizieren und einige laute Trades herausfiltern.
Zu den Hauptvorteilen dieser Strategie gehören:
Diese Strategie birgt auch einige Risiken:
Lösungen:
Die Strategie kann aus folgenden Gesichtspunkten optimiert werden:
Der Grundgedanke besteht darin, Trendwendepunkte zu identifizieren und durch Dual-Band-Filterung und dynamische ATR-Stopps pro Trade-Verlust zu kontrollieren.
/*backtest start: 2023-12-05 00:00:00 end: 2024-01-04 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("I Like Winners And Love Loosers!", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) highest_length = input(200, type=input.integer, minval=1, title="Highest Length") highest_average = input(10, type=input.integer, minval=1, title="Highest Average Length") lowest_length = input(200, type=input.integer, minval=1, title="Lowest Length") lowest_average = input(10, type=input.integer, minval=1, title="Lowest Average Length") atr_length = input(14, type=input.integer, minval=1, title="ATR Length") atr_multiplier = input(2, type=input.integer, minval=1, title="ATR Multiplier") a = atr(atr_length) * atr_multiplier h1 = sma(highest(high, highest_length), highest_average) l1 = h1 - a h2 = sma(lowest(low, lowest_length), lowest_average) l2 = h2 + a buy1_signal = crossover(close, h1) sell1_signal = crossunder(close, l1) strategy.entry("Buy", strategy.long, when=buy1_signal) strategy.close("Buy", when=sell1_signal) buy2_signal = crossunder(close, h2) sell2_signal = crossover(close, l2) strategy.entry("Sell", strategy.short, when=buy2_signal) strategy.close("Sell", when=sell2_signal) y1 = plot(h1, title="H1", color=color.green, transp=50, linewidth=2) y2 = plot(l1, title="L1", color=color.red, transp=50, linewidth=2) y3 = plot(h2, title="H2", color=color.green, transp=50, linewidth=2) y4 = plot(l2, title="L2", color=color.red, transp=50, linewidth=2) fill(y1,y2,color=color.green) fill(y3,y4,color=color.red)