포물선 SAR 팬 트레일링 손절매 전략


생성 날짜: 2023-09-16 18:54:28 마지막으로 수정됨: 2023-09-16 18:54:28
복사: 0 클릭수: 992
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

파라볼릭 SAR 扇形 추적 손실 전략은 파라볼릭 SAR 지표에 기반한 거래 전략이다. 이 전략은 트렌드의 반전점을 식별하고, 트렌드가 반전될 때 적시에 손실을 막고 포지션을 탈퇴하는 것을 목적으로 한다.

전략 원칙

파라볼릭 SAR 지표는 가격 트렌드를 인식하고 잠재적인 반전 신호를 줄 수 있다. SAR 지점에서 K 선을 통과하면 공중에서 공중으로 이동하는 것을 나타냅니다. SAR 지점에서 K 선을 통과하면 공중에서 공중으로 이동하는 것을 나타냅니다.

이 전략은 Parabolic SAR 지표의 이 특성에 기반하여, SAR 포인트가 K선을 통과할 때 트렌드 반전을 인식하고, 그에 따라 더 많은 또는 더 적은 작업을 수행합니다. 구체적으로, 전략 논리는 다음과 같습니다.

  1. Parabolic SAR값을 계산한다.

  2. 트렌드 반전 신호가 있는지 판단한다. SAR 포인트가 위에서 K선 아래로 지나면 공백 신호를 나타내고, 공백을 한다. SAR 포인트가 아래에서 K선 위로 지나면 다중 신호를 나타내고, 더한다.

  3. 교차가 발생했을 때 포지션을 열고, 역 SAR 포인트로 K 선을 다시 통과했을 때 평형 포지션을 중지한다.

전략적 이점

  • Parabolic SAR 지표를 사용하여 트렌드 반전 지점을 식별하여 트렌드에서 역으로 작동하는 것을 피하십시오.

  • 반전 신호를 인식하고 빠르게 포지션을 열고, 트렌드의 변화를 잡습니다.

  • SAR가 K선을 다시 통과하는 스톱포인트를 설정하면 손실을 신속히 차단하고 적시에 제어할 수 있다.

  • 전략은 간단하고 명확하며 실행하기 쉽다.

위험과 대응

  • 파라볼릭 SAR 지표는 많은 양의 가짜 신호를 생성하여 불필요한 거래를 초래할 수 있다. SAR의 매개 변수를 적절히 조정하여 가짜 신호 비율을 줄일 수 있다.

  • 급변하는 시장에서 쉽게 잡힐 수 있다. 필터링 조건을 추가하는 것을 고려할 수 있으며, 급격한 변동이 있는 기간을 피한다.

  • 스톱포인트가 너무 가까이 있으면 너무 자주 스톱포인트가 될 수 있다. 스톱포인트 범위를 적절히 완화하여 가격에 약간의 조정 공간을 부여할 수 있다.

  • 한 지표만 특정 시장에 민감하게 의존하면, 다른 지표 또는 필터 조건을 추가하여 적합성을 높일 수 있습니다.

요약하다

Parabolic SAR 扇形跟踪止损策略은 Parabolic SAR 지표의 트렌드 식별 능력을 활용하여 트렌드가 반전될 때 빠르게止损切换方向. 전략이 간단하고 명확하며 쉽게 파악할 수 있다. 그러나 Parabolic SAR 한 지표에만 의존하는 것도 한계가 있다. 실제 응용에서는 시장 환경을 종합적으로 고려하여 파라미터를 적절히 조정하고 다른 기술 지표와 협력하여 구현해야 한다.

전략 소스 코드
/*backtest
start: 2023-08-16 00:00:00
end: 2023-09-15 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Parabolic SAR Strategy (on close) [QuantNomad]", shorttitle="SAR Strategy [QN]", overlay=true)

start     = input(0.02)
increment = input(0.02)
maximum   = input(0.2)

psar      = 0.0 // PSAR
af        = 0.0 // Acceleration Factor
trend_dir = 0   // Current direction of PSAR
ep        = 0.0 // Extreme point

sar_long_to_short = trend_dir[1] == 1  and close <= psar[1] // PSAR switches from long to short
sar_short_to_long = trend_dir[1] == -1 and close >= psar[1] // PSAR switches from short to long

trend_change = barstate.isfirst[1] or sar_long_to_short or sar_short_to_long

// Calculate trend direction
trend_dir    := barstate.isfirst[1] and close[1] > open[1] ? 1 : 
   barstate.isfirst[1] and close[1] <= open[1] ? -1 : 
   sar_long_to_short ? -1 : 
   sar_short_to_long ?  1 : nz(trend_dir[1])

// Calculate  Acceleration Factor
af := trend_change ? start : 
   (trend_dir == 1 and high > ep[1]) or  
   (trend_dir == -1 and low < ep[1]) ? 
   min(maximum, af[1] + increment) : 
   af[1]

// Calculate extreme point
ep := trend_change and trend_dir == 1 ? high :  
   trend_change and trend_dir == -1 ? low : 
   trend_dir == 1 ? max(ep[1], high) : 
   min(ep[1], low)

// Calculate PSAR
psar := barstate.isfirst[1] and close[1] > open[1] ? low[1] : 
   barstate.isfirst[1] and close[1] <= open[1] ? high[1] : 
   trend_change ? ep[1] :    
   trend_dir == 1 ? psar[1] + af * (ep - psar[1]) : psar[1] - af * (psar[1] - ep) 

plot(psar, style=plot.style_cross, color=trend_dir == 1 ? color.green : color.red,  linewidth = 2)

// Strategy 
strategy.entry("Long",  true,  when = sar_short_to_long)
strategy.entry("Short", false, when = sar_long_to_short)