Die EintSimple Pullback-Strategie ist eine durchschnittliche Umkehrstrategie, die auf einem doppelten gleitenden Durchschnitts-Crossover basiert. Sie verwendet zunächst eine langfristige und eine kurzfristige gleitende Durchschnittslinie. Wenn die kurzfristige gleitende Durchschnittslinie von unten durch die langfristige gleitende Durchschnittslinie bricht, wird ein Kaufsignal generiert. Um falsche Ausbrüche zu filtern, erfordert diese Strategie auch, dass der Schlusskurs höher ist als die langfristige gleitende Durchschnittslinie.
Wenn der Kurs nach dem Markteintritt wieder unter die kurzfristige gleitende Durchschnittslinie fällt, löst er ein Exit-Signal aus.
Die Strategie stützt sich hauptsächlich auf das Goldene Kreuz der doppelten gleitenden Durchschnitte, um den Eintrittszeitpunkt zu bestimmen.
Nach Erfüllung der vorstehenden Voraussetzungen wird diese Strategie eine vollständige Long-Position einnehmen.
Das Ausstiegssignal-Urteil basiert auf zwei Bedingungen. Die eine ist, dass der Preis wieder unter den kurzfristigen gleitenden Durchschnitt fällt. Die andere ist, dass der Rückschritt vom höchsten Punkt an den festgelegten Stop-Loss-Prozentsatz erreicht. Die spezifischen Ausstiegsbedingungen sind wie folgt:
Wenn eine der Ausgangskonditionen erfüllt ist, wird diese Strategie alle Long-Positionen schließen.
Die Verwendung eines doppelten gleitenden Durchschnitts-Crossovers in Kombination mit soliden Schlusskursbewertungen kann falsche Ausbrüche effektiv filtern.
Ein Pullback-Eintrag kann eingegangen werden, nachdem der Preis kurzfristige Wendepunkte gebildet hat.
Mit Stop-Loss-Einstellung kann der maximale Drawdown begrenzt werden.
Bei der Ermittlung der Risikopositionen ist es notwendig, die Risikopositionen zu ermitteln.
Bei falschen Parameter-Einstellungen von gleitenden Durchschnitten können zu glatte oder zu empfindliche Kurven entstehen.
Zu locker eingestellte Stop-Loss-Einstellungen führen zu größeren Verlusten.
Versuche verschiedene Längenkombinationen von langfristigen und kurzfristigen gleitenden Durchschnitten, um die optimalen Parameter zu finden.
Vergleichen Sie die Auswirkungen der Verwendung des Schlusskurses und des typischen Preises zur Bestimmung von gleitenden Durchschnittsquerschnitten.
Testen Sie Filter wie Volumen- oder Volatilitätsindikatoren.
Backtest optimieren Sie den Stop-Loss-Prozentsatz, um die beste Einstellung zu finden.
Die EintSimple Pullback-Strategie ist eine einfache und praktische doppelte gleitende Durchschnitts-Pullback-Strategie. Sie nutzt effektiv die Richtungsfunktion von gleitenden Durchschnitten und kombiniert dabei solide Schlusskurse, um falsche Signale auszufiltern. Obwohl diese Strategie anfällig für häufigen Handel und das Verfolgen von Spitzen und Töten von Tiefen ist, kann sie durch Parameteroptimierung und Hinzufügen von Filtern weiter verbessert werden. Insgesamt ist dies eine großartige Strategie für quantitative Handelsanfänger, um zu üben und zu optimieren.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ZenAndTheArtOfTrading / www.PineScriptMastery.com // @version=5 strategy("Simple Pullback Strategy", overlay=true, initial_capital=50000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)// 100% of balance invested on each trade // Get user input i_ma1 = input.int(title="MA 1 Length", defval=75, step=1, group="Strategy Parameters", tooltip="Long-term EMA") i_ma2 = input.int(title="MA 2 Length", defval=9, step=1, group="Strategy Parameters", tooltip="Short-term EMA") i_stopPercent = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline") i_lowerClose = input.bool(title="Exit On Lower Close", defval=true, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2") i_startTime = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups") i_endTime = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups") // Get indicator values ma1 = ta.ema(close, i_ma1) ma2 = ta.ema(close, i_ma2) // Check filter(s) f_dateFilter = true // Check buy/sell conditions var float buyPrice = 0 buyCondition = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter sellCondition = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1]) stopDistance = strategy.position_size > 0 ? ((buyPrice - close) / close) : na stopPrice = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na stopCondition = strategy.position_size > 0 and stopDistance > i_stopPercent // Enter positions if buyCondition strategy.entry(id="Long", direction=strategy.long) if buyCondition[1] buyPrice := open // Exit positions if sellCondition or stopCondition strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : "")) buyPrice := na // Draw pretty colors plot(buyPrice, color=color.lime, style=plot.style_linebr) plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1) plot(ma1, color=color.blue) plot(ma2, color=color.fuchsia)