파라볼리 SAR 후속 스톱 손실 전략

저자:차오장, 날짜: 2023-09-16 18:54:28
태그:

전반적인 설명

파라볼릭 SAR 트레일링 스톱 로스 전략은 파라볼릭 SAR 지표에 기반한 거래 전략이다. 트렌드가 역전될 때 트렌드 역전 지점과 출구 포지션을 적시에 식별하는 것을 목표로 한다.

전략 논리

파라볼릭 SAR 지표는 가격 추세를 식별하고 잠재적 인 반전 신호를 줄 수 있습니다. SAR 점이 촛불 위에 넘어가면 상승세에서 하락세로 변화하는 것을 나타냅니다. SAR 점이 촛불 아래로 넘어가면 하락세에서 상승세로 변화하는 것을 나타냅니다.

파라볼릭 SAR 지표의 이러한 특징에 기초하여, 이 전략은 SAR 점이 촛불을 넘을 때 트렌드 반전을 식별하고, 그에 따른 긴 또는 짧은 항목을 만듭니다. 구체적으로 전략 논리는 다음과 같습니다.

  1. 파라볼릭 SAR 값을 계산합니다.

  2. 트렌드 반전 신호가 있는지 확인합니다. SAR 점이 촛불 위에에서 아래로 넘어가면 하향 신호를 나타냅니다.

  3. 크로스오버가 발생했을 때 포지션을 입력하고, SAR 점이 다시 반대 방향으로 촛불을 통과할 때 스톱 로스로 포지션을 종료합니다.

장점

  • 트렌드 반전 지점을 식별하기 위해 파라볼릭 SAR 지표를 활용하고, 트렌드에 반대하는 거래를 피합니다.

  • 반전 신호가 확인되면 빠르게 포지션을 입력하여 트렌드 변화를 포착합니다.

  • SAR 교차 지점에서 스톱 손실을 설정하여 빠른 스톱 및 신속한 손실 통제를 위해

  • 단순하고 명확한 전략 논리, 실행하기 쉬운

위험 및 완화

  • 파라볼릭 SAR 지표는 많은 잘못된 신호를 생성하여 불필요한 거래를 유발할 수 있습니다. 잘못된 신호를 줄이기 위해 SAR 매개 변수를 세밀하게 조정합니다.

  • 급변하는 시장에서 휘파람에 휘둘리는 경향이 있습니다. 높은 변동성 기간을 피하기 위해 필터를 추가하는 것을 고려하십시오.

  • 너무 가까운 스톱 손실은 과도한 스톱으로 이어질 수 있습니다. 스톱 손실 범위에서 약간의 이동 공간을 허용하십시오.

  • 단일 지표에 의존하면 전략이 시장 특유의 제한에 취약합니다. 안정성을 향상시키기 위해 다른 지표 또는 필터와 결합하는 것을 고려하십시오.

결론

파라볼릭 SAR 트레일링 스톱 로스 전략은 트렌드가 역전될 때 트렌드 식별 능력을 활용하여 빠르게 중지하고 방향을 역전합니다. 전략 논리는 간단하고 명확합니다. 그러나 파라볼릭 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)

더 많은