이 전략은 신호의 정확성을 향상시키기 위해 EMA 필터링과 결합한 파라볼릭 SAR (Stop and Reverse) 지표를 사용합니다. 트렌드를 거래하는 거래자에게 적합합니다.
긴 신호는 SAR가 가격보다 낮고 가격이 느린 EMA와 오프셋보다 높을 때 발생한다. SAR가 가격보다 높고 가격이 느린 EMA 미소 오프셋보다 낮을 때 짧은 신호가 발생한다. 빠른 EMA와 느린 EMA 사이의 크로스오버는 추가 필터링을 제공합니다. 이것은 SAR만 사용할 때 잘못된 신호를 피합니다.
특히, 긴 입국 조건은 다음과 같습니다.
짧은 입시 조건은 다음과 같습니다.
SAR와 EMA 필터링을 결합하면 트렌드 방향을 잘 파악하고 잘못된 신호를 줄일 수 있습니다.
이점:
이 전략에는 몇 가지 위험이 있습니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
이 전략은 SAR와 EMA의 강점을 결합하여 유연한 트렌드 추적 시스템을 설계합니다. 전반적으로 좋은 트렌드 탐지 능력을 가지고 있으며 트렌드를 추적하는 데 잘 작동합니다. 매개 변수 최적화 및 리스크 관리의 추가 개선은 안정성과 수익성을 향상시킬 수 있습니다. 좋은 리스크 관리 인식과 최적화 기술을 가진 투자자에게 적합합니다.
/*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()