Diese Strategie nutzt den Parabolischen SAR (Stop and Reverse) Indikator in Kombination mit EMA-Filterung, um die Signalgenauigkeit zu verbessern.
Ein langes Signal wird ausgelöst, wenn der SAR unter dem Preis und der Preis über der langsamen EMA plus Offset liegt. Ein kurzes Signal wird ausgelöst, wenn der SAR über dem Preis und der Preis unter der langsamen EMA minus Offset liegt. Der Crossover zwischen der schnellen EMA und der langsamen EMA bietet zusätzliches Filtern. Dies vermeidet falsche Signale, wenn der SAR allein verwendet wird.
Insbesondere sind die langen Eintrittsbedingungen:
Kurzfristige Einstiegsbedingungen sind:
Durch die Kombination von SAR- und EMA-Filterung kann diese Strategie die Trendrichtung gut erkennen und falsche Signale reduzieren.
Die Vorteile sind:
Diese Strategie birgt einige Risiken:
Diese Strategie kann aus folgenden Gesichtspunkten optimiert werden:
Diese Strategie kombiniert die Stärken von SAR und EMA, um ein flexibles Trendfolgensystem zu entwerfen. Insgesamt verfügt sie über eine gute Trenddetektionsfähigkeit und funktioniert gut bei der Verfolgung von Trends. Weitere Verbesserungen bei Parameteroptimierung und Risikomanagement können die Stabilität und Rentabilität verbessern. Sie eignet sich für Anleger mit gutem Risikomanagementbewusstsein und Optimierungsfähigkeiten.
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("SAR Trend Trader Strategy By: jhanson107", shorttitle="SAR Trend Trader Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) SlowEMALength = input(100, "Slow EMA Length") FastEMALength = input(10, "Fast EMA Length") emaoffset = input(1.00, "EMA Offset %") start = input(0.01) increment = input(0.005) maximum = input(0.08) //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2019, title = "From Year", minval = 1970) // To Date Inputs toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2020, title = "To Year", minval = 1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true //////////////////////////////////////////////////////////////////////////////// psar = sar(start, increment, maximum) ema = ema(close, SlowEMALength) fastema = ema(close, FastEMALength) offset = (emaoffset / 100) * ema // Signals long = high[1] < psar[2] and high >= psar[1] and close > ema + offset or crossunder(ema, fastema) and close > psar and close > ema + offset short = low[1] > psar[2] and low <= psar[1] and close < ema - offset or crossover(ema, fastema) and close < psar and close < ema - offset // Plot PSAR plot(psar, title="PSAR", color = low < psar and not long ? green : red, trackprice=true) //Barcolor barcolor(close > psar and close > ema + offset and fastema > ema ? green : na) barcolor(close > psar and close < ema + offset or close > psar and fastema < ema ? white : na) barcolor(close < psar and close < ema - offset and fastema < ema and close? red : na) barcolor(close < psar and close > ema - offset or close < psar and fastema > ema ? white : na) //Plot EMA plot(ema, color=blue, linewidth=1, transp=0, title="Slow EMA") plot(fastema, color=purple, linewidth=1, transp=0, title="Fast EMA") if(high > psar) strategy.close("Short") if(low < psar) strategy.close("Long") if(long and time_cond) strategy.entry("Long", strategy.long, comment="Long") if(short and time_cond) strategy.entry("Short", strategy.short, comment="Short") if (not time_cond) strategy.close_all()