SAR 모멘텀 역전 추적 전략

저자:차오장, 날짜: 2024-02-04 17:40:20
태그:

img

전반적인 설명

이 문서에서는 패러볼릭 스톱 및 리버스 (SAR) 인디케이터를 기반으로 한 모멘텀 역전 추적 전략을 소개합니다. 이 전략은 자동 트렌드 추적 거래를 위해 니프티 선물 시장에서 잠재적 인 트렌드 역전을 식별하기 위해 패러볼릭 SAR 인디케이터를 사용합니다.

이 전략은 주로 체계적인 거래 방식을 선호하는 거래자에게 적합하며, 명확한 입출시그널을 제공합니다. 시장 트렌드를 포착함으로써 거래자가 금융 목표를 달성하는 데 도움이됩니다.

전략 논리

이 전략은 가격 트렌드 방향을 결정하기 위해 파라볼릭 SAR 지표를 사용합니다. 상승 추세에서 SAR 값은 가격 아래에 있으며 새로운 최고가 발생함에 따라 점차 상승합니다. 하락 추세에서는 SAR 값이 가격 위에 있으며 새로운 최저가 발생함에 따라 점차 하락합니다.

SAR 값이 가격보다 높거나 낮을 때, 이는 잠재적인 트렌드 반전을 나타냅니다. 그리고 전략은 새로운 트렌드 방향을 파악하기 위해 대응하는 짧은 또는 긴 포지션을 취합니다.

구체적으로, 초기 현재 SAR 값과 가속 인수를 계산한 후 전략은 새로운 최고 / 최저치를 추적하고 그에 따라 SAR 값을 조정합니다. 확인 된 바에서 상승 추세에 있다면 SAR 값 아래에 짧은 위치를 취하고, 하락 추세에 있다면 SAR 값 위에 긴 위치를 취합니다.

이점 분석

  • 고전적인 Parabolic SAR 지표를 사용하여 시장 반전을 포착합니다.
  • 명확하고 체계적인 출입 신호를 제공합니다.
  • 트렌드를 추적하고 추가 가격 움직임을 포착하는 데 도움이됩니다.
  • 수동 결정 없이 자동 거래 시스템

위험 분석

  • SAR 표시 신호는 100% 신뢰할 수 없으며 잘못된 신호가 발생할 수 있습니다.
  • 실패한 반전은 중지 손실을 일으킬 수 있습니다.
  • 계약 만료 필요 고려의 영향
  • 전략 수익성에 대한 거래 비용의 영향

최적화 방향

  • SAR 매개 변수 최적화 (단계, 초기 값, 최대 값 등)
  • 다른 반전 지표 (RSI, MACD 등) 를 결합하여 반전을 확인합니다.
  • 거짓 신호를 필터하기 위해 조건 논리 (음대 등) 를 추가
  • 고정 정지 대신 후속 정지 사용 고려
  • 자동 조정 위치 크기를 고려

결론

이 전략은 파라볼릭 SAR 지표를 사용하여 시장 트렌드 역전을 캡처하는 자동화된 시스템을 제공합니다. 트렌드 추적에서 이익을 얻는 데 도움이되는 거래 결정에 대한 명확한 입출입 신호를 제공합니다. 그러나 잘못된 신호, 스톱 손실 위험과 같은 문제도 주의가 필요합니다. 지속적인 최적화로 신뢰할 수있는 트렌드 추적 방법이 될 가능성이 있습니다.


/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-03 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Positional Parabolic SAR Strategy", overlay=true)
initial = input(0.02)
step = input(0.02)
cap = input(0.2)
var bool isUptrend = na
var float Extremum = na
var float SARValue = na
var float Accelerator = initial
var float futureSAR = na

if bar_index > 0
    isNewTrendBar = false
    SARValue := futureSAR
    if bar_index == 1
        float pastSAR = na
        float pastExtremum = na
        previousLow = low[1]
        previousHigh = high[1]
        currentClose = close
        pastClose = close[1]
        if currentClose > pastClose
            isUptrend := true
            Extremum := high
            pastSAR := previousLow
            pastExtremum := high
        else
            isUptrend := false
            Extremum := low
            pastSAR := previousHigh
            pastExtremum := low
        isNewTrendBar := true
        SARValue := pastSAR + initial * (pastExtremum - pastSAR)
    if isUptrend
        if SARValue > low
            isNewTrendBar := true
            isUptrend := false
            SARValue := math.max(Extremum, high)
            Extremum := low
            Accelerator := initial
    else
        if SARValue < high
            isNewTrendBar := true
            isUptrend := true
            SARValue := math.min(Extremum, low)
            Extremum := high
            Accelerator := initial
    if not isNewTrendBar
        if isUptrend
            if high > Extremum
                Extremum := high
                Accelerator := math.min(Accelerator + step, cap)
        else
            if low < Extremum
                Extremum := low
                Accelerator := math.min(Accelerator + step, cap)
    if isUptrend
        SARValue := math.min(SARValue, low[1])
        if bar_index > 1
            SARValue := math.min(SARValue, low[2])
    else
        SARValue := math.max(SARValue, high[1])
        if bar_index > 1
            SARValue := math.max(SARValue, high[2])
    futureSAR := SARValue + Accelerator * (Extremum - SARValue)
    if barstate.isconfirmed
        if isUptrend
            strategy.entry("ShortEntry", strategy.short, stop=futureSAR, comment="ShortEntry")
            strategy.cancel("LongEntry")
        else
            strategy.entry("LongEntry", strategy.long, stop=futureSAR, comment="LongEntry")
            strategy.cancel("ShortEntry")
plot(SARValue, style=plot.style_cross, linewidth=3, color=color.white)
plot(futureSAR, style=plot.style_cross, linewidth=3, color=color.red)


더 많은