이 전략은 패러볼릭 SAR 지표에 기반하고 동력 추적 스톱 손실 효과를 달성하기 위해 백테스팅을 위한 시간 창을 통합합니다. 이는 주로 강한 트렌드를 가진 제품에 적합하며, 트렌드 추적 스톱 손실을 실현하기 위해 스톱 손실 지점을 동적으로 조정합니다.
이 전략은 파라볼릭 SAR (Parabolic Stop and Reverse) 지표를 주요 기술 지표로 사용합니다. 파라볼릭 SAR는 매우 정확한 반전 신호를 제공할 수 있습니다. 가격이 상승 추세에 있을 때, 파라볼릭 SAR는 상승 추세를 추적하기 위해 계속 움직일 것입니다. 가격이 떨어지기 시작하면, 파라볼릭 SAR는 스톱 로스 신호를 제공하기 위해 빠르게 떨어질 것입니다.
이 전략은 먼저 시작값, 인크리멘트 값, 최대 값 등 파라볼릭 SAR의 세 가지 매개 변수를 설정한다. 그 다음 파라볼릭 SAR의 값을 계산한다. 전략은 파라볼릭 SAR를 동적 스톱 로스 포인트로 사용한다. 가격이 상승할 때 파라볼릭 SAR보다 길게, 가격이 파라볼릭 SAR보다 낮게 떨어지면 긴 포지션을 닫는다. 마찬가지로 가격이 떨어지면 파라볼릭 SAR보다 낮게, 가격이 파라볼릭 SAR보다 낮게 떨어지면 짧은 포지션을 닫는다.
이 방법으로, 전략은 가격이 트렌드를 따라가면서 트렌드를 추적할 수 있고, 가격이 역전될 때 빠르게 손실을 멈추고, 거래 주기를 완료할 수 있습니다.
이 전략은 파라볼릭 SAR 지표의 효율적인 스톱 로스 기능을 완전히 활용하여 모멘텀 추적 스톱 로스 효과를 달성합니다. 고정 스톱 로스 포인트와 비교하면 스톱 로스 트렌드를 동적이고 자동으로 추적하여 조기 중단된 포지션을 피할 수 있습니다. 한편, 전략의 위험은 무시할 수 없으며, 다양한 시장에서 안정적인 성능을 위해 다차원적 최적화 및 향상이 필요합니다. 전반적으로 트렌드 추적을 위해 스톱 로스의 상당히 효과적인 방법을 제공하며 추가 연구 및 응용 가치가 있습니다.
/*backtest start: 2023-09-26 00:00:00 end: 2023-10-26 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // === by @Aldovitch === // PSAR Strategy // Based on Parabolic SAR Strategy provided by TradingView // added a Time Window for Backtests // strategy("Parabolic SAR Strategy w/ Time Window", shorttitle="PSAR Strategy w/ TW", overlay=true) // === INPUT INDEXES PARAMETERS === start = input(0.02) increment = input(0.02) maximum = input(0.2) // === INPUT BACKTEST RANGE === 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 = 2018, title = "From Year", minval = 2016) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === CONTROL & APPEARENCE === timeStart = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window timeFinish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window // === FUNCTIONS === window() => true // create function "within window of time" // === COMPUTING INDEXES === psar = sar(start, increment, maximum) if (psar > high) strategy.entry("ParLE", strategy.long, stop=psar, comment="ParLE", when=window()) else strategy.cancel("ParLE") if (psar < low) strategy.entry("ParSE", strategy.short, stop=psar, comment="ParSE", when=window()) else strategy.cancel("ParSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)