Die Pullback-Strategie des gleitenden Durchschnitts verfolgt die Überschneidungen von gleitenden Durchschnittspreisen und identifiziert Pullback-Möglichkeiten, um gegentrendige Trades zu tätigen, wenn goldene Kreuzungen auftreten.
Der Kern dieser Strategie besteht aus zwei gleitenden Durchschnitten - der 14-Tage-EMA und der 56-Tage-SMA. Sie löst ein Kaufsignal aus, wenn die 14-Tage-EMA von unten über die 56-Tage-SMA überschreitet. Danach blickt die Strategie 20 Tage zurück, um als Unterstützung ein Schwingen-Tief zu finden. In Kombination mit dem Schlusskurs am Crossover-Punkt werden Fibonacci-Pullback-Linien gezeichnet, mit 1.272 Pullback-Linie als Eintritt und 0.618 als Ausgang.
Die wichtigsten Schritte dieser Strategie sind:
Das oben erwähnte erklärt den wesentlichen Arbeitsablauf und die Logik hinter dieser Pullback-Strategie.
Die wichtigsten Vorteile dieser Pullback-Strategie für gleitende Durchschnitte sind:
Die Strategie ist auch einfach und unkompliziert umzusetzen.
Trotz der Vorteile gibt es für diese Strategie auch gewisse Risiken:
Um die Risiken zu verringern, können wir einen kurzen Stop-Loss-Zeitrahmen festlegen, um Verluste zu kontrollieren, und die Rückzugslinie optimieren, um vernünftige Gewinnziele zu erreichen.
Es gibt noch viel Raum für die Optimierung dieser Pullback-Strategie des gleitenden Durchschnitts:
Versuche verschiedene Parameter-Einstellungen für Elemente wie gleitende Durchschnittszeiten, Lookback-Tage, Fibonacci-Multiplikatoren usw., um ein optimales Ergebnis zu finden;
Hinzufügen von Stop-Loss-Mechanismen wie mehrfachen Stops oder Trailing-Stops zur besseren Kontrolle von Risiken;
Einführung anderer Indikatoren als FILTER, um ungeeignete Marktbedingungen zu vermeiden;
Optimierung der Positionsgröße und der Risikomanagementregeln.
Durch strenge Tests und Optimierungen können erhebliche Verbesserungen dieser Handelsstrategie erzielt werden.
Die Pullback-Strategie ist eine sehr praktische kurzfristige Handelsstrategie. Sie erfasst Chancen, die den Durchschnitt umkehren, wenn sich die Preise kurzfristig zurückziehen. Die Strategieidee ist einfach und leicht zu verstehen. Es gibt immer noch Risiken, die durch Optimierung und Risikokontrolle angegangen werden müssen. Insgesamt ist dies eine vielversprechende quantitative Strategie, die weiterer Forschung und Anwendung würdig ist.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("MAC Pullback", overlay=true) // Setting up timeperiod for testing startPeriodYear = input(2014, "Backtest Start Year") startPeriodMonth = input(1, "Backtest Start Month") startPeriodDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0) stopPeriodYear = input(2035, "Backtest Stop Year") stopPeriodMonth = input(12, "Backtest Stop Month") stopPeriodDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0) // Moving Averages ema14 = ema(close, 14) ema28 = ema(close, 28) sma56 = sma(close, 56) // Plot plot(ema14, title="ema14", linewidth=2, color=green) plot(ema28, title="ema28", linewidth=2, color=red) plot(sma56, title="sma56", linewidth=3, color=blue) // Strategy goLong = cross(ema14, sma56) and ema14 > ema28 goShort = cross(ema14, sma56) and ema14 < ema28 // Locate Swing Lows leftBars = input(20) rightBars=input(20) swinglow = pivotlow(close, leftBars, rightBars) plot(swinglow, style=cross, linewidth=8, color=#00FF00, offset=-rightBars) if goLong == true and time >= testPeriodStart and time <= testPeriodStop // We try to make sure that we're catching the first Pullback after the crossover if ema14[12] < sma56[12] pivotpoint = lowest(40)[0] //lowest value of the month as our swing low // We calculate a Fib 1.272 extension (from the previous swing low to // the crossover long entry's open) and use this as our entry target to short the Pullback extensiontarget = ((close[1] - pivotpoint) * 1.27) + pivotpoint shorttarget = ((close[1] - pivotpoint) * 0.618) + pivotpoint strategy.order("Pullback", strategy.short, 5.0, limit=extensiontarget) // I would like to use a trailing stop but for know we just hope to get // filled if the pullback reaches all the way down to the 0.618. // We also place a tight stop loss since we trying to short an uptrend strategy.exit("Pullback Exit", "Pullback", limit=shorttarget, loss=400)