이 전략은 스윙 트레이딩을 위해 모멘텀 추적 및 스톱 손실을 달성하기 위해 파라볼릭 SAR 슬라이딩 가치와 촛불 사이 크로스오버 작업을 활용합니다. 이 전략은 가격이 상승하고 떨어질 때 긴 및 짧은 포지션을 설정합니다. 가격이 역전되면 이러한 포지션을 닫아 손실을 멈추게합니다.
이 전략의 핵심은 현재 가격이 상승 추세인지 하락 추세인지 결정하기 위해 파라볼릭 SAR 지표에 의존합니다. 파라볼릭 SAR 지표가 촛불 밑에 있을 때, 가격은 현재 상승하고 있음을 의미합니다. 이 경우, 전략은 각각의 촛불의 종료 시 파라볼릭 SAR 값이 촛불의 최하위치를 넘어서는지 여부를 확인합니다. 그렇지 않으면 상승 추세가 계속되고 전략이 긴 포지션을 설정한다는 것을 의미합니다. 파라볼릭 SAR가 최하위치를 넘어서면 상승 추세가 하향을 뒤집는 것을 의미하며 전략은 손실을 중지하기 위해 긴 포지션을 닫을 것입니다.
반대로, 파라볼릭 SAR가 촛불 위에 있을 때, 가격은 현재 하락하고 있음을 의미합니다. 이 경우, 전략은 각각의 촛불의 종료 시 파라볼릭 SAR가 촛불의 최고치 아래로 넘어가는지 여부를 확인합니다. 그렇지 않으면, 짧은 포지션을 설정합니다. 파라볼릭 SAR가 최고치를 넘어가면, 하락 추세가 상향으로 뒤집어지고, 전략은 손실을 막기 위해 짧은 포지션을 닫을 것입니다.
이 논리를 통해 전략은 가격 트렌드를 따라 포지션을 설정하고 트렌드가 역전되는 첫 번째 시점에 스톱 로스를 실현하여 이익을 잠금 할 수 있습니다. 한편, 동력 지표로서의 파라볼릭 SAR는 트렌드가 역전되는지 더 정확하게 결정할 수 있으며, 스톱 로스를 더 정확하게 만듭니다.
견고성을 높이기 위한 방법에는 다음과 같은 것들이 포함됩니다: 충분한 엄격성을 갖기 위해 스톱 로스 포인트를 최적화; 확인을 위해 다른 지표를 결합; 변화하는 환경에 적응하기 위해 매개 변수를 조정; 다양한 제품에 최적의 매개 변수 세트를 선택 등.
일반적으로, 이 파라볼릭 SAR 스윙 전략은 상당히 효과적인 단기 거래 전략이다. 트렌드 방향과 동력 변화를 결정하기 위해 파라볼릭 SAR의 장점을 활용하고, 스윙 거래 방법과 함께 상승과 하락 트렌드 동안 장기 및 단기 포지션을 반복적으로 설정한다. 엄격한 스톱 로스 메커니즘은 또한 이 전략에 괜찮은 리스크 제어 능력을 제공한다. 그러나 단일 지표 전략으로서, 파라볼릭 SAR의 무효성은 상당한 영향을 미칠 것이다. 따라서 이것은 약간의 힘과 잠재력을 가진 전략이지만, 또한 약간의 위험이 있다. 라이브 트레이딩에서 안정적인 초과 수익을 창출하기 위해 백테스트, 최적화 및 향상이 필요하다.
/*backtest start: 2023-12-14 00:00:00 end: 2023-12-21 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Parabolic SAR Strategy", overlay=true) start = input(0.05) increment = input(0.075) maximum = input(1) 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 = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2020, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true var bool uptrend = na var float EP = na var float SAR = na var float AF = start var float nextBarSAR = na if bar_index > 0 firstTrendBar = false SAR := nextBarSAR if bar_index == 1 float prevSAR = na float prevEP = na lowPrev = low[1] highPrev = high[1] closeCur = close closePrev = close[1] if closeCur > closePrev uptrend := true EP := high prevSAR := lowPrev prevEP := high else uptrend := false EP := low prevSAR := highPrev prevEP := low firstTrendBar := true SAR := prevSAR + start * (prevEP - prevSAR) if uptrend if SAR > low firstTrendBar := true uptrend := false SAR := max(EP, high) EP := low AF := start else if SAR < high firstTrendBar := true uptrend := true SAR := min(EP, low) EP := high AF := start if not firstTrendBar if uptrend if high > EP EP := high AF := min(AF + increment, maximum) else if low < EP EP := low AF := min(AF + increment, maximum) if uptrend SAR := min(SAR, low[1]) if bar_index > 1 SAR := min(SAR, low[2]) else SAR := max(SAR, high[1]) if bar_index > 1 SAR := max(SAR, high[2]) nextBarSAR := SAR + AF * (EP - SAR) if barstate.isconfirmed and time_cond if uptrend strategy.entry("ParSE", strategy.short, stop=nextBarSAR, comment="ParSE") strategy.cancel("ParLE") else strategy.entry("ParLE", strategy.long, stop=nextBarSAR, comment="ParLE") strategy.cancel("ParSE") plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange) plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)